diff --git a/.github/actions/setup-deps/action.yml b/.github/actions/setup-deps/action.yml index 0ffebeb7..fed0d23d 100644 --- a/.github/actions/setup-deps/action.yml +++ b/.github/actions/setup-deps/action.yml @@ -18,14 +18,14 @@ runs: shell: bash run: | brew update - + # Install LLVM if requested if [[ "${{ inputs.install-llvm }}" == "true" ]]; then brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} brew link --overwrite llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH fi - + # Install common dependencies brew install bdw-gc openssl libffi libuv brew link --overwrite libffi @@ -38,9 +38,10 @@ runs: sqlite # for github.com/goplus/lib/c/sqlite ) brew install "${opt_deps[@]}" - + brew install python@3.12 || true # for github.com/goplus/lib/py brew link --overwrite python@3.12 + - name: Install Ubuntu dependencies if: runner.os == 'Linux' shell: bash @@ -55,7 +56,7 @@ runs: else sudo apt-get update fi - + # Install common dependencies sudo apt-get install -y pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libuv1-dev @@ -68,3 +69,4 @@ runs: python3.12-dev # for github.com/goplus/lib/py ) sudo apt-get install -y "${opt_deps[@]}" + diff --git a/_demo/go/reflectfunc/reflectfunc.go b/_demo/go/reflectfunc/reflectfunc.go index 7b2f7f11..363ae3d2 100644 --- a/_demo/go/reflectfunc/reflectfunc.go +++ b/_demo/go/reflectfunc/reflectfunc.go @@ -39,4 +39,12 @@ func main() { panic(fmt.Sprintf("not func: %T", fn)) } } + v := reflect.ValueOf(T{}) + if v.Field(0).Kind() != reflect.Func { + panic("must func") + } +} + +type T struct { + fn func(int) } diff --git a/cl/_testgo/errors/out.ll b/cl/_testgo/errors/out.ll index c6868c79..e30d59d8 100644 --- a/cl/_testgo/errors/out.ll +++ b/cl/_testgo/errors/out.ll @@ -105,23 +105,23 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) store ptr %12, ptr @"github.com/goplus/llgo/cl/_testgo/errors.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 %13 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/errors.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %14 = load ptr, ptr @_llgo_string, align 8 - %15 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %16 = icmp eq ptr %15, null - br i1 %16, label %_llgo_3, label %_llgo_4 + %14 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %17, 0 - %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 0, 1 - %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 0, 2 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %16, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 0, 1 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 0, 2 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %22 = getelementptr ptr, ptr %21, i64 0 - store ptr %14, ptr %22, align 8 + store ptr %20, ptr %22, align 8 %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 1, 1 %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 1, 2 - %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i1 false) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %26) store ptr %26, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_4 diff --git a/cl/_testgo/ifaceprom/out.ll b/cl/_testgo/ifaceprom/out.ll index acba03fb..c7ece331 100644 --- a/cl/_testgo/ifaceprom/out.ll +++ b/cl/_testgo/ifaceprom/out.ll @@ -429,23 +429,23 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0 %10 = load ptr, ptr @_llgo_int, align 8 - %11 = load ptr, ptr @_llgo_int, align 8 - %12 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_3, label %_llgo_4 + %11 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %12 = icmp eq ptr %11, null + br i1 %12, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 1 - %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 0, 2 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %13, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 0, 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 2 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %19 = getelementptr ptr, ptr %18, i64 0 - store ptr %11, ptr %19, align 8 + store ptr %17, ptr %19, align 8 %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 1, 1 %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 1, 2 - %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %23) store ptr %23, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_4 @@ -469,23 +469,23 @@ _llgo_5: ; preds = %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4 %34 = load ptr, ptr @_llgo_string, align 8 - %35 = load ptr, ptr @_llgo_string, align 8 - %36 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %37 = icmp eq ptr %36, null - br i1 %37, label %_llgo_7, label %_llgo_8 + %35 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %36 = icmp eq ptr %35, null + br i1 %36, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %38, 0 - %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i64 0, 1 - %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, i64 0, 2 + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %37, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 0, 1 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i64 0, 2 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %43 = getelementptr ptr, ptr %42, i64 0 - store ptr %35, ptr %43, align 8 + store ptr %41, ptr %43, align 8 %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %42, 0 %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 1, 1 %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 1, 2 - %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i1 false) + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %47) store ptr %47, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_8 diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll index cdd46706..e5b27bce 100644 --- a/cl/_testgo/invoke/out.ll +++ b/cl/_testgo/invoke/out.ll @@ -519,23 +519,23 @@ _llgo_7: ; preds = %_llgo_5 _llgo_8: ; preds = %_llgo_7, %_llgo_5 %22 = load ptr, ptr @_llgo_int, align 8 - %23 = load ptr, ptr @_llgo_int, align 8 - %24 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %25 = icmp eq ptr %24, null - br i1 %25, label %_llgo_9, label %_llgo_10 + %23 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %24 = icmp eq ptr %23, null + br i1 %24, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 - %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 0, 1 - %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 0, 2 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %25, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 0, 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 0, 2 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %31 = getelementptr ptr, ptr %30, i64 0 - store ptr %23, ptr %31, align 8 + store ptr %29, ptr %31, align 8 %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %30, 0 %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 1, 1 %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 1, 2 - %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i1 false) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %35) store ptr %35, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_10 @@ -913,18 +913,18 @@ _llgo_55: ; preds = %_llgo_54 _llgo_56: ; preds = %_llgo_55, %_llgo_54 %222 = load ptr, ptr @_llgo_Pointer, align 8 - %223 = load ptr, ptr @_llgo_int, align 8 - %224 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %225 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %224, 0 - %226 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %225, i64 0, 1 - %227 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %226, i64 0, 2 + %223 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %224 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %223, 0 + %225 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %224, i64 0, 1 + %226 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %225, i64 0, 2 + %227 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %228 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %229 = getelementptr ptr, ptr %228, i64 0 - store ptr %223, ptr %229, align 8 + store ptr %227, ptr %229, align 8 %230 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %228, 0 %231 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %230, i64 1, 1 %232 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %231, i64 1, 2 - %233 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %227, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %232, i1 false) + %233 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %226, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %232, i1 false) %234 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 2 }, ptr %233, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %235 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %236 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }, ptr %235, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) diff --git a/cl/_testgo/reader/out.ll b/cl/_testgo/reader/out.ll index c8e0fb67..e440f393 100644 --- a/cl/_testgo/reader/out.ll +++ b/cl/_testgo/reader/out.ll @@ -999,23 +999,23 @@ _llgo_13: ; preds = %_llgo_12 _llgo_14: ; preds = %_llgo_13, %_llgo_12 %25 = load ptr, ptr @_llgo_string, align 8 - %26 = load ptr, ptr @_llgo_string, align 8 - %27 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %28 = icmp eq ptr %27, null - br i1 %28, label %_llgo_15, label %_llgo_16 + %26 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 0, 1 - %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 0, 2 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 0, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 0, 2 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %34 = getelementptr ptr, ptr %33, i64 0 - store ptr %26, ptr %34, align 8 + store ptr %32, ptr %34, align 8 %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 1, 1 %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 1, 2 - %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i1 false) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %38) store ptr %38, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_16 @@ -1037,64 +1037,64 @@ _llgo_17: ; preds = %_llgo_16 _llgo_18: ; preds = %_llgo_17, %_llgo_16 %46 = load ptr, ptr @_llgo_error, align 8 - %47 = load ptr, ptr @"[]_llgo_uint8", align 8 - %48 = load ptr, ptr @_llgo_int, align 8 - %49 = load ptr, ptr @_llgo_error, align 8 - %50 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %51 = icmp eq ptr %50, null - br i1 %51, label %_llgo_19, label %_llgo_20 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %48 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %49 = icmp eq ptr %48, null + br i1 %49, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %50) %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %53 = getelementptr ptr, ptr %52, i64 0 - store ptr %47, ptr %53, align 8 + store ptr %51, ptr %53, align 8 %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %58 = getelementptr ptr, ptr %57, i64 0 - store ptr %48, ptr %58, align 8 - %59 = getelementptr ptr, ptr %57, i64 1 - store ptr %49, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 - %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 - %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %63) - store ptr %63, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %59 = getelementptr ptr, ptr %58, i64 0 + store ptr %57, ptr %59, align 8 + %60 = getelementptr ptr, ptr %58, i64 1 + store ptr %47, ptr %60, align 8 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %58, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i64 2, 2 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %64) + store ptr %64, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %64 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %65 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 br i1 %5, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %65 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %64, 1 - %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %67 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %66, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %65, ptr %67, align 8 - %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %66, 0 - %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 1 - %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %3, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70) + %66 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %65, 1 + %67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %68 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %67, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %66, ptr %68, align 8 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %67, 0 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, i64 1, 1 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %3, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %71) br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %71 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Writer", align 8 - %72 = load ptr, ptr @_llgo_int64, align 8 - %73 = icmp eq ptr %72, null - br i1 %73, label %_llgo_23, label %_llgo_24 + %72 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Writer", align 8 + %73 = load ptr, ptr @_llgo_int64, align 8 + %74 = icmp eq ptr %73, null + br i1 %74, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) - store ptr %74, ptr @_llgo_int64, align 8 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + store ptr %75, ptr @_llgo_int64, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %75 = load ptr, ptr @_llgo_int64, align 8 - %76 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Writer", align 8 - %77 = load ptr, ptr @_llgo_int64, align 8 - %78 = load ptr, ptr @_llgo_error, align 8 + %76 = load ptr, ptr @_llgo_int64, align 8 + %77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 6 }) + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) %79 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 %80 = icmp eq ptr %79, null br i1 %80, label %_llgo_25, label %_llgo_26 @@ -1102,310 +1102,310 @@ _llgo_24: ; preds = %_llgo_23, %_llgo_22 _llgo_25: ; preds = %_llgo_24 %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %82 = getelementptr ptr, ptr %81, i64 0 - store ptr %76, ptr %82, align 8 + store ptr %77, ptr %82, align 8 %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %81, 0 %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i64 1, 1 %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %84, i64 1, 2 - %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %87 = getelementptr ptr, ptr %86, i64 0 - store ptr %77, ptr %87, align 8 - %88 = getelementptr ptr, ptr %86, i64 1 - store ptr %78, ptr %88, align 8 - %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %86, 0 - %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, i64 2, 1 - %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i64 2, 2 - %92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %91, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %92) - store ptr %92, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %87 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %88 = getelementptr ptr, ptr %87, i64 0 + store ptr %86, ptr %88, align 8 + %89 = getelementptr ptr, ptr %87, i64 1 + store ptr %78, ptr %89, align 8 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %87, 0 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i64 2, 1 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %91, i64 2, 2 + %93 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %93) + store ptr %93, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %93 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 + %94 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 br i1 %2, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %94 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %93, 1 - %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %96 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %95, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %94, ptr %96, align 8 - %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %95, 0 - %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %97, i64 1, 1 - %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99) + %95 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %94, 1 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %97 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %96, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %95, ptr %97, align 8 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %96, 0 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 1, 1 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100) br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %100 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 - %101 = load ptr, ptr @"_llgo_iface$p5Bo_emI1h8acs1rFbUxZTrpeDbIQ34gFcsbwK9YIgs", align 8 - %102 = icmp eq ptr %101, null - br i1 %102, label %_llgo_29, label %_llgo_30 + %101 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 + %102 = load ptr, ptr @"_llgo_iface$p5Bo_emI1h8acs1rFbUxZTrpeDbIQ34gFcsbwK9YIgs", align 8 + %103 = icmp eq ptr %102, null + br i1 %103, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %103 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %100, 1 - %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %105 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %104, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %103, ptr %105, align 8 - %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %104, 0 - %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %106, i64 1, 1 - %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %107, i64 1, 2 - %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %108) - store ptr %109, ptr @"_llgo_iface$p5Bo_emI1h8acs1rFbUxZTrpeDbIQ34gFcsbwK9YIgs", align 8 + %104 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %101, 1 + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %106 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %105, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %104, ptr %106, align 8 + %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %105, 0 + %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %107, i64 1, 1 + %109 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %108, i64 1, 2 + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %109) + store ptr %110, ptr @"_llgo_iface$p5Bo_emI1h8acs1rFbUxZTrpeDbIQ34gFcsbwK9YIgs", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 17 }, i64 25, i64 16, i64 3, i64 3) - store ptr %110, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo", align 8 - %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) - %112 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 - %113 = icmp eq ptr %112, null - br i1 %113, label %_llgo_31, label %_llgo_32 + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 17 }, i64 25, i64 16, i64 3, i64 3) + store ptr %111, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo", align 8 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) + %113 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 + %114 = icmp eq ptr %113, null + br i1 %114, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - store ptr %111, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 + store ptr %112, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %114 = load ptr, ptr @"[]_llgo_uint8", align 8 - %115 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - br i1 %113, label %_llgo_33, label %_llgo_34 + %115 = load ptr, ptr @"[]_llgo_uint8", align 8 + %116 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + br i1 %114, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %115, 1 - %117 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %118 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %117, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %116, ptr %118, align 8 - %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %117, 0 - %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, i64 1, 1 - %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %111, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121) + %117 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %116, 1 + %118 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %119 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %118, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %117, ptr %119, align 8 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %118, 0 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120, i64 1, 1 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122) br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %122 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 - %123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) - %124 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }, ptr %123, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) - %126 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %125, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %124, ptr %126, align 8 - %127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %125, 0 - %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %127, i64 1, 1 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128, i64 1, 2 - %130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129) - store ptr %130, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 - %131 = load ptr, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 - %132 = load ptr, ptr @_llgo_error, align 8 - %133 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %134 = icmp eq ptr %133, null - br i1 %134, label %_llgo_35, label %_llgo_36 + %123 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.Reader", align 8 + %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) + %125 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }, ptr %124, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %126 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %127 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %126, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %125, ptr %127, align 8 + %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %126, 0 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128, i64 1, 1 + %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 1, 2 + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130) + store ptr %131, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 + %132 = load ptr, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 + %133 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %134 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %135 = icmp eq ptr %134, null + br i1 %135, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %135, 0 - %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %136, i64 0, 1 - %138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %137, i64 0, 2 - %139 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %140 = getelementptr ptr, ptr %139, i64 0 - store ptr %132, ptr %140, align 8 - %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %139, 0 - %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %141, i64 1, 1 - %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %142, i64 1, 2 - %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %138, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %144) - store ptr %144, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %136, 0 + %138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %137, i64 0, 1 + %139 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %138, i64 0, 2 + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %141 = getelementptr ptr, ptr %140, i64 0 + store ptr %133, ptr %141, align 8 + %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %140, 0 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %142, i64 1, 1 + %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i64 1, 2 + %145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %139, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %145) + store ptr %145, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %145 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %146 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %145, 1 - %147 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %146, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 2 - %148 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %147, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 3 - %149 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %145, 1 - %150 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %149, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 2 - %151 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %150, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.Close", 3 - %152 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %153 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %152, 1 - %154 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %153, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 2 - %155 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %154, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 3 - %156 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %152, 1 - %157 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %156, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 2 - %158 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %157, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.Read", 3 - %159 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 - %160 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %159, 1 - %161 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %160, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 2 - %162 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %161, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 3 - %163 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %159, 1 - %164 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %163, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 2 - %165 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %164, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.WriteTo", 3 - %166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) - %167 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %166, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %151, ptr %167, align 8 - %168 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %166, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %158, ptr %168, align 8 - %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %166, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %165, ptr %169, align 8 - %170 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %166, 0 - %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %170, i64 3, 1 - %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, i64 3, 2 - %173 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) - %174 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %173, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %148, ptr %174, align 8 - %175 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %173, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %155, ptr %175, align 8 - %176 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %173, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %162, ptr %176, align 8 - %177 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %173, 0 - %178 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %177, i64 3, 1 - %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %178, i64 3, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %110, ptr %131, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %179) - %180 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %181 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %182 = load ptr, ptr @"_llgo_iface$2bmbYDBStAIdmbXPPn7qIaCcpVcj2I5k6AqgqwAfh84", align 8 - %183 = icmp eq ptr %182, null - br i1 %183, label %_llgo_37, label %_llgo_38 + %146 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %147 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %146, 1 + %148 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %147, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 2 + %149 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %148, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 3 + %150 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %146, 1 + %151 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %150, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Close", 2 + %152 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %151, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.Close", 3 + %153 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %154 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %153, 1 + %155 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %154, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 2 + %156 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %155, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 3 + %157 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %153, 1 + %158 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %157, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).Read", 2 + %159 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %158, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.Read", 3 + %160 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 + %161 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %160, 1 + %162 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %161, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 2 + %163 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %162, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 3 + %164 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %160, 1 + %165 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %164, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloserWriterTo).WriteTo", 2 + %166 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %165, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloserWriterTo.WriteTo", 3 + %167 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %168 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %167, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %152, ptr %168, align 8 + %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %167, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %159, ptr %169, align 8 + %170 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %167, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %166, ptr %170, align 8 + %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %167, 0 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, i64 3, 1 + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 3, 2 + %174 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %175 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %174, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %149, ptr %175, align 8 + %176 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %174, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %156, ptr %176, align 8 + %177 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %174, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %163, ptr %177, align 8 + %178 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %174, 0 + %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %178, i64 3, 1 + %180 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %179, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %111, ptr %132, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %180) + %181 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %182 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %183 = load ptr, ptr @"_llgo_iface$2bmbYDBStAIdmbXPPn7qIaCcpVcj2I5k6AqgqwAfh84", align 8 + %184 = icmp eq ptr %183, null + br i1 %184, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %184 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef }, ptr %180, 1 - %185 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %181, 1 - %186 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) - %187 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %186, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %184, ptr %187, align 8 - %188 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %186, i64 1 + %185 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef }, ptr %181, 1 + %186 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %182, 1 + %187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %188 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %187, i64 0 store %"github.com/goplus/llgo/runtime/abi.Imethod" %185, ptr %188, align 8 - %189 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %186, 0 - %190 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %189, i64 2, 1 - %191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %190, i64 2, 2 - %192 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %191) - store ptr %192, ptr @"_llgo_iface$2bmbYDBStAIdmbXPPn7qIaCcpVcj2I5k6AqgqwAfh84", align 8 + %189 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %187, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %186, ptr %189, align 8 + %190 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %187, 0 + %191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %190, i64 2, 1 + %192 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %191, i64 2, 2 + %193 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %192) + store ptr %193, ptr @"_llgo_iface$2bmbYDBStAIdmbXPPn7qIaCcpVcj2I5k6AqgqwAfh84", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %193 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 9 }, i64 25, i64 16, i64 2, i64 2) - store ptr %193, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.nopCloser", align 8 - %194 = load ptr, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 - %195 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %196 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %195, 1 - %197 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %196, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 2 - %198 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %197, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 3 - %199 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %195, 1 - %200 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %199, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 2 - %201 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %200, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloser.Close", 3 - %202 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %203 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %202, 1 - %204 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %203, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 2 - %205 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %204, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 3 - %206 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %202, 1 - %207 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %206, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 2 - %208 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %207, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloser.Read", 3 - %209 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %210 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %209, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %201, ptr %210, align 8 - %211 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %209, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %208, ptr %211, align 8 - %212 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %209, 0 - %213 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %212, i64 2, 1 - %214 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %213, i64 2, 2 - %215 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %216 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %215, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %198, ptr %216, align 8 - %217 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %215, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %205, ptr %217, align 8 - %218 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %215, 0 - %219 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %218, i64 2, 1 - %220 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %219, i64 2, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %193, ptr %194, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %214, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %220) - %221 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 12 }) - %222 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.StringWriter", align 8 - %223 = icmp eq ptr %222, null - br i1 %223, label %_llgo_39, label %_llgo_40 + %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 9 }, i64 25, i64 16, i64 2, i64 2) + store ptr %194, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.nopCloser", align 8 + %195 = load ptr, ptr @"_llgo_struct$aF5tOq8uFNwjAKwq7XzhGO-4YESPiFwZOQDpqkTBqL8", align 8 + %196 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %197 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %196, 1 + %198 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %197, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 2 + %199 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %198, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 3 + %200 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %196, 1 + %201 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %200, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Close", 2 + %202 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %201, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloser.Close", 3 + %203 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %204 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %203, 1 + %205 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %204, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 2 + %206 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %205, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 3 + %207 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %203, 1 + %208 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %207, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*nopCloser).Read", 2 + %209 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %208, ptr @"github.com/goplus/llgo/cl/_testgo/reader.nopCloser.Read", 3 + %210 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %211 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %210, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %202, ptr %211, align 8 + %212 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %210, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %209, ptr %212, align 8 + %213 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %210, 0 + %214 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %213, i64 2, 1 + %215 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %214, i64 2, 2 + %216 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %217 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %216, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %199, ptr %217, align 8 + %218 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %216, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %206, ptr %218, align 8 + %219 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %216, 0 + %220 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %219, i64 2, 1 + %221 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %220, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %194, ptr %195, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %215, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %221) + %222 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 12 }) + %223 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.StringWriter", align 8 + %224 = icmp eq ptr %223, null + br i1 %224, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - store ptr %221, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.StringWriter", align 8 + store ptr %222, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.StringWriter", align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %224 = load ptr, ptr @_llgo_string, align 8 - %225 = load ptr, ptr @_llgo_int, align 8 - %226 = load ptr, ptr @_llgo_error, align 8 - %227 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %228 = icmp eq ptr %227, null - br i1 %228, label %_llgo_41, label %_llgo_42 + %225 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %226 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %227 = icmp eq ptr %226, null + br i1 %227, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 + %228 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %229 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %230 = getelementptr ptr, ptr %229, i64 0 - store ptr %224, ptr %230, align 8 + store ptr %228, ptr %230, align 8 %231 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %229, 0 %232 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %231, i64 1, 1 %233 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %232, i64 1, 2 - %234 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %235 = getelementptr ptr, ptr %234, i64 0 - store ptr %225, ptr %235, align 8 - %236 = getelementptr ptr, ptr %234, i64 1 - store ptr %226, ptr %236, align 8 - %237 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %234, 0 - %238 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %237, i64 2, 1 - %239 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %238, i64 2, 2 - %240 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %233, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %239, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %240) - store ptr %240, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %234 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %235 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %236 = getelementptr ptr, ptr %235, i64 0 + store ptr %234, ptr %236, align 8 + %237 = getelementptr ptr, ptr %235, i64 1 + store ptr %225, ptr %237, align 8 + %238 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %235, 0 + %239 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %238, i64 2, 1 + %240 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %239, i64 2, 2 + %241 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %233, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %240, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %241) + store ptr %241, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %241 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - br i1 %223, label %_llgo_43, label %_llgo_44 + %242 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + br i1 %224, label %_llgo_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - %242 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %241, 1 - %243 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %244 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %243, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %242, ptr %244, align 8 - %245 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %243, 0 - %246 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %245, i64 1, 1 - %247 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %246, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %221, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %247) + %243 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %242, 1 + %244 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %245 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %244, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %243, ptr %245, align 8 + %246 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %244, 0 + %247 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %246, i64 1, 1 + %248 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %247, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %222, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %248) br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %248 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %249 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - %250 = icmp eq ptr %249, null - br i1 %250, label %_llgo_45, label %_llgo_46 + %249 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %250 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %251 = icmp eq ptr %250, null + br i1 %251, label %_llgo_45, label %_llgo_46 _llgo_45: ; preds = %_llgo_44 - %251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %248, 1 - %252 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %253 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %252, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %251, ptr %253, align 8 - %254 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %252, 0 - %255 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %254, i64 1, 1 - %256 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %255, i64 1, 2 - %257 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %256) - store ptr %257, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %252 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %249, 1 + %253 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %254 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %253, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %252, ptr %254, align 8 + %255 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %253, 0 + %256 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %255, i64 1, 1 + %257 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %256, i64 1, 2 + %258 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %257) + store ptr %258, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %258 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) - store ptr %258, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.stringReader", align 8 - %259 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %260 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %259, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %261 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) - %262 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 1 }, ptr %261, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %263 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) - %264 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 8 }, ptr %263, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %265 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) - %266 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %265, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %260, ptr %266, align 8 - %267 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %265, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %262, ptr %267, align 8 - %268 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %265, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %264, ptr %268, align 8 - %269 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %265, 0 - %270 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %269, i64 3, 1 - %271 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %270, i64 3, 2 - %272 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %271) - store ptr %272, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %273 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %274 = load ptr, ptr @_llgo_int, align 8 + %259 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) + store ptr %259, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.stringReader", align 8 + %260 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %261 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %260, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %262 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %263 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 1 }, ptr %262, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %264 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %265 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 8 }, ptr %264, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %266 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %267 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %266, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %261, ptr %267, align 8 + %268 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %266, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %263, ptr %268, align 8 + %269 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %266, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %265, ptr %269, align 8 + %270 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %266, 0 + %271 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %270, i64 3, 1 + %272 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %271, i64 3, 2 + %273 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %272) + store ptr %273, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %274 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 %275 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %276 = icmp eq ptr %275, null br i1 %276, label %_llgo_47, label %_llgo_48 @@ -1415,106 +1415,106 @@ _llgo_47: ; preds = %_llgo_46 %278 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %277, 0 %279 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %278, i64 0, 1 %280 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %279, i64 0, 2 - %281 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %282 = getelementptr ptr, ptr %281, i64 0 - store ptr %274, ptr %282, align 8 - %283 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %281, 0 - %284 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %283, i64 1, 1 - %285 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %284, i64 1, 2 - %286 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %280, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %285, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %286) - store ptr %286, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %281 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %282 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %283 = getelementptr ptr, ptr %282, i64 0 + store ptr %281, ptr %283, align 8 + %284 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %282, 0 + %285 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %284, i64 1, 1 + %286 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %285, i64 1, 2 + %287 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %280, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %286, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %287) + store ptr %287, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_48 _llgo_48: ; preds = %_llgo_47, %_llgo_46 - %287 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %288 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %287, 1 - %289 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %288, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Len", 2 - %290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %289, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Len", 3 - %291 = load ptr, ptr @"[]_llgo_uint8", align 8 - %292 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %293 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %292, 1 - %294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %293, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Read", 2 - %295 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %294, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Read", 3 - %296 = load ptr, ptr @"[]_llgo_uint8", align 8 + %288 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %289 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %288, 1 + %290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %289, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Len", 2 + %291 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %290, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Len", 3 + %292 = load ptr, ptr @"[]_llgo_uint8", align 8 + %293 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %293, 1 + %295 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %294, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Read", 2 + %296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %295, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Read", 3 %297 = load ptr, ptr @"[]_llgo_uint8", align 8 - %298 = load ptr, ptr @_llgo_int64, align 8 - %299 = load ptr, ptr @_llgo_int, align 8 - %300 = load ptr, ptr @_llgo_error, align 8 - %301 = load ptr, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 - %302 = icmp eq ptr %301, null - br i1 %302, label %_llgo_49, label %_llgo_50 + %298 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %299 = load ptr, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 + %300 = icmp eq ptr %299, null + br i1 %300, label %_llgo_49, label %_llgo_50 _llgo_49: ; preds = %_llgo_48 - %303 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %304 = getelementptr ptr, ptr %303, i64 0 - store ptr %297, ptr %304, align 8 - %305 = getelementptr ptr, ptr %303, i64 1 - store ptr %298, ptr %305, align 8 - %306 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %303, 0 - %307 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %306, i64 2, 1 - %308 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %307, i64 2, 2 - %309 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %310 = getelementptr ptr, ptr %309, i64 0 - store ptr %299, ptr %310, align 8 - %311 = getelementptr ptr, ptr %309, i64 1 - store ptr %300, ptr %311, align 8 - %312 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %309, 0 - %313 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %312, i64 2, 1 - %314 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %313, i64 2, 2 - %315 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %308, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %314, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %315) - store ptr %315, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 + %301 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %302 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %301) + %303 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %304 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %305 = getelementptr ptr, ptr %304, i64 0 + store ptr %302, ptr %305, align 8 + %306 = getelementptr ptr, ptr %304, i64 1 + store ptr %303, ptr %306, align 8 + %307 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %304, 0 + %308 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %307, i64 2, 1 + %309 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %308, i64 2, 2 + %310 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %311 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %312 = getelementptr ptr, ptr %311, i64 0 + store ptr %310, ptr %312, align 8 + %313 = getelementptr ptr, ptr %311, i64 1 + store ptr %298, ptr %313, align 8 + %314 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %311, 0 + %315 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %314, i64 2, 1 + %316 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %315, i64 2, 2 + %317 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %309, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %316, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %317) + store ptr %317, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 br label %_llgo_50 _llgo_50: ; preds = %_llgo_49, %_llgo_48 - %316 = load ptr, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 - %317 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %316, 1 - %318 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %317, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadAt", 2 - %319 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %318, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadAt", 3 - %320 = load ptr, ptr @_llgo_uint8, align 8 - %321 = load ptr, ptr @_llgo_error, align 8 - %322 = load ptr, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 - %323 = icmp eq ptr %322, null - br i1 %323, label %_llgo_51, label %_llgo_52 + %318 = load ptr, ptr @"_llgo_func$QoHVzMQ4PMXOd5kbZvdARJn-o_00R6hNyf6LoVk3X_4", align 8 + %319 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %318, 1 + %320 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %319, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadAt", 2 + %321 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %320, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadAt", 3 + %322 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %323 = load ptr, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 + %324 = icmp eq ptr %323, null + br i1 %324, label %_llgo_51, label %_llgo_52 _llgo_51: ; preds = %_llgo_50 - %324 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %325 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %324, 0 - %326 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %325, i64 0, 1 - %327 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %326, i64 0, 2 - %328 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %329 = getelementptr ptr, ptr %328, i64 0 - store ptr %320, ptr %329, align 8 - %330 = getelementptr ptr, ptr %328, i64 1 - store ptr %321, ptr %330, align 8 - %331 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %328, 0 - %332 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %331, i64 2, 1 - %333 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %332, i64 2, 2 - %334 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %327, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %333, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %334) - store ptr %334, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 + %325 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %326 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %325, 0 + %327 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %326, i64 0, 1 + %328 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %327, i64 0, 2 + %329 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %330 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %331 = getelementptr ptr, ptr %330, i64 0 + store ptr %329, ptr %331, align 8 + %332 = getelementptr ptr, ptr %330, i64 1 + store ptr %322, ptr %332, align 8 + %333 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %330, 0 + %334 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %333, i64 2, 1 + %335 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %334, i64 2, 2 + %336 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %328, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %335, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %336) + store ptr %336, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %335 = load ptr, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 - %336 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %335, 1 - %337 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %336, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadByte", 2 - %338 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %337, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadByte", 3 - %339 = load ptr, ptr @_llgo_rune, align 8 - %340 = icmp eq ptr %339, null - br i1 %340, label %_llgo_53, label %_llgo_54 + %337 = load ptr, ptr @"_llgo_func$lukqSsfDYBoIp_R8GMojGkZnrYDqaq2iHn8RkCjW7iQ", align 8 + %338 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %337, 1 + %339 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %338, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadByte", 2 + %340 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %339, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadByte", 3 + %341 = load ptr, ptr @_llgo_rune, align 8 + %342 = icmp eq ptr %341, null + br i1 %342, label %_llgo_53, label %_llgo_54 _llgo_53: ; preds = %_llgo_52 - %341 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) - store ptr %341, ptr @_llgo_rune, align 8 + %343 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) + store ptr %343, ptr @_llgo_rune, align 8 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_52 - %342 = load ptr, ptr @_llgo_rune, align 8 - %343 = load ptr, ptr @_llgo_rune, align 8 - %344 = load ptr, ptr @_llgo_int, align 8 - %345 = load ptr, ptr @_llgo_error, align 8 + %344 = load ptr, ptr @_llgo_rune, align 8 + %345 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) %346 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 %347 = icmp eq ptr %346, null br i1 %347, label %_llgo_55, label %_llgo_56 @@ -1524,189 +1524,191 @@ _llgo_55: ; preds = %_llgo_54 %349 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %348, 0 %350 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %349, i64 0, 1 %351 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %350, i64 0, 2 - %352 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %353 = getelementptr ptr, ptr %352, i64 0 - store ptr %343, ptr %353, align 8 - %354 = getelementptr ptr, ptr %352, i64 1 - store ptr %344, ptr %354, align 8 - %355 = getelementptr ptr, ptr %352, i64 2 - store ptr %345, ptr %355, align 8 - %356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %352, 0 - %357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %356, i64 3, 1 - %358 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %357, i64 3, 2 - %359 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %351, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %358, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %359) - store ptr %359, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %352 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) + %353 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %354 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %355 = getelementptr ptr, ptr %354, i64 0 + store ptr %352, ptr %355, align 8 + %356 = getelementptr ptr, ptr %354, i64 1 + store ptr %353, ptr %356, align 8 + %357 = getelementptr ptr, ptr %354, i64 2 + store ptr %345, ptr %357, align 8 + %358 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %354, 0 + %359 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %358, i64 3, 1 + %360 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %359, i64 3, 2 + %361 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %351, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %360, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %361) + store ptr %361, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 br label %_llgo_56 _llgo_56: ; preds = %_llgo_55, %_llgo_54 - %360 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - %361 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %360, 1 - %362 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %361, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadRune", 2 - %363 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %362, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadRune", 3 - %364 = load ptr, ptr @_llgo_int64, align 8 - %365 = load ptr, ptr @_llgo_int, align 8 - %366 = load ptr, ptr @_llgo_int64, align 8 - %367 = load ptr, ptr @_llgo_error, align 8 - %368 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %369 = icmp eq ptr %368, null - br i1 %369, label %_llgo_57, label %_llgo_58 + %362 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %363 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %362, 1 + %364 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %363, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadRune", 2 + %365 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %364, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).ReadRune", 3 + %366 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %367 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %368 = icmp eq ptr %367, null + br i1 %368, label %_llgo_57, label %_llgo_58 _llgo_57: ; preds = %_llgo_56 - %370 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %371 = getelementptr ptr, ptr %370, i64 0 - store ptr %364, ptr %371, align 8 - %372 = getelementptr ptr, ptr %370, i64 1 - store ptr %365, ptr %372, align 8 - %373 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %370, 0 - %374 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %373, i64 2, 1 - %375 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %374, i64 2, 2 - %376 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %377 = getelementptr ptr, ptr %376, i64 0 - store ptr %366, ptr %377, align 8 - %378 = getelementptr ptr, ptr %376, i64 1 - store ptr %367, ptr %378, align 8 - %379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %376, 0 - %380 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %379, i64 2, 1 - %381 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %380, i64 2, 2 - %382 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %375, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %381, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %382) - store ptr %382, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %369 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %370 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %371 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %372 = getelementptr ptr, ptr %371, i64 0 + store ptr %369, ptr %372, align 8 + %373 = getelementptr ptr, ptr %371, i64 1 + store ptr %370, ptr %373, align 8 + %374 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %371, 0 + %375 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %374, i64 2, 1 + %376 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %375, i64 2, 2 + %377 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %378 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %379 = getelementptr ptr, ptr %378, i64 0 + store ptr %377, ptr %379, align 8 + %380 = getelementptr ptr, ptr %378, i64 1 + store ptr %366, ptr %380, align 8 + %381 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %378, 0 + %382 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %381, i64 2, 1 + %383 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %382, i64 2, 2 + %384 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %376, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %383, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %384) + store ptr %384, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 br label %_llgo_58 _llgo_58: ; preds = %_llgo_57, %_llgo_56 - %383 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %384 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %383, 1 - %385 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %384, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Seek", 2 - %386 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %385, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Seek", 3 - %387 = load ptr, ptr @_llgo_int64, align 8 - %388 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %389 = icmp eq ptr %388, null - br i1 %389, label %_llgo_59, label %_llgo_60 + %385 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %386 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %385, 1 + %387 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %386, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Seek", 2 + %388 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %387, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Seek", 3 + %389 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %390 = icmp eq ptr %389, null + br i1 %390, label %_llgo_59, label %_llgo_60 _llgo_59: ; preds = %_llgo_58 - %390 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %391 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %390, 0 - %392 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %391, i64 0, 1 - %393 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %392, i64 0, 2 - %394 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %395 = getelementptr ptr, ptr %394, i64 0 - store ptr %387, ptr %395, align 8 - %396 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %394, 0 - %397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %396, i64 1, 1 - %398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %397, i64 1, 2 - %399 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %393, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %398, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %399) - store ptr %399, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %391 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %392 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %391, 0 + %393 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %392, i64 0, 1 + %394 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %393, i64 0, 2 + %395 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %396 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %397 = getelementptr ptr, ptr %396, i64 0 + store ptr %395, ptr %397, align 8 + %398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %396, 0 + %399 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %398, i64 1, 1 + %400 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %399, i64 1, 2 + %401 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %394, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %400, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %401) + store ptr %401, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 br label %_llgo_60 _llgo_60: ; preds = %_llgo_59, %_llgo_58 - %400 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %401 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %400, 1 - %402 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %401, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Size", 2 - %403 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %402, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Size", 3 - %404 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %405 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %404, 1 - %406 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %405, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadByte", 2 - %407 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %406, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadByte", 3 - %408 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %409 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %408, 1 - %410 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %409, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadRune", 2 - %411 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %410, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadRune", 3 - %412 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 - %413 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %412, 1 - %414 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %413, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).WriteTo", 2 - %415 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %414, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).WriteTo", 3 - %416 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 400) - %417 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %290, ptr %417, align 8 - %418 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %295, ptr %418, align 8 - %419 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %319, ptr %419, align 8 - %420 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %338, ptr %420, align 8 - %421 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %363, ptr %421, align 8 - %422 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %386, ptr %422, align 8 - %423 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %403, ptr %423, align 8 - %424 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %407, ptr %424, align 8 - %425 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %411, ptr %425, align 8 - %426 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %416, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %415, ptr %426, align 8 - %427 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %416, 0 - %428 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %427, i64 10, 1 - %429 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %428, i64 10, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %258, ptr %273, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %429) - %430 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) - %431 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %430) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %431) - store ptr %431, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/reader.stringReader", align 8 - %432 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 - %433 = load ptr, ptr @"_llgo_iface$uycIKA3bbxRhudEjW1hHKWKdLqHQsCVy8NdW1bkQmNw", align 8 - %434 = icmp eq ptr %433, null - br i1 %434, label %_llgo_61, label %_llgo_62 + %402 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %403 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %402, 1 + %404 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %403, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Size", 2 + %405 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %404, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).Size", 3 + %406 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %407 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %406, 1 + %408 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %407, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadByte", 2 + %409 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %408, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadByte", 3 + %410 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %411 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %410, 1 + %412 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %411, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadRune", 2 + %413 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %412, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).UnreadRune", 3 + %414 = load ptr, ptr @"_llgo_func$V_kP-r1nn8Ij-G2jGIm9ROLn4CjtLBch-g3Ha7pGJo4", align 8 + %415 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %414, 1 + %416 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %415, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).WriteTo", 2 + %417 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %416, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*stringReader).WriteTo", 3 + %418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 400) + %419 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %291, ptr %419, align 8 + %420 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %296, ptr %420, align 8 + %421 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %321, ptr %421, align 8 + %422 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %340, ptr %422, align 8 + %423 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %365, ptr %423, align 8 + %424 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %388, ptr %424, align 8 + %425 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %405, ptr %425, align 8 + %426 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %409, ptr %426, align 8 + %427 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %413, ptr %427, align 8 + %428 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %417, ptr %428, align 8 + %429 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %418, 0 + %430 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %429, i64 10, 1 + %431 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %430, i64 10, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %259, ptr %274, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %431) + %432 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) + %433 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %432) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %433) + store ptr %433, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/reader.stringReader", align 8 + %434 = load ptr, ptr @"_llgo_func$G2hch9Iy9DrhKKsg70PbL54bK-XSl-1IUUORN17J2Dk", align 8 + %435 = load ptr, ptr @"_llgo_iface$uycIKA3bbxRhudEjW1hHKWKdLqHQsCVy8NdW1bkQmNw", align 8 + %436 = icmp eq ptr %435, null + br i1 %436, label %_llgo_61, label %_llgo_62 _llgo_61: ; preds = %_llgo_60 - %435 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %432, 1 - %436 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %437 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %436, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %435, ptr %437, align 8 - %438 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %436, 0 - %439 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %438, i64 1, 1 - %440 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %439, i64 1, 2 - %441 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %440) - store ptr %441, ptr @"_llgo_iface$uycIKA3bbxRhudEjW1hHKWKdLqHQsCVy8NdW1bkQmNw", align 8 + %437 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %434, 1 + %438 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %439 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %438, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %437, ptr %439, align 8 + %440 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %438, 0 + %441 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %440, i64 1, 1 + %442 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %441, i64 1, 2 + %443 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %442) + store ptr %443, ptr @"_llgo_iface$uycIKA3bbxRhudEjW1hHKWKdLqHQsCVy8NdW1bkQmNw", align 8 br label %_llgo_62 _llgo_62: ; preds = %_llgo_61, %_llgo_60 - %442 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) - store ptr %442, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.errorString", align 8 - %443 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %444 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %443, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %445 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) - %446 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %445, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %444, ptr %446, align 8 - %447 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %445, 0 - %448 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %447, i64 1, 1 - %449 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %448, i64 1, 2 - %450 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %449) - store ptr %450, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %451 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %452 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %453 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %452, 1 - %454 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %453, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*errorString).Error", 2 - %455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %454, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*errorString).Error", 3 - %456 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %457 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %456, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %455, ptr %457, align 8 - %458 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %456, 0 - %459 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %458, i64 1, 1 - %460 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %459, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %442, ptr %451, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %460) - %461 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) - %462 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %461) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %462) - store ptr %462, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/reader.errorString", align 8 - %463 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %464 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %465 = icmp eq ptr %464, null - br i1 %465, label %_llgo_63, label %_llgo_64 + %444 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) + store ptr %444, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/reader.errorString", align 8 + %445 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %446 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %445, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %447 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %448 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %447, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %446, ptr %448, align 8 + %449 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %447, 0 + %450 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %449, i64 1, 1 + %451 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %450, i64 1, 2 + %452 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %451) + store ptr %452, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %453 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/reader.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %454 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %454, 1 + %456 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %455, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*errorString).Error", 2 + %457 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %456, ptr @"github.com/goplus/llgo/cl/_testgo/reader.(*errorString).Error", 3 + %458 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %459 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %458, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %457, ptr %459, align 8 + %460 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %458, 0 + %461 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %460, i64 1, 1 + %462 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %461, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %444, ptr %453, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %462) + %463 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) + %464 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %463) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %464) + store ptr %464, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/reader.errorString", align 8 + %465 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %466 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %467 = icmp eq ptr %466, null + br i1 %467, label %_llgo_63, label %_llgo_64 _llgo_63: ; preds = %_llgo_62 - %466 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %463, 1 - %467 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %468 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %467, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %466, ptr %468, align 8 - %469 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %467, 0 - %470 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %469, i64 1, 1 - %471 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %470, i64 1, 2 - %472 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %471) - store ptr %472, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %468 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %465, 1 + %469 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %470 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %469, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %468, ptr %470, align 8 + %471 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %469, 0 + %472 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %471, i64 1, 1 + %473 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %472, i64 1, 2 + %474 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %473) + store ptr %474, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 br label %_llgo_64 _llgo_64: ; preds = %_llgo_63, %_llgo_62 diff --git a/cl/_testgo/reflect/out.ll b/cl/_testgo/reflect/out.ll index ac84d40e..ac805422 100644 --- a/cl/_testgo/reflect/out.ll +++ b/cl/_testgo/reflect/out.ll @@ -1083,26 +1083,26 @@ _llgo_1: ; preds = %_llgo_0 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %8 = getelementptr ptr, ptr %7, i64 0 - store ptr %3, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 - %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %7 = getelementptr ptr, ptr %6, i64 0 + store ptr %5, ptr %7, align 8 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 1, 1 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 2 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %13 = getelementptr ptr, ptr %12, i64 0 - store ptr %4, ptr %13, align 8 + store ptr %11, ptr %13, align 8 %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %12, 0 %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 1, 1 %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 1, 2 - %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %17) store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 br label %_llgo_4 @@ -1119,21 +1119,21 @@ _llgo_5: ; preds = %_llgo_4 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %21 = load ptr, ptr @_llgo_int, align 8 - %22 = load ptr, ptr @_llgo_int, align 8 - %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %24 = getelementptr ptr, ptr %23, i64 0 - store ptr %21, ptr %24, align 8 - %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 - %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 1 - %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 1, 2 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %23 = getelementptr ptr, ptr %22, i64 0 + store ptr %21, ptr %23, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %22, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 1, 1 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 2 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %29 = getelementptr ptr, ptr %28, i64 0 - store ptr %22, ptr %29, align 8 + store ptr %27, ptr %29, align 8 %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 1 %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 1, 2 - %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) %34 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %36 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) @@ -1254,153 +1254,163 @@ _llgo_19: ; preds = %_llgo_18 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %97 = load ptr, ptr @_llgo_int, align 8 - %98 = load ptr, ptr @_llgo_int, align 8 - %99 = load ptr, ptr @_llgo_int, align 8 - %100 = load ptr, ptr @_llgo_int, align 8 - %101 = load ptr, ptr @_llgo_int, align 8 - %102 = load ptr, ptr @_llgo_int, align 8 - %103 = load ptr, ptr @_llgo_int, align 8 - %104 = load ptr, ptr @_llgo_int, align 8 - %105 = load ptr, ptr @_llgo_int, align 8 - %106 = load ptr, ptr @"[]_llgo_any", align 8 - %107 = load ptr, ptr @_llgo_int, align 8 - %108 = load ptr, ptr @_llgo_int, align 8 - %109 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 - %110 = icmp eq ptr %109, null - br i1 %110, label %_llgo_21, label %_llgo_22 + %97 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 + %98 = icmp eq ptr %97, null + br i1 %98, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %112 = getelementptr ptr, ptr %111, i64 0 - store ptr %97, ptr %112, align 8 - %113 = getelementptr ptr, ptr %111, i64 1 - store ptr %98, ptr %113, align 8 - %114 = getelementptr ptr, ptr %111, i64 2 - store ptr %99, ptr %114, align 8 - %115 = getelementptr ptr, ptr %111, i64 3 - store ptr %100, ptr %115, align 8 - %116 = getelementptr ptr, ptr %111, i64 4 - store ptr %101, ptr %116, align 8 - %117 = getelementptr ptr, ptr %111, i64 5 - store ptr %102, ptr %117, align 8 - %118 = getelementptr ptr, ptr %111, i64 6 - store ptr %103, ptr %118, align 8 - %119 = getelementptr ptr, ptr %111, i64 7 - store ptr %104, ptr %119, align 8 - %120 = getelementptr ptr, ptr %111, i64 8 - store ptr %105, ptr %120, align 8 - %121 = getelementptr ptr, ptr %111, i64 9 - store ptr %106, ptr %121, align 8 - %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %111, 0 - %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 10, 1 - %124 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, i64 10, 2 - %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %126 = getelementptr ptr, ptr %125, i64 0 - store ptr %107, ptr %126, align 8 - %127 = getelementptr ptr, ptr %125, i64 1 - store ptr %108, ptr %127, align 8 - %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %125, 0 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128, i64 2, 1 - %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 2, 2 - %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %124, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130, i1 true) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %131) - store ptr %131, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 + %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %109 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %108, 0 + %110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %109, i64 0, 1 + %111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %110, i64 0, 2 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %111) + %113 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %112) + %114 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %115 = getelementptr ptr, ptr %114, i64 0 + store ptr %99, ptr %115, align 8 + %116 = getelementptr ptr, ptr %114, i64 1 + store ptr %100, ptr %116, align 8 + %117 = getelementptr ptr, ptr %114, i64 2 + store ptr %101, ptr %117, align 8 + %118 = getelementptr ptr, ptr %114, i64 3 + store ptr %102, ptr %118, align 8 + %119 = getelementptr ptr, ptr %114, i64 4 + store ptr %103, ptr %119, align 8 + %120 = getelementptr ptr, ptr %114, i64 5 + store ptr %104, ptr %120, align 8 + %121 = getelementptr ptr, ptr %114, i64 6 + store ptr %105, ptr %121, align 8 + %122 = getelementptr ptr, ptr %114, i64 7 + store ptr %106, ptr %122, align 8 + %123 = getelementptr ptr, ptr %114, i64 8 + store ptr %107, ptr %123, align 8 + %124 = getelementptr ptr, ptr %114, i64 9 + store ptr %113, ptr %124, align 8 + %125 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %114, 0 + %126 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %125, i64 10, 1 + %127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %126, i64 10, 2 + %128 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %129 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %131 = getelementptr ptr, ptr %130, i64 0 + store ptr %128, ptr %131, align 8 + %132 = getelementptr ptr, ptr %130, i64 1 + store ptr %129, ptr %132, align 8 + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %130, 0 + %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %133, i64 2, 1 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %134, i64 2, 2 + %136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %127, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %135, i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %136) + store ptr %136, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %132 = load ptr, ptr @_llgo_int, align 8 - %133 = load ptr, ptr @_llgo_int, align 8 - %134 = load ptr, ptr @_llgo_int, align 8 - %135 = load ptr, ptr @_llgo_int, align 8 - %136 = load ptr, ptr @_llgo_int, align 8 - %137 = load ptr, ptr @_llgo_int, align 8 - %138 = load ptr, ptr @_llgo_int, align 8 - %139 = load ptr, ptr @_llgo_int, align 8 - %140 = load ptr, ptr @_llgo_int, align 8 - %141 = load ptr, ptr @"[]_llgo_any", align 8 - %142 = load ptr, ptr @_llgo_int, align 8 - %143 = load ptr, ptr @_llgo_int, align 8 - %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %145 = getelementptr ptr, ptr %144, i64 0 - store ptr %132, ptr %145, align 8 - %146 = getelementptr ptr, ptr %144, i64 1 - store ptr %133, ptr %146, align 8 - %147 = getelementptr ptr, ptr %144, i64 2 - store ptr %134, ptr %147, align 8 - %148 = getelementptr ptr, ptr %144, i64 3 - store ptr %135, ptr %148, align 8 - %149 = getelementptr ptr, ptr %144, i64 4 - store ptr %136, ptr %149, align 8 - %150 = getelementptr ptr, ptr %144, i64 5 - store ptr %137, ptr %150, align 8 - %151 = getelementptr ptr, ptr %144, i64 6 - store ptr %138, ptr %151, align 8 - %152 = getelementptr ptr, ptr %144, i64 7 - store ptr %139, ptr %152, align 8 - %153 = getelementptr ptr, ptr %144, i64 8 - store ptr %140, ptr %153, align 8 - %154 = getelementptr ptr, ptr %144, i64 9 - store ptr %141, ptr %154, align 8 - %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %144, 0 - %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %155, i64 10, 1 - %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %156, i64 10, 2 - %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %159 = getelementptr ptr, ptr %158, i64 0 - store ptr %142, ptr %159, align 8 - %160 = getelementptr ptr, ptr %158, i64 1 - store ptr %143, ptr %160, align 8 - %161 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %158, 0 - %162 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %161, i64 2, 1 - %163 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %162, i64 2, 2 - %164 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %157, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %163, i1 true) - %165 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }, ptr %164, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %167 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %166, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %168, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %165, ptr %169, align 8 - %170 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %168, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %167, ptr %170, align 8 + %137 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %139 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %142 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %146, 0 + %148 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %147, i64 0, 1 + %149 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %148, i64 0, 2 + %150 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %149) + %151 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %150) + %152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %153 = getelementptr ptr, ptr %152, i64 0 + store ptr %137, ptr %153, align 8 + %154 = getelementptr ptr, ptr %152, i64 1 + store ptr %138, ptr %154, align 8 + %155 = getelementptr ptr, ptr %152, i64 2 + store ptr %139, ptr %155, align 8 + %156 = getelementptr ptr, ptr %152, i64 3 + store ptr %140, ptr %156, align 8 + %157 = getelementptr ptr, ptr %152, i64 4 + store ptr %141, ptr %157, align 8 + %158 = getelementptr ptr, ptr %152, i64 5 + store ptr %142, ptr %158, align 8 + %159 = getelementptr ptr, ptr %152, i64 6 + store ptr %143, ptr %159, align 8 + %160 = getelementptr ptr, ptr %152, i64 7 + store ptr %144, ptr %160, align 8 + %161 = getelementptr ptr, ptr %152, i64 8 + store ptr %145, ptr %161, align 8 + %162 = getelementptr ptr, ptr %152, i64 9 + store ptr %151, ptr %162, align 8 + %163 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %152, 0 + %164 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %163, i64 10, 1 + %165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %164, i64 10, 2 + %166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %167 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %169 = getelementptr ptr, ptr %168, i64 0 + store ptr %166, ptr %169, align 8 + %170 = getelementptr ptr, ptr %168, i64 1 + store ptr %167, ptr %170, align 8 %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %168, 0 %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, i64 2, 1 %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 2, 2 - %174 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173) - store ptr %174, ptr @"github.com/goplus/llgo/cl/_testgo/reflect.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 - %175 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %176 = icmp eq ptr %175, null - br i1 %176, label %_llgo_23, label %_llgo_24 + %174 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %165, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i1 true) + %175 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }, ptr %174, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %176 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %177 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %176, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %178 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %179 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %178, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %175, ptr %179, align 8 + %180 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %178, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %177, ptr %180, align 8 + %181 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %178, 0 + %182 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %181, i64 2, 1 + %183 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %182, i64 2, 2 + %184 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %183) + store ptr %184, ptr @"github.com/goplus/llgo/cl/_testgo/reflect.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 + %185 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %186 = icmp eq ptr %185, null + br i1 %186, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) - %178 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %179 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %180 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %179) - %181 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 7 }, ptr %180, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) - %183 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %182) - %184 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 4 }, ptr %183, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %185 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %186 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %185) - %187 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 5 }, ptr %186, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %189 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 8 }, ptr %188, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %190 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) - %191 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %181, ptr %191, align 8 - %192 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %184, ptr %192, align 8 - %193 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %187, ptr %193, align 8 - %194 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %189, ptr %194, align 8 - %195 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %190, 0 - %196 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %195, i64 4, 1 - %197 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %196, i64 4, 2 - %198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %197) - %199 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %177, ptr %178, ptr %198, i64 4) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %199) - store ptr %199, ptr @"map[_llgo_int]_llgo_string", align 8 + %187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %190 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %189) + %191 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 7 }, ptr %190, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %192 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %193 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %192) + %194 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 4 }, ptr %193, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %195 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %196 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %195) + %197 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 5 }, ptr %196, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %199 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 8 }, ptr %198, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %200 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %201 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %200, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %191, ptr %201, align 8 + %202 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %200, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %194, ptr %202, align 8 + %203 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %200, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %197, ptr %203, align 8 + %204 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %200, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %199, ptr %204, align 8 + %205 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %200, 0 + %206 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %205, i64 4, 1 + %207 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %206, i64 4, 2 + %208 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 41 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %207) + %209 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %187, ptr %188, ptr %208, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %209) + store ptr %209, ptr @"map[_llgo_int]_llgo_string", align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 diff --git a/cl/_testgo/reflectmkfn/out.ll b/cl/_testgo/reflectmkfn/out.ll index e6c51d8a..5f2b9576 100644 --- a/cl/_testgo/reflectmkfn/out.ll +++ b/cl/_testgo/reflectmkfn/out.ll @@ -174,29 +174,29 @@ _llgo_3: ; preds = %_llgo_2 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - %7 = load ptr, ptr @_llgo_int, align 8 - %8 = load ptr, ptr @_llgo_string, align 8 - %9 = load ptr, ptr @"_llgo_func$CFociaKlCvq9sERkLkn9LoCwUbRN_-idPZ-9Ui7-BZI", align 8 - %10 = icmp eq ptr %9, null - br i1 %10, label %_llgo_5, label %_llgo_6 + %6 = load ptr, ptr @"_llgo_func$CFociaKlCvq9sERkLkn9LoCwUbRN_-idPZ-9Ui7-BZI", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %12 = getelementptr ptr, ptr %11, i64 0 - store ptr %6, ptr %12, align 8 - %13 = getelementptr ptr, ptr %11, i64 1 - store ptr %7, ptr %13, align 8 - %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %11, 0 - %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 2, 1 - %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 2, 2 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %11 = getelementptr ptr, ptr %10, i64 0 + store ptr %8, ptr %11, align 8 + %12 = getelementptr ptr, ptr %10, i64 1 + store ptr %9, ptr %12, align 8 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %10, 0 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %13, i64 2, 1 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 2, 2 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %18 = getelementptr ptr, ptr %17, i64 0 - store ptr %8, ptr %18, align 8 + store ptr %16, ptr %18, align 8 %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %17, 0 %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 1, 1 %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 1, 2 - %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i1 false) + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %22) store ptr %22, ptr @"_llgo_func$CFociaKlCvq9sERkLkn9LoCwUbRN_-idPZ-9Ui7-BZI", align 8 br label %_llgo_6 @@ -213,24 +213,24 @@ _llgo_7: ; preds = %_llgo_6 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %26 = load ptr, ptr @_llgo_string, align 8 - %27 = load ptr, ptr @_llgo_int, align 8 - %28 = load ptr, ptr @_llgo_string, align 8 - %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %30 = getelementptr ptr, ptr %29, i64 0 - store ptr %26, ptr %30, align 8 - %31 = getelementptr ptr, ptr %29, i64 1 - store ptr %27, ptr %31, align 8 - %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %29, 0 - %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 2, 1 - %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 2, 2 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %29 = getelementptr ptr, ptr %28, i64 0 + store ptr %26, ptr %29, align 8 + %30 = getelementptr ptr, ptr %28, i64 1 + store ptr %27, ptr %30, align 8 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 2, 1 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 2, 2 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %36 = getelementptr ptr, ptr %35, i64 0 - store ptr %28, ptr %36, align 8 + store ptr %34, ptr %36, align 8 %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %35, 0 %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i64 1, 1 %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 1, 2 - %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i1 false) + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i1 false) %41 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 2 }, ptr %40, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %43 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %42, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) diff --git a/cl/_testgo/struczero/out.ll b/cl/_testgo/struczero/out.ll index 96e60be3..b1ed44e8 100644 --- a/cl/_testgo/struczero/out.ll +++ b/cl/_testgo/struczero/out.ll @@ -209,71 +209,72 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_9: ; preds = %_llgo_8 %29 = load ptr, ptr @"*_llgo_uint8", align 8 - %30 = load ptr, ptr @"*_llgo_uint8", align 8 - %31 = load ptr, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 - %32 = icmp eq ptr %31, null - br i1 %32, label %_llgo_11, label %_llgo_12 + %30 = load ptr, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_11, label %_llgo_12 _llgo_10: ; preds = %_llgo_12, %_llgo_8 - %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 43 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 3 }, i64 25, i64 16, i64 0, i64 0) - store ptr %33, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/struczero.bar", align 8 - %34 = load ptr, ptr @"*_llgo_uint8", align 8 - %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %35) - %37 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %36, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) - %39 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 1 }, ptr %38, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %41 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %40, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %37, ptr %41, align 8 - %42 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %40, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %39, ptr %42, align 8 - %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %40, 0 - %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 2, 1 - %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 2 - %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 43 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45) - store ptr %46, ptr @"github.com/goplus/llgo/cl/_testgo/struczero.struct$2215Oa2lkpk-YZ2pdVVs2mMqzhx1jppOCrAxbrX70ko", align 8 - %47 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/struczero.struct$2215Oa2lkpk-YZ2pdVVs2mMqzhx1jppOCrAxbrX70ko", align 8 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %33, ptr %47, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 43 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 3 }, i64 25, i64 16, i64 0, i64 0) + store ptr %32, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/struczero.bar", align 8 + %33 = load ptr, ptr @"*_llgo_uint8", align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %34) + %36 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %35, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) + %38 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 1 }, ptr %37, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %40 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %39, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %36, ptr %40, align 8 + %41 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %39, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %38, ptr %41, align 8 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %39, 0 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, i64 2, 1 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 2, 2 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 43 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44) + store ptr %45, ptr @"github.com/goplus/llgo/cl/_testgo/struczero.struct$2215Oa2lkpk-YZ2pdVVs2mMqzhx1jppOCrAxbrX70ko", align 8 + %46 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/struczero.struct$2215Oa2lkpk-YZ2pdVVs2mMqzhx1jppOCrAxbrX70ko", align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %32, ptr %46, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) ret void _llgo_11: ; preds = %_llgo_9 - %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %48, 0 - %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 0, 1 - %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 0, 2 - %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %53 = getelementptr ptr, ptr %52, i64 0 - store ptr %30, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 - %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %57) - store ptr %57, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %47, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %48, i64 0, 1 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 0, 2 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %51) + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %54 = getelementptr ptr, ptr %53, i64 0 + store ptr %52, ptr %54, align 8 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %53, 0 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 1 + %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i64 1, 2 + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %58) + store ptr %58, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_9 - %58 = load ptr, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 - %59 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %59, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 2 - %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 3 - %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 2 - %64 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %63, ptr @"github.com/goplus/llgo/cl/_testdata/foo.Foo.Pb", 3 - %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %66 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %65, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %64, ptr %66, align 8 - %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %65, 0 - %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 1, 1 - %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 2 - %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %70, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %70, 0 - %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 1, 1 - %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %28, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74) + %59 = load ptr, ptr @"_llgo_func$bbS9EKnYgxbrRntc_6WJN6WLF9IKQADblvN_cLtKCqY", align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %59, 1 + %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 2 + %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 3 + %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %59, 1 + %64 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %63, ptr @"github.com/goplus/llgo/cl/_testdata/foo.(*Foo).Pb", 2 + %65 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %64, ptr @"github.com/goplus/llgo/cl/_testdata/foo.Foo.Pb", 3 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %67 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %66, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %65, ptr %67, align 8 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %66, 0 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 1 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, i64 1, 2 + %71 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %72 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %71, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr %72, align 8 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %71, 0 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 1, 1 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %28, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %75) br label %_llgo_10 } diff --git a/cl/_testgo/tpinst/out.ll b/cl/_testgo/tpinst/out.ll index 228a3469..06ae573c 100644 --- a/cl/_testgo/tpinst/out.ll +++ b/cl/_testgo/tpinst/out.ll @@ -235,29 +235,29 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 br i1 %2, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %16 = load ptr, ptr @_llgo_int, align 8 - %17 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %18 = icmp eq ptr %17, null - br i1 %18, label %_llgo_7, label %_llgo_8 + %16 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %17 = icmp eq ptr %16, null + br i1 %17, label %_llgo_7, label %_llgo_8 _llgo_6: ; preds = %_llgo_8, %_llgo_4 - %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 6 }, i64 25, i64 8, i64 0, i64 2) - %20 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[int]", align 8 - %21 = icmp eq ptr %20, null - br i1 %21, label %_llgo_9, label %_llgo_10 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 6 }, i64 25, i64 8, i64 0, i64 2) + %19 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[int]", align 8 + %20 = icmp eq ptr %19, null + br i1 %20, label %_llgo_9, label %_llgo_10 _llgo_7: ; preds = %_llgo_5 - %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %22, 0 - %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 0, 1 - %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 0, 2 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i64 0, 1 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 0, 2 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %27 = getelementptr ptr, ptr %26, i64 0 - store ptr %16, ptr %27, align 8 + store ptr %25, ptr %27, align 8 %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 1, 1 %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 1, 2 - %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i1 false) + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %31) store ptr %31, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_8 @@ -283,7 +283,7 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_5 br label %_llgo_6 _llgo_9: ; preds = %_llgo_6 - %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %19) + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %18) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %46) store ptr %46, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[int]", align 8 br label %_llgo_10 @@ -352,29 +352,29 @@ _llgo_18: ; preds = %_llgo_17, %_llgo_16 br i1 %62, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %76 = load ptr, ptr @_llgo_float64, align 8 - %77 = load ptr, ptr @"_llgo_func$UYiLlmcWxoOKZPPzvR4LByitNeKoVGoTrB_5ubdOWW8", align 8 - %78 = icmp eq ptr %77, null - br i1 %78, label %_llgo_21, label %_llgo_22 + %76 = load ptr, ptr @"_llgo_func$UYiLlmcWxoOKZPPzvR4LByitNeKoVGoTrB_5ubdOWW8", align 8 + %77 = icmp eq ptr %76, null + br i1 %77, label %_llgo_21, label %_llgo_22 _llgo_20: ; preds = %_llgo_22, %_llgo_18 - %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 10 }, i64 25, i64 8, i64 0, i64 2) - %80 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[float64]", align 8 - %81 = icmp eq ptr %80, null - br i1 %81, label %_llgo_23, label %_llgo_24 + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 40 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 10 }, i64 25, i64 8, i64 0, i64 2) + %79 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[float64]", align 8 + %80 = icmp eq ptr %79, null + br i1 %80, label %_llgo_23, label %_llgo_24 _llgo_21: ; preds = %_llgo_19 - %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %82, 0 - %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i64 0, 1 - %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %84, i64 0, 2 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %82 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %81, 0 + %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %82, i64 0, 1 + %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i64 0, 2 + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %87 = getelementptr ptr, ptr %86, i64 0 - store ptr %76, ptr %87, align 8 + store ptr %85, ptr %87, align 8 %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %86, 0 %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, i64 1, 1 %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, i64 1, 2 - %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i1 false) + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %84, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %91) store ptr %91, ptr @"_llgo_func$UYiLlmcWxoOKZPPzvR4LByitNeKoVGoTrB_5ubdOWW8", align 8 br label %_llgo_22 @@ -400,7 +400,7 @@ _llgo_22: ; preds = %_llgo_21, %_llgo_19 br label %_llgo_20 _llgo_23: ; preds = %_llgo_20 - %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %79) + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %78) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %106) store ptr %106, ptr @"*_llgo_github.com/goplus/llgo/cl/_testgo/tpinst.M[float64]", align 8 br label %_llgo_24 diff --git a/cl/_testrt/abinamed/out.ll b/cl/_testrt/abinamed/out.ll index e41eb062..869c5ad9 100644 --- a/cl/_testrt/abinamed/out.ll +++ b/cl/_testrt/abinamed/out.ll @@ -513,53 +513,53 @@ _llgo_19: ; preds = %_llgo_18 _llgo_20: ; preds = %_llgo_19, %_llgo_18 %35 = load ptr, ptr @_llgo_bool, align 8 - %36 = load ptr, ptr @_llgo_Pointer, align 8 - %37 = load ptr, ptr @_llgo_Pointer, align 8 - %38 = load ptr, ptr @_llgo_bool, align 8 - %39 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 - %40 = icmp eq ptr %39, null - br i1 %40, label %_llgo_21, label %_llgo_22 + %36 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 + %37 = icmp eq ptr %36, null + br i1 %37, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %42 = getelementptr ptr, ptr %41, i64 0 - store ptr %36, ptr %42, align 8 - %43 = getelementptr ptr, ptr %41, i64 1 - store ptr %37, ptr %43, align 8 - %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %41, 0 - %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 1 - %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 2, 2 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %41 = getelementptr ptr, ptr %40, i64 0 + store ptr %38, ptr %41, align 8 + %42 = getelementptr ptr, ptr %40, i64 1 + store ptr %39, ptr %42, align 8 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %40, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 2, 1 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 2 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %48 = getelementptr ptr, ptr %47, i64 0 - store ptr %38, ptr %48, align 8 + store ptr %46, ptr %48, align 8 %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %47, 0 %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 1, 1 %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 1, 2 - %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i1 false) + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %52) store ptr %52, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 %53 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 - %54 = load ptr, ptr @_llgo_Pointer, align 8 - %55 = load ptr, ptr @_llgo_Pointer, align 8 - %56 = load ptr, ptr @_llgo_bool, align 8 - %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %58 = getelementptr ptr, ptr %57, i64 0 - store ptr %54, ptr %58, align 8 - %59 = getelementptr ptr, ptr %57, i64 1 - store ptr %55, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 - %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %57 = getelementptr ptr, ptr %56, i64 0 + store ptr %54, ptr %57, align 8 + %58 = getelementptr ptr, ptr %56, i64 1 + store ptr %55, ptr %58, align 8 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %56, 0 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %59, i64 2, 1 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 2 + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %64 = getelementptr ptr, ptr %63, i64 0 - store ptr %56, ptr %64, align 8 + store ptr %62, ptr %64, align 8 %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %63, 0 %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %65, i64 1, 1 %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 1, 2 - %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i1 false) + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i1 false) %69 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %68, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %71 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %70, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) @@ -614,38 +614,38 @@ _llgo_27: ; preds = %_llgo_26 _llgo_28: ; preds = %_llgo_27, %_llgo_26 %95 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, i64 8, i64 1, i64 0, i64 0) - %97 = load ptr, ptr @_llgo_Pointer, align 8 - %98 = load ptr, ptr @_llgo_Pointer, align 8 - %99 = load ptr, ptr @_llgo_bool, align 8 - %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) - %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) - %102 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, ptr %101, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) - %104 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 8 }, ptr %103, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) - %106 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr %105, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %107 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr %96, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %109 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 6 }, ptr %108, i64 21, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %111 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 11 }, ptr %110, i64 22, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %113 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 5 }, ptr %112, i64 23, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %114 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %115 = getelementptr ptr, ptr %114, i64 0 - store ptr %97, ptr %115, align 8 - %116 = getelementptr ptr, ptr %114, i64 1 - store ptr %98, ptr %116, align 8 - %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %114, 0 - %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %117, i64 2, 1 - %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %118, i64 2, 2 + %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) + %98 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %99 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, ptr %98, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %101 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 8 }, ptr %100, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %103 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr %102, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %104 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr %96, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %106 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 6 }, ptr %105, i64 21, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %108 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 11 }, ptr %107, i64 22, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %110 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 5 }, ptr %109, i64 23, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %113 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %114 = getelementptr ptr, ptr %113, i64 0 + store ptr %111, ptr %114, align 8 + %115 = getelementptr ptr, ptr %113, i64 1 + store ptr %112, ptr %115, align 8 + %116 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %113, 0 + %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %116, i64 2, 1 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %117, i64 2, 2 + %119 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) %120 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %121 = getelementptr ptr, ptr %120, i64 0 - store ptr %99, ptr %121, align 8 + store ptr %119, ptr %121, align 8 %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %120, 0 %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 1, 1 %124 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, i64 1, 2 - %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %124, i1 false) + %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %118, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %124, i1 false) %126 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %125, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %128 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %127, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) @@ -664,23 +664,23 @@ _llgo_28: ; preds = %_llgo_27, %_llgo_26 %139 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 6 }, ptr %138, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %141 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 4 }, ptr %140, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %142 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %100) + %142 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %97) %143 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 10 }, ptr %142, i64 64, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 616) %145 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %102, ptr %145, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %99, ptr %145, align 8 %146 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %104, ptr %146, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %101, ptr %146, align 8 %147 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %106, ptr %147, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %103, ptr %147, align 8 %148 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %107, ptr %148, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %104, ptr %148, align 8 %149 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 4 - store %"github.com/goplus/llgo/runtime/abi.StructField" %109, ptr %149, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %106, ptr %149, align 8 %150 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 5 - store %"github.com/goplus/llgo/runtime/abi.StructField" %111, ptr %150, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %108, ptr %150, align 8 %151 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 6 - store %"github.com/goplus/llgo/runtime/abi.StructField" %113, ptr %151, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %110, ptr %151, align 8 %152 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 7 store %"github.com/goplus/llgo/runtime/abi.StructField" %136, ptr %152, align 8 %153 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %144, i64 8 @@ -717,23 +717,23 @@ _llgo_31: ; preds = %_llgo_29 _llgo_32: ; preds = %_llgo_31, %_llgo_29 %169 = load ptr, ptr @_llgo_int, align 8 - %170 = load ptr, ptr @_llgo_int, align 8 - %171 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %172 = icmp eq ptr %171, null - br i1 %172, label %_llgo_33, label %_llgo_34 + %170 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %171 = icmp eq ptr %170, null + br i1 %171, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %173 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %173, 0 - %175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174, i64 0, 1 - %176 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %175, i64 0, 2 + %172 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %172, 0 + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 0, 1 + %175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174, i64 0, 2 + %176 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %178 = getelementptr ptr, ptr %177, i64 0 - store ptr %170, ptr %178, align 8 + store ptr %176, ptr %178, align 8 %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %177, 0 %180 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %179, i64 1, 1 %181 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %180, i64 1, 2 - %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %176, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %181, i1 false) + %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %175, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %181, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %182) store ptr %182, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_34 @@ -952,7 +952,7 @@ _llgo_39: ; preds = %_llgo_37 _llgo_40: ; preds = %_llgo_39, %_llgo_37 %345 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 - %346 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %346 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, i64 25, i64 104, i64 0, i64 21) %347 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 %348 = icmp eq ptr %347, null br i1 %348, label %_llgo_41, label %_llgo_42 @@ -962,1790 +962,1798 @@ _llgo_41: ; preds = %_llgo_40 %350 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %349, 0 %351 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %350, i64 0, 1 %352 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %351, i64 0, 2 - %353 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %354 = getelementptr ptr, ptr %353, i64 0 - store ptr %346, ptr %354, align 8 - %355 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %353, 0 - %356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %355, i64 1, 1 - %357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %356, i64 1, 2 - %358 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %352, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %357, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %358) - store ptr %358, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %353 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %346) + %354 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %355 = getelementptr ptr, ptr %354, i64 0 + store ptr %353, ptr %355, align 8 + %356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %354, 0 + %357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %356, i64 1, 1 + %358 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %357, i64 1, 2 + %359 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %352, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %358, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %359) + store ptr %359, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %359 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 - %360 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %359, 1 - %361 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %360, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 2 - %362 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %361, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 3 - %363 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, i64 2, i64 8, i64 0, i64 0) - %364 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 - %365 = icmp eq ptr %364, null - br i1 %365, label %_llgo_43, label %_llgo_44 + %360 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %361 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %360, 1 + %362 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %361, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 2 + %363 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %362, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 3 + %364 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, i64 2, i64 8, i64 0, i64 0) + %365 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + %366 = icmp eq ptr %365, null + br i1 %366, label %_llgo_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - store ptr %363, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + store ptr %364, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %366 = load ptr, ptr @_llgo_int, align 8 - br i1 %365, label %_llgo_45, label %_llgo_46 + %367 = load ptr, ptr @_llgo_int, align 8 + br i1 %366, label %_llgo_45, label %_llgo_46 _llgo_45: ; preds = %_llgo_44 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %363, ptr %366, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %364, ptr %367, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %367 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 %368 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 - %369 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %370 = icmp eq ptr %369, null - br i1 %370, label %_llgo_47, label %_llgo_48 + %369 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, i64 2, i64 8, i64 0, i64 0) + %370 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %371 = icmp eq ptr %370, null + br i1 %371, label %_llgo_47, label %_llgo_48 _llgo_47: ; preds = %_llgo_46 - %371 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %372 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %371, 0 - %373 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %372, i64 0, 1 - %374 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %373, i64 0, 2 - %375 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %376 = getelementptr ptr, ptr %375, i64 0 - store ptr %368, ptr %376, align 8 - %377 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %375, 0 - %378 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %377, i64 1, 1 - %379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %378, i64 1, 2 - %380 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %374, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %379, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %380) - store ptr %380, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %372 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %373 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %372, 0 + %374 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %373, i64 0, 1 + %375 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %374, i64 0, 2 + %376 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %377 = getelementptr ptr, ptr %376, i64 0 + store ptr %369, ptr %377, align 8 + %378 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %376, 0 + %379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %378, i64 1, 1 + %380 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %379, i64 1, 2 + %381 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %375, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %380, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %381) + store ptr %381, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 br label %_llgo_48 _llgo_48: ; preds = %_llgo_47, %_llgo_46 - %381 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %382 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %381, 1 - %383 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %382, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 2 - %384 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %383, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 3 - %385 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %382 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %383 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %382, 1 + %384 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %383, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 2 + %385 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %384, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 3 %386 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %387 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %388 = icmp eq ptr %387, null - br i1 %388, label %_llgo_49, label %_llgo_50 + %387 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %388 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %389 = icmp eq ptr %388, null + br i1 %389, label %_llgo_49, label %_llgo_50 _llgo_49: ; preds = %_llgo_48 - %389 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %390 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %389, 0 - %391 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %390, i64 0, 1 - %392 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %391, i64 0, 2 - %393 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %394 = getelementptr ptr, ptr %393, i64 0 - store ptr %386, ptr %394, align 8 - %395 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %393, 0 - %396 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %395, i64 1, 1 - %397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %396, i64 1, 2 - %398 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %392, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %397, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %398) - store ptr %398, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %390 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %391 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %390, 0 + %392 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %391, i64 0, 1 + %393 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %392, i64 0, 2 + %394 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %387) + %395 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %396 = getelementptr ptr, ptr %395, i64 0 + store ptr %394, ptr %396, align 8 + %397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %395, 0 + %398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %397, i64 1, 1 + %399 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %398, i64 1, 2 + %400 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %393, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %399, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %400) + store ptr %400, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 br label %_llgo_50 _llgo_50: ; preds = %_llgo_49, %_llgo_48 - %399 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %400 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %399, 1 - %401 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %400, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 2 - %402 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %401, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 3 - %403 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) - %404 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %405 = icmp eq ptr %404, null - br i1 %405, label %_llgo_51, label %_llgo_52 + %401 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %402 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %401, 1 + %403 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %402, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 2 + %404 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %403, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 3 + %405 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) + %406 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %407 = icmp eq ptr %406, null + br i1 %407, label %_llgo_51, label %_llgo_52 _llgo_51: ; preds = %_llgo_50 - store ptr %403, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + store ptr %405, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %406 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %407 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %408 = icmp eq ptr %407, null - br i1 %408, label %_llgo_53, label %_llgo_54 + %408 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %409 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %410 = icmp eq ptr %409, null + br i1 %410, label %_llgo_53, label %_llgo_54 _llgo_53: ; preds = %_llgo_52 - store ptr %406, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + store ptr %408, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_52 - %409 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %410 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %411 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %412 = icmp eq ptr %411, null - br i1 %412, label %_llgo_55, label %_llgo_56 + %411 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %412 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %413 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %414 = icmp eq ptr %413, null + br i1 %414, label %_llgo_55, label %_llgo_56 _llgo_55: ; preds = %_llgo_54 - %413 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %410) - %414 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %413) - store ptr %414, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %415 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %412) + %416 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %415) + store ptr %416, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 br label %_llgo_56 _llgo_56: ; preds = %_llgo_55, %_llgo_54 - %415 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %416 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 %417 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %419 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %418 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %419 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 %420 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %421 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %418, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %422 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %419) - %423 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %422) - %424 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 2 }, ptr %423, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %425 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %420) - %426 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %425) - %427 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 3 }, ptr %426, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %428 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) - %429 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %428, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %421, ptr %429, align 8 - %430 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %428, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %424, ptr %430, align 8 - %431 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %428, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %427, ptr %431, align 8 - %432 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %428, 0 - %433 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %432, i64 3, 1 - %434 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %433, i64 3, 2 - %435 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %434) - store ptr %435, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 - %436 = load ptr, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 - br i1 %408, label %_llgo_57, label %_llgo_58 + %421 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %422 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %423 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %420, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %424 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %421) + %425 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %424) + %426 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 2 }, ptr %425, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %427 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %422) + %428 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %427) + %429 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 3 }, ptr %428, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %430 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %431 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %430, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %423, ptr %431, align 8 + %432 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %430, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %426, ptr %432, align 8 + %433 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %430, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %429, ptr %433, align 8 + %434 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %430, 0 + %435 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %434, i64 3, 1 + %436 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %435, i64 3, 2 + %437 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %436) + store ptr %437, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 + %438 = load ptr, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 + br i1 %410, label %_llgo_57, label %_llgo_58 _llgo_57: ; preds = %_llgo_56 - %437 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %438 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %437, 1 - %439 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %438, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 2 - %440 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %439, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 3 - %441 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 - %442 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 - %443 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %442, 1 - %444 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %443, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 2 - %445 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %444, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 3 - %446 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %447 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %446, 1 - %448 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %447, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 2 - %449 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %448, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 3 - %450 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %451 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %452 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %451, 1 - %453 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %452, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 2 - %454 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %453, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 3 - %455 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %456 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %457 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %456, 1 - %458 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %457, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 2 - %459 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %458, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 3 - %460 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) - %461 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %462 = icmp eq ptr %461, null - br i1 %462, label %_llgo_59, label %_llgo_60 + %439 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %440 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %439, 1 + %441 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %440, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 2 + %442 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %441, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 3 + %443 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %444 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %445 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %444, 1 + %446 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %445, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 2 + %447 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %446, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 3 + %448 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %449 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %448, 1 + %450 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %449, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 2 + %451 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %450, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 3 + %452 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %453 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %454 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %453, 1 + %455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %454, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 2 + %456 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %455, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 3 + %457 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %458 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %459 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %458, 1 + %460 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %459, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 2 + %461 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %460, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 3 + %462 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) + %463 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %464 = icmp eq ptr %463, null + br i1 %464, label %_llgo_59, label %_llgo_60 _llgo_58: ; preds = %_llgo_80, %_llgo_56 - %463 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %464 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %465 = load ptr, ptr @_llgo_Pointer, align 8 - %466 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %467 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %468 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %467, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %469 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %466) - %470 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @75, i64 5 }, ptr %469, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %471 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %472 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @76, i64 4 }, ptr %471, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %465 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %466 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %467 = load ptr, ptr @_llgo_Pointer, align 8 + %468 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %469 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %470 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %469, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %471 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %468) + %472 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @75, i64 5 }, ptr %471, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %473 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %474 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @77, i64 4 }, ptr %473, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %475 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) - %476 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %475, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %468, ptr %476, align 8 - %477 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %475, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %470, ptr %477, align 8 - %478 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %475, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %472, ptr %478, align 8 - %479 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %475, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %474, ptr %479, align 8 - %480 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %475, 0 - %481 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %480, i64 4, 1 - %482 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %481, i64 4, 2 - %483 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %482) - store ptr %483, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 - %484 = load ptr, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 - br i1 %405, label %_llgo_129, label %_llgo_130 + %474 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @76, i64 4 }, ptr %473, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %475 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %476 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @77, i64 4 }, ptr %475, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %477 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %478 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %477, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %470, ptr %478, align 8 + %479 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %477, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %472, ptr %479, align 8 + %480 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %477, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %474, ptr %480, align 8 + %481 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %477, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %476, ptr %481, align 8 + %482 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %477, 0 + %483 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %482, i64 4, 1 + %484 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %483, i64 4, 2 + %485 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %484) + store ptr %485, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 + %486 = load ptr, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 + br i1 %407, label %_llgo_129, label %_llgo_130 _llgo_59: ; preds = %_llgo_57 - %485 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %460) - store ptr %485, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %487 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %462) + store ptr %487, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 br label %_llgo_60 _llgo_60: ; preds = %_llgo_59, %_llgo_57 - %486 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %487 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %488 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %489 = icmp eq ptr %488, null - br i1 %489, label %_llgo_61, label %_llgo_62 + %488 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %489 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) + %490 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %491 = icmp eq ptr %490, null + br i1 %491, label %_llgo_61, label %_llgo_62 _llgo_61: ; preds = %_llgo_60 - %490 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %491 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %490, 0 - %492 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %491, i64 0, 1 - %493 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %492, i64 0, 2 - %494 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %495 = getelementptr ptr, ptr %494, i64 0 - store ptr %487, ptr %495, align 8 - %496 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %494, 0 - %497 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %496, i64 1, 1 - %498 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %497, i64 1, 2 - %499 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %493, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %498, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %499) - store ptr %499, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %492 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %493 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %492, 0 + %494 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %493, i64 0, 1 + %495 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %494, i64 0, 2 + %496 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %489) + %497 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %498 = getelementptr ptr, ptr %497, i64 0 + store ptr %496, ptr %498, align 8 + %499 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %497, 0 + %500 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %499, i64 1, 1 + %501 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %500, i64 1, 2 + %502 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %495, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %501, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %502) + store ptr %502, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 br label %_llgo_62 _llgo_62: ; preds = %_llgo_61, %_llgo_60 - %500 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %501 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %500, 1 - %502 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %501, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 2 - %503 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %502, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 3 - %504 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %505 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %504, 1 - %506 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %505, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 2 - %507 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %506, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 3 - %508 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %509 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %510 = icmp eq ptr %509, null - br i1 %510, label %_llgo_63, label %_llgo_64 + %503 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %504 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %503, 1 + %505 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %504, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 2 + %506 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %505, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 3 + %507 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %508 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %507, 1 + %509 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %508, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 2 + %510 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %509, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 3 + %511 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %512 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %513 = icmp eq ptr %512, null + br i1 %513, label %_llgo_63, label %_llgo_64 _llgo_63: ; preds = %_llgo_62 - %511 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %508) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %511) - store ptr %511, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %514 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %511) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %514) + store ptr %514, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 br label %_llgo_64 _llgo_64: ; preds = %_llgo_63, %_llgo_62 - %512 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %513 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %514 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %515 = icmp eq ptr %514, null - br i1 %515, label %_llgo_65, label %_llgo_66 + %515 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %516 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %517 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %518 = icmp eq ptr %517, null + br i1 %518, label %_llgo_65, label %_llgo_66 _llgo_65: ; preds = %_llgo_64 - %516 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %517 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %516, 0 - %518 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %517, i64 0, 1 - %519 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %518, i64 0, 2 - %520 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %521 = getelementptr ptr, ptr %520, i64 0 - store ptr %513, ptr %521, align 8 - %522 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %520, 0 - %523 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %522, i64 1, 1 - %524 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %523, i64 1, 2 - %525 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %519, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %524, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %525) - store ptr %525, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %519 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %520 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %519, 0 + %521 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %520, i64 0, 1 + %522 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %521, i64 0, 2 + %523 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %516) + %524 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %525 = getelementptr ptr, ptr %524, i64 0 + store ptr %523, ptr %525, align 8 + %526 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %524, 0 + %527 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %526, i64 1, 1 + %528 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %527, i64 1, 2 + %529 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %522, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %528, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %529) + store ptr %529, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 br label %_llgo_66 _llgo_66: ; preds = %_llgo_65, %_llgo_64 - %526 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %527 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %526, 1 - %528 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %527, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 2 - %529 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %528, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 3 - %530 = load ptr, ptr @_llgo_bool, align 8 - %531 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %532 = icmp eq ptr %531, null - br i1 %532, label %_llgo_67, label %_llgo_68 + %530 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %531 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %530, 1 + %532 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %531, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 2 + %533 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %532, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 3 + %534 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %535 = icmp eq ptr %534, null + br i1 %535, label %_llgo_67, label %_llgo_68 _llgo_67: ; preds = %_llgo_66 - %533 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %534 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %533, 0 - %535 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %534, i64 0, 1 - %536 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %535, i64 0, 2 - %537 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %538 = getelementptr ptr, ptr %537, i64 0 - store ptr %530, ptr %538, align 8 - %539 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %537, 0 - %540 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %539, i64 1, 1 - %541 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %540, i64 1, 2 - %542 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %536, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %541, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %542) - store ptr %542, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %536 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %537 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %536, 0 + %538 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %537, i64 0, 1 + %539 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %538, i64 0, 2 + %540 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) + %541 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %542 = getelementptr ptr, ptr %541, i64 0 + store ptr %540, ptr %542, align 8 + %543 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %541, 0 + %544 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %543, i64 1, 1 + %545 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %544, i64 1, 2 + %546 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %539, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %545, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %546) + store ptr %546, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 br label %_llgo_68 _llgo_68: ; preds = %_llgo_67, %_llgo_66 - %543 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %544 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %543, 1 - %545 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %544, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 2 - %546 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %545, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 3 %547 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %548 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %547, 1 - %549 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %548, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 2 - %550 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %549, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 3 - %551 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) - %552 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %553 = icmp eq ptr %552, null - br i1 %553, label %_llgo_69, label %_llgo_70 + %548 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %547, 1 + %549 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %548, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 2 + %550 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %549, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 3 + %551 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %552 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %551, 1 + %553 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %552, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 2 + %554 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %553, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 3 + %555 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) + %556 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %557 = icmp eq ptr %556, null + br i1 %557, label %_llgo_69, label %_llgo_70 _llgo_69: ; preds = %_llgo_68 - store ptr %551, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + store ptr %555, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 br label %_llgo_70 _llgo_70: ; preds = %_llgo_69, %_llgo_68 - %554 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %555 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 - %556 = icmp eq ptr %555, null - br i1 %556, label %_llgo_71, label %_llgo_72 + %558 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %559 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %560 = icmp eq ptr %559, null + br i1 %560, label %_llgo_71, label %_llgo_72 _llgo_71: ; preds = %_llgo_70 - store ptr %554, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + store ptr %558, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 br label %_llgo_72 _llgo_72: ; preds = %_llgo_71, %_llgo_70 - %557 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %558 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %559 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %560 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %559, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %561 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %558) - %562 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @35, i64 4 }, ptr %561, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %563 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %564 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %563, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %560, ptr %564, align 8 - %565 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %563, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %562, ptr %565, align 8 - %566 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %563, 0 - %567 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %566, i64 2, 1 - %568 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %567, i64 2, 2 - %569 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %568) - store ptr %569, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 - %570 = load ptr, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 - br i1 %556, label %_llgo_73, label %_llgo_74 + %561 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %562 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %563 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %564 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %563, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %565 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %562) + %566 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @35, i64 4 }, ptr %565, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %567 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %568 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %567, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %564, ptr %568, align 8 + %569 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %567, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %566, ptr %569, align 8 + %570 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %567, 0 + %571 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %570, i64 2, 1 + %572 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %571, i64 2, 2 + %573 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %572) + store ptr %573, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 + %574 = load ptr, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 + br i1 %560, label %_llgo_73, label %_llgo_74 _llgo_73: ; preds = %_llgo_72 - %571 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %572 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %571, 1 - %573 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %572, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 2 - %574 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %573, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 3 - %575 = load ptr, ptr @_llgo_string, align 8 - %576 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %577 = icmp eq ptr %576, null - br i1 %577, label %_llgo_75, label %_llgo_76 + %575 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %576 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %575, 1 + %577 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %576, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 2 + %578 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %577, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 3 + %579 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %580 = icmp eq ptr %579, null + br i1 %580, label %_llgo_75, label %_llgo_76 _llgo_74: ; preds = %_llgo_76, %_llgo_72 - %578 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 - %579 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %580 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 - %581 = icmp eq ptr %580, null - br i1 %581, label %_llgo_77, label %_llgo_78 + %581 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %582 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %583 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %584 = icmp eq ptr %583, null + br i1 %584, label %_llgo_77, label %_llgo_78 _llgo_75: ; preds = %_llgo_73 - %582 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %583 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %582, 0 - %584 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %583, i64 0, 1 - %585 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %584, i64 0, 2 - %586 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %587 = getelementptr ptr, ptr %586, i64 0 - store ptr %575, ptr %587, align 8 - %588 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %586, 0 - %589 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %588, i64 1, 1 - %590 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %589, i64 1, 2 - %591 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %585, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %590, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %591) - store ptr %591, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %585 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %586 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %585, 0 + %587 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %586, i64 0, 1 + %588 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %587, i64 0, 2 + %589 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %590 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %591 = getelementptr ptr, ptr %590, i64 0 + store ptr %589, ptr %591, align 8 + %592 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %590, 0 + %593 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %592, i64 1, 1 + %594 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %593, i64 1, 2 + %595 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %588, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %594, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %595) + store ptr %595, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_76 _llgo_76: ; preds = %_llgo_75, %_llgo_73 - %592 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %593 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %592, 1 - %594 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %593, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 2 - %595 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %594, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 3 %596 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %597 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %596, 1 - %598 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %597, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 2 - %599 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %598, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 3 - %600 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) - %601 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %600, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %574, ptr %601, align 8 - %602 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %600, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %595, ptr %602, align 8 - %603 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %600, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %599, ptr %603, align 8 - %604 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %600, 0 - %605 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %604, i64 3, 1 - %606 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %605, i64 3, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %554, ptr %570, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %606) + %597 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %596, 1 + %598 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %597, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 2 + %599 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %598, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 3 + %600 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %601 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %600, 1 + %602 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %601, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 2 + %603 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %602, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 3 + %604 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %605 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %604, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %578, ptr %605, align 8 + %606 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %604, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %599, ptr %606, align 8 + %607 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %604, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %603, ptr %607, align 8 + %608 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %604, 0 + %609 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %608, i64 3, 1 + %610 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %609, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %558, ptr %574, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %610) br label %_llgo_74 _llgo_77: ; preds = %_llgo_74 - %607 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %579) - store ptr %607, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %611 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %582) + store ptr %611, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 br label %_llgo_78 _llgo_78: ; preds = %_llgo_77, %_llgo_74 - %608 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 - %609 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %610 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %611 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %609, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %612 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %613 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %612, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %614 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %610) - %615 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr %614, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %616 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) - %617 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %616, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %611, ptr %617, align 8 - %618 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %616, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %613, ptr %618, align 8 - %619 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %616, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %615, ptr %619, align 8 - %620 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %616, 0 - %621 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %620, i64 3, 1 - %622 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %621, i64 3, 2 - %623 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %622) - store ptr %623, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 - %624 = load ptr, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 - br i1 %553, label %_llgo_79, label %_llgo_80 + %612 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %613 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %614 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %615 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %613, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %616 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %617 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %616, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %618 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %614) + %619 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr %618, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %620 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %621 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %620, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %615, ptr %621, align 8 + %622 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %620, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %617, ptr %622, align 8 + %623 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %620, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %619, ptr %623, align 8 + %624 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %620, 0 + %625 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %624, i64 3, 1 + %626 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %625, i64 3, 2 + %627 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %626) + store ptr %627, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 + %628 = load ptr, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 + br i1 %557, label %_llgo_79, label %_llgo_80 _llgo_79: ; preds = %_llgo_78 - %625 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %626 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %625, 1 - %627 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %626, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 2 - %628 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %627, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 3 - %629 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 - %630 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 - %631 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %630, 1 - %632 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %631, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 2 - %633 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %632, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 3 - %634 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %635 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %634, 1 - %636 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %635, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 2 - %637 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %636, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 3 - %638 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %639 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %640 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %639, 1 - %641 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %640, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 2 - %642 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %641, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 3 - %643 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %644 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %645 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %644, 1 - %646 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %645, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 2 - %647 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %646, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 3 - %648 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %649 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %650 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %649, 1 - %651 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %650, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 2 - %652 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %651, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 3 - %653 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %654 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %653, 1 - %655 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %654, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 2 - %656 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %655, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 3 - %657 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %658 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %659 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %658, 1 - %660 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %659, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 2 - %661 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %660, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 3 - %662 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %663 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %662, 1 - %664 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %663, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 2 - %665 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %664, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 3 + %629 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %630 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %629, 1 + %631 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %630, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 2 + %632 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %631, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 3 + %633 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %634 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %635 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %634, 1 + %636 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %635, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 2 + %637 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %636, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 3 + %638 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %639 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %638, 1 + %640 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %639, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 2 + %641 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %640, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 3 + %642 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %643 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %644 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %643, 1 + %645 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %644, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 2 + %646 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %645, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 3 + %647 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %648 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %649 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %648, 1 + %650 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %649, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 2 + %651 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %650, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 3 + %652 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %653 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %654 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %653, 1 + %655 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %654, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 2 + %656 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %655, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 3 + %657 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %658 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %657, 1 + %659 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %658, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 2 + %660 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %659, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 3 + %661 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %662 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %663 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %662, 1 + %664 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %663, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 2 + %665 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %664, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 3 %666 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %667 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %666, 1 - %668 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %667, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 2 - %669 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %668, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 3 - %670 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) - %671 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %672 = icmp eq ptr %671, null - br i1 %672, label %_llgo_81, label %_llgo_82 + %667 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %666, 1 + %668 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %667, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 2 + %669 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %668, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 3 + %670 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %671 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %670, 1 + %672 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %671, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 2 + %673 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %672, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 3 + %674 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) + %675 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %676 = icmp eq ptr %675, null + br i1 %676, label %_llgo_81, label %_llgo_82 _llgo_80: ; preds = %_llgo_100, %_llgo_78 - %673 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %674 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %675 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %676 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %675, 1 - %677 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %676, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 2 - %678 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %677, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 3 - %679 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %680 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %679, 1 - %681 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %680, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 2 - %682 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %681, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 3 + %677 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %678 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %679 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %680 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %679, 1 + %681 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %680, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 2 + %682 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %681, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 3 %683 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %684 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %683, 1 - %685 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %684, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 2 - %686 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %685, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 3 - %687 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %688 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %689 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %688, 1 - %690 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %689, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 2 - %691 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %690, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 3 - %692 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %693 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %692, 1 - %694 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %693, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 2 - %695 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %694, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 3 - %696 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %697 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %696, 1 - %698 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %697, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 2 - %699 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %698, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 3 - %700 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %701 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %702 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %701, 1 - %703 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %702, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 2 - %704 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %703, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 3 - %705 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %706 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %705, 1 - %707 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %706, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 2 - %708 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %707, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 3 - %709 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %710 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %709, 1 - %711 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %710, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 2 - %712 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %711, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 3 - %713 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %714 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %713, 1 - %715 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %714, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 2 - %716 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %715, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 3 - %717 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %718 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %717, 1 - %719 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %718, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 2 - %720 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %719, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 3 - %721 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %722 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %723 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %722, 1 - %724 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %723, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 2 - %725 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %724, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 3 - %726 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %727 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %726, 1 - %728 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %727, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 2 - %729 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %728, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 3 - %730 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %731 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @74, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %730, 1 - %732 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %731, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 2 - %733 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %732, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 3 - %734 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 960) - %735 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %440, ptr %735, align 8 - %736 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %445, ptr %736, align 8 - %737 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %449, ptr %737, align 8 - %738 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %454, ptr %738, align 8 - %739 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %459, ptr %739, align 8 - %740 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %503, ptr %740, align 8 - %741 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %507, ptr %741, align 8 - %742 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %529, ptr %742, align 8 - %743 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %546, ptr %743, align 8 - %744 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %550, ptr %744, align 8 - %745 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 10 - store %"github.com/goplus/llgo/runtime/abi.Method" %678, ptr %745, align 8 - %746 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 11 - store %"github.com/goplus/llgo/runtime/abi.Method" %682, ptr %746, align 8 - %747 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 12 - store %"github.com/goplus/llgo/runtime/abi.Method" %686, ptr %747, align 8 - %748 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 13 - store %"github.com/goplus/llgo/runtime/abi.Method" %691, ptr %748, align 8 - %749 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 14 - store %"github.com/goplus/llgo/runtime/abi.Method" %695, ptr %749, align 8 - %750 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 15 - store %"github.com/goplus/llgo/runtime/abi.Method" %699, ptr %750, align 8 - %751 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 16 - store %"github.com/goplus/llgo/runtime/abi.Method" %704, ptr %751, align 8 - %752 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 17 - store %"github.com/goplus/llgo/runtime/abi.Method" %708, ptr %752, align 8 - %753 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 18 - store %"github.com/goplus/llgo/runtime/abi.Method" %712, ptr %753, align 8 - %754 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 19 - store %"github.com/goplus/llgo/runtime/abi.Method" %716, ptr %754, align 8 - %755 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 20 - store %"github.com/goplus/llgo/runtime/abi.Method" %720, ptr %755, align 8 - %756 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 21 - store %"github.com/goplus/llgo/runtime/abi.Method" %725, ptr %756, align 8 - %757 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 22 - store %"github.com/goplus/llgo/runtime/abi.Method" %729, ptr %757, align 8 - %758 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %734, i64 23 - store %"github.com/goplus/llgo/runtime/abi.Method" %733, ptr %758, align 8 - %759 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %734, 0 - %760 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %759, i64 24, 1 - %761 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %760, i64 24, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %406, ptr %436, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %761) + %684 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %683, 1 + %685 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %684, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 2 + %686 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %685, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 3 + %687 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %688 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %687, 1 + %689 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %688, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 2 + %690 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %689, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 3 + %691 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %692 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %693 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %692, 1 + %694 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %693, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 2 + %695 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %694, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 3 + %696 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %697 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %696, 1 + %698 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %697, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 2 + %699 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %698, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 3 + %700 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %701 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %700, 1 + %702 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %701, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 2 + %703 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %702, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 3 + %704 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %705 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %706 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %705, 1 + %707 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %706, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 2 + %708 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %707, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 3 + %709 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %710 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %709, 1 + %711 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %710, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 2 + %712 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %711, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 3 + %713 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %714 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %713, 1 + %715 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %714, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 2 + %716 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %715, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 3 + %717 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %718 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %717, 1 + %719 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %718, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 2 + %720 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %719, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 3 + %721 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %722 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %721, 1 + %723 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %722, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 2 + %724 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %723, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 3 + %725 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %726 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %727 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %726, 1 + %728 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %727, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 2 + %729 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %728, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 3 + %730 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %731 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %730, 1 + %732 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %731, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 2 + %733 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %732, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 3 + %734 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %735 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @74, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %734, 1 + %736 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %735, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 2 + %737 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %736, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 3 + %738 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 960) + %739 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %442, ptr %739, align 8 + %740 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %447, ptr %740, align 8 + %741 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %451, ptr %741, align 8 + %742 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %456, ptr %742, align 8 + %743 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %461, ptr %743, align 8 + %744 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %506, ptr %744, align 8 + %745 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %510, ptr %745, align 8 + %746 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %533, ptr %746, align 8 + %747 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %550, ptr %747, align 8 + %748 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %554, ptr %748, align 8 + %749 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %682, ptr %749, align 8 + %750 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %686, ptr %750, align 8 + %751 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %690, ptr %751, align 8 + %752 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %695, ptr %752, align 8 + %753 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %699, ptr %753, align 8 + %754 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %703, ptr %754, align 8 + %755 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %708, ptr %755, align 8 + %756 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %712, ptr %756, align 8 + %757 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %716, ptr %757, align 8 + %758 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %720, ptr %758, align 8 + %759 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %724, ptr %759, align 8 + %760 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %729, ptr %760, align 8 + %761 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %733, ptr %761, align 8 + %762 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %738, i64 23 + store %"github.com/goplus/llgo/runtime/abi.Method" %737, ptr %762, align 8 + %763 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %738, 0 + %764 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %763, i64 24, 1 + %765 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %764, i64 24, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %408, ptr %438, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %765) br label %_llgo_58 _llgo_81: ; preds = %_llgo_79 - %762 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %670) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %762) - store ptr %762, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %766 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %674) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %766) + store ptr %766, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 br label %_llgo_82 _llgo_82: ; preds = %_llgo_81, %_llgo_79 - %763 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %764 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %765 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %766 = icmp eq ptr %765, null - br i1 %766, label %_llgo_83, label %_llgo_84 + %767 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %768 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) + %769 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %770 = icmp eq ptr %769, null + br i1 %770, label %_llgo_83, label %_llgo_84 _llgo_83: ; preds = %_llgo_82 - %767 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %768 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %767, 0 - %769 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %768, i64 0, 1 - %770 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %769, i64 0, 2 - %771 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %772 = getelementptr ptr, ptr %771, i64 0 - store ptr %764, ptr %772, align 8 - %773 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %771, 0 - %774 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %773, i64 1, 1 - %775 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %774, i64 1, 2 - %776 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %770, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %775, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %776) - store ptr %776, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %771 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %772 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %771, 0 + %773 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %772, i64 0, 1 + %774 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %773, i64 0, 2 + %775 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %768) + %776 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %777 = getelementptr ptr, ptr %776, i64 0 + store ptr %775, ptr %777, align 8 + %778 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %776, 0 + %779 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %778, i64 1, 1 + %780 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %779, i64 1, 2 + %781 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %774, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %780, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %781) + store ptr %781, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 br label %_llgo_84 _llgo_84: ; preds = %_llgo_83, %_llgo_82 - %777 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %778 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %777, 1 - %779 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %778, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 2 - %780 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %779, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 3 - %781 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %782 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %781, 1 - %783 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %782, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 2 - %784 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %783, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 3 - %785 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %786 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %785, 1 - %787 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %786, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 2 - %788 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %787, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 3 - %789 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %790 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %791 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %790, 1 - %792 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %791, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 2 - %793 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %792, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 3 - %794 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, i64 7, i64 8, i64 1, i64 1) - %795 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 - %796 = icmp eq ptr %795, null - br i1 %796, label %_llgo_85, label %_llgo_86 + %782 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %783 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %782, 1 + %784 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %783, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 2 + %785 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %784, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 3 + %786 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %787 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %786, 1 + %788 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %787, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 2 + %789 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %788, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 3 + %790 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %791 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %790, 1 + %792 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %791, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 2 + %793 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %792, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 3 + %794 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %795 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %796 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %795, 1 + %797 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %796, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 2 + %798 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %797, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 3 + %799 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, i64 7, i64 8, i64 1, i64 1) + %800 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + %801 = icmp eq ptr %800, null + br i1 %801, label %_llgo_85, label %_llgo_86 _llgo_85: ; preds = %_llgo_84 - store ptr %794, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + store ptr %799, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 br label %_llgo_86 _llgo_86: ; preds = %_llgo_85, %_llgo_84 - %797 = load ptr, ptr @_llgo_uint, align 8 - %798 = icmp eq ptr %797, null - br i1 %798, label %_llgo_87, label %_llgo_88 + %802 = load ptr, ptr @_llgo_uint, align 8 + %803 = icmp eq ptr %802, null + br i1 %803, label %_llgo_87, label %_llgo_88 _llgo_87: ; preds = %_llgo_86 - %799 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 39) - store ptr %799, ptr @_llgo_uint, align 8 + %804 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 39) + store ptr %804, ptr @_llgo_uint, align 8 br label %_llgo_88 _llgo_88: ; preds = %_llgo_87, %_llgo_86 - %800 = load ptr, ptr @_llgo_uint, align 8 - br i1 %796, label %_llgo_89, label %_llgo_90 + %805 = load ptr, ptr @_llgo_uint, align 8 + br i1 %801, label %_llgo_89, label %_llgo_90 _llgo_89: ; preds = %_llgo_88 - %801 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %802 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %801, 1 - %803 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %802, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 - %804 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %803, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 3 - %805 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %801, 1 - %806 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %805, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 - %807 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %806, ptr @"github.com/goplus/llgo/runtime/abi.Kind.String", 3 - %808 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %809 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %808, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %807, ptr %809, align 8 - %810 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %808, 0 - %811 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %810, i64 1, 1 - %812 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %811, i64 1, 2 + %806 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %807 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %806, 1 + %808 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %807, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 + %809 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %808, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 3 + %810 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %806, 1 + %811 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %810, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 + %812 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %811, ptr @"github.com/goplus/llgo/runtime/abi.Kind.String", 3 %813 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) %814 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %813, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %804, ptr %814, align 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %812, ptr %814, align 8 %815 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %813, 0 %816 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %815, i64 1, 1 %817 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %816, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %794, ptr %800, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %812, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %817) + %818 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %819 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %818, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %809, ptr %819, align 8 + %820 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %818, 0 + %821 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %820, i64 1, 1 + %822 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %821, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %799, ptr %805, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %817, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %822) br label %_llgo_90 _llgo_90: ; preds = %_llgo_89, %_llgo_88 - %818 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 - %819 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 - %820 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %821 = icmp eq ptr %820, null - br i1 %821, label %_llgo_91, label %_llgo_92 + %823 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + %824 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, i64 7, i64 8, i64 1, i64 1) + %825 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %826 = icmp eq ptr %825, null + br i1 %826, label %_llgo_91, label %_llgo_92 _llgo_91: ; preds = %_llgo_90 - %822 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %823 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %822, 0 - %824 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %823, i64 0, 1 - %825 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %824, i64 0, 2 - %826 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %827 = getelementptr ptr, ptr %826, i64 0 - store ptr %819, ptr %827, align 8 - %828 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %826, 0 - %829 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %828, i64 1, 1 - %830 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %829, i64 1, 2 - %831 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %825, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %830, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %831) - store ptr %831, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %827 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %828 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %827, 0 + %829 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %828, i64 0, 1 + %830 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %829, i64 0, 2 + %831 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %832 = getelementptr ptr, ptr %831, i64 0 + store ptr %824, ptr %832, align 8 + %833 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %831, 0 + %834 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %833, i64 1, 1 + %835 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %834, i64 1, 2 + %836 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %830, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %835, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %836) + store ptr %836, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 br label %_llgo_92 _llgo_92: ; preds = %_llgo_91, %_llgo_90 - %832 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %833 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %832, 1 - %834 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %833, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 2 - %835 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %834, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 3 - %836 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %837 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %836, 1 - %838 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %837, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 2 - %839 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %838, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 3 - %840 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) - %841 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %842 = icmp eq ptr %841, null - br i1 %842, label %_llgo_93, label %_llgo_94 + %837 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %838 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %837, 1 + %839 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %838, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 2 + %840 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %839, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 3 + %841 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %842 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %841, 1 + %843 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %842, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 2 + %844 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %843, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 3 + %845 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) + %846 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %847 = icmp eq ptr %846, null + br i1 %847, label %_llgo_93, label %_llgo_94 _llgo_93: ; preds = %_llgo_92 - store ptr %840, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + store ptr %845, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 br label %_llgo_94 _llgo_94: ; preds = %_llgo_93, %_llgo_92 - %843 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %844 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %845 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %846 = load ptr, ptr @_llgo_Pointer, align 8 - %847 = load ptr, ptr @_llgo_uintptr, align 8 - %848 = load ptr, ptr @_llgo_uintptr, align 8 - %849 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 - %850 = icmp eq ptr %849, null - br i1 %850, label %_llgo_95, label %_llgo_96 + %848 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %849 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %850 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %851 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + %852 = icmp eq ptr %851, null + br i1 %852, label %_llgo_95, label %_llgo_96 _llgo_95: ; preds = %_llgo_94 - %851 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %852 = getelementptr ptr, ptr %851, i64 0 - store ptr %846, ptr %852, align 8 - %853 = getelementptr ptr, ptr %851, i64 1 - store ptr %847, ptr %853, align 8 - %854 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %851, 0 - %855 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %854, i64 2, 1 - %856 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %855, i64 2, 2 - %857 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %858 = getelementptr ptr, ptr %857, i64 0 - store ptr %848, ptr %858, align 8 - %859 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %857, 0 - %860 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %859, i64 1, 1 - %861 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %860, i64 1, 2 - %862 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %856, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %861, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %862) - store ptr %862, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + %853 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %854 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %855 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %856 = getelementptr ptr, ptr %855, i64 0 + store ptr %853, ptr %856, align 8 + %857 = getelementptr ptr, ptr %855, i64 1 + store ptr %854, ptr %857, align 8 + %858 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %855, 0 + %859 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %858, i64 2, 1 + %860 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %859, i64 2, 2 + %861 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %862 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %863 = getelementptr ptr, ptr %862, i64 0 + store ptr %861, ptr %863, align 8 + %864 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %862, 0 + %865 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %864, i64 1, 1 + %866 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %865, i64 1, 2 + %867 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %860, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %866, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %867) + store ptr %867, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 br label %_llgo_96 _llgo_96: ; preds = %_llgo_95, %_llgo_94 - %863 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 - %864 = load ptr, ptr @_llgo_Pointer, align 8 - %865 = load ptr, ptr @_llgo_uintptr, align 8 - %866 = load ptr, ptr @_llgo_uintptr, align 8 - %867 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %868 = getelementptr ptr, ptr %867, i64 0 - store ptr %864, ptr %868, align 8 - %869 = getelementptr ptr, ptr %867, i64 1 - store ptr %865, ptr %869, align 8 - %870 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %867, 0 - %871 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %870, i64 2, 1 - %872 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %871, i64 2, 2 - %873 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %874 = getelementptr ptr, ptr %873, i64 0 - store ptr %866, ptr %874, align 8 - %875 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %873, 0 - %876 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %875, i64 1, 1 - %877 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %876, i64 1, 2 - %878 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %872, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %877, i1 false) - %879 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %878, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %880 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %881 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %880, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %882 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %883 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %882, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %879, ptr %883, align 8 - %884 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %882, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %881, ptr %884, align 8 - %885 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %882, 0 - %886 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %885, i64 2, 1 - %887 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %886, i64 2, 2 - %888 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %887) - store ptr %888, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 - %889 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 - %890 = load ptr, ptr @_llgo_uint16, align 8 - %891 = icmp eq ptr %890, null - br i1 %891, label %_llgo_97, label %_llgo_98 + %868 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + %869 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %870 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %871 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %872 = getelementptr ptr, ptr %871, i64 0 + store ptr %869, ptr %872, align 8 + %873 = getelementptr ptr, ptr %871, i64 1 + store ptr %870, ptr %873, align 8 + %874 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %871, 0 + %875 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %874, i64 2, 1 + %876 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %875, i64 2, 2 + %877 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %878 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %879 = getelementptr ptr, ptr %878, i64 0 + store ptr %877, ptr %879, align 8 + %880 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %878, 0 + %881 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %880, i64 1, 1 + %882 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %881, i64 1, 2 + %883 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %876, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %882, i1 false) + %884 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %883, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %885 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %886 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %885, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %887 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %888 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %887, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %884, ptr %888, align 8 + %889 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %887, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %886, ptr %889, align 8 + %890 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %887, 0 + %891 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %890, i64 2, 1 + %892 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %891, i64 2, 2 + %893 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %892) + store ptr %893, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 + %894 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 + %895 = load ptr, ptr @_llgo_uint16, align 8 + %896 = icmp eq ptr %895, null + br i1 %896, label %_llgo_97, label %_llgo_98 _llgo_97: ; preds = %_llgo_96 - %892 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) - store ptr %892, ptr @_llgo_uint16, align 8 + %897 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + store ptr %897, ptr @_llgo_uint16, align 8 br label %_llgo_98 _llgo_98: ; preds = %_llgo_97, %_llgo_96 - %893 = load ptr, ptr @_llgo_uint16, align 8 - %894 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %895 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %896 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %897 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %898 = load ptr, ptr @_llgo_Pointer, align 8 - %899 = load ptr, ptr @_llgo_uintptr, align 8 - %900 = load ptr, ptr @_llgo_uintptr, align 8 - %901 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %894, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %902 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %895) - %903 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr %902, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %904 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %896) - %905 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %904, i64 80, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %906 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %897) - %907 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @47, i64 6 }, ptr %906, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %908 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %909 = getelementptr ptr, ptr %908, i64 0 - store ptr %898, ptr %909, align 8 - %910 = getelementptr ptr, ptr %908, i64 1 - store ptr %899, ptr %910, align 8 - %911 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %908, 0 - %912 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %911, i64 2, 1 - %913 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %912, i64 2, 2 - %914 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %915 = getelementptr ptr, ptr %914, i64 0 - store ptr %900, ptr %915, align 8 - %916 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %914, 0 - %917 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %916, i64 1, 1 - %918 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %917, i64 1, 2 - %919 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %913, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %918, i1 false) - %920 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %919, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %921 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %922 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %921, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %923 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %924 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %923, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %920, ptr %924, align 8 - %925 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %923, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %922, ptr %925, align 8 - %926 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %923, 0 - %927 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %926, i64 2, 1 - %928 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %927, i64 2, 2 - %929 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %928) - %930 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @48, i64 6 }, ptr %929, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %931 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %932 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @49, i64 7 }, ptr %931, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %933 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) - %934 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @50, i64 9 }, ptr %933, i64 113, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %935 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) - %936 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @51, i64 10 }, ptr %935, i64 114, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %937 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) - %938 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @52, i64 5 }, ptr %937, i64 116, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %939 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 504) - %940 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %901, ptr %940, align 8 - %941 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %903, ptr %941, align 8 - %942 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %905, ptr %942, align 8 - %943 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %907, ptr %943, align 8 - %944 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 4 - store %"github.com/goplus/llgo/runtime/abi.StructField" %930, ptr %944, align 8 - %945 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 5 - store %"github.com/goplus/llgo/runtime/abi.StructField" %932, ptr %945, align 8 - %946 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 6 - store %"github.com/goplus/llgo/runtime/abi.StructField" %934, ptr %946, align 8 - %947 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 7 - store %"github.com/goplus/llgo/runtime/abi.StructField" %936, ptr %947, align 8 - %948 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %939, i64 8 - store %"github.com/goplus/llgo/runtime/abi.StructField" %938, ptr %948, align 8 - %949 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %939, 0 - %950 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %949, i64 9, 1 - %951 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %950, i64 9, 2 - %952 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %951) - store ptr %952, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$n4NzqKLyUqVG56Dssj_HUGGlIsYMa-aWjSGsMOvBAF8", align 8 - %953 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$n4NzqKLyUqVG56Dssj_HUGGlIsYMa-aWjSGsMOvBAF8", align 8 - br i1 %842, label %_llgo_99, label %_llgo_100 + %898 = load ptr, ptr @_llgo_uint16, align 8 + %899 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %900 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %901 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %902 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %903 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %899, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %904 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %900) + %905 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr %904, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %906 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %901) + %907 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %906, i64 80, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %908 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %902) + %909 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @47, i64 6 }, ptr %908, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %910 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %911 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %912 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %913 = getelementptr ptr, ptr %912, i64 0 + store ptr %910, ptr %913, align 8 + %914 = getelementptr ptr, ptr %912, i64 1 + store ptr %911, ptr %914, align 8 + %915 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %912, 0 + %916 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %915, i64 2, 1 + %917 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %916, i64 2, 2 + %918 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %919 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %920 = getelementptr ptr, ptr %919, i64 0 + store ptr %918, ptr %920, align 8 + %921 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %919, 0 + %922 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %921, i64 1, 1 + %923 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %922, i64 1, 2 + %924 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %917, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %923, i1 false) + %925 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %924, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %926 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %927 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %926, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %928 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %929 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %928, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %925, ptr %929, align 8 + %930 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %928, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %927, ptr %930, align 8 + %931 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %928, 0 + %932 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %931, i64 2, 1 + %933 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %932, i64 2, 2 + %934 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %933) + %935 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @48, i64 6 }, ptr %934, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %936 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %937 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @49, i64 7 }, ptr %936, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %938 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %939 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @50, i64 9 }, ptr %938, i64 113, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %940 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %941 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @51, i64 10 }, ptr %940, i64 114, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %942 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %943 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @52, i64 5 }, ptr %942, i64 116, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %944 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 504) + %945 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %903, ptr %945, align 8 + %946 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %905, ptr %946, align 8 + %947 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %907, ptr %947, align 8 + %948 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %909, ptr %948, align 8 + %949 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %935, ptr %949, align 8 + %950 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 5 + store %"github.com/goplus/llgo/runtime/abi.StructField" %937, ptr %950, align 8 + %951 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 6 + store %"github.com/goplus/llgo/runtime/abi.StructField" %939, ptr %951, align 8 + %952 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 7 + store %"github.com/goplus/llgo/runtime/abi.StructField" %941, ptr %952, align 8 + %953 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %944, i64 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %943, ptr %953, align 8 + %954 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %944, 0 + %955 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %954, i64 9, 1 + %956 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %955, i64 9, 2 + %957 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %956) + store ptr %957, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$n4NzqKLyUqVG56Dssj_HUGGlIsYMa-aWjSGsMOvBAF8", align 8 + %958 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$n4NzqKLyUqVG56Dssj_HUGGlIsYMa-aWjSGsMOvBAF8", align 8 + br i1 %847, label %_llgo_99, label %_llgo_100 _llgo_99: ; preds = %_llgo_98 - %954 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %955 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %954, 1 - %956 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %955, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 2 - %957 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %956, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 3 - %958 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 - %959 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 - %960 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %959, 1 - %961 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %960, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 2 - %962 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %961, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 3 - %963 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %964 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %963, 1 - %965 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %964, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 2 - %966 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %965, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 3 - %967 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %968 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %969 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %968, 1 - %970 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %969, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 2 - %971 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %970, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 3 - %972 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %973 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %974 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %973, 1 - %975 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %974, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 2 - %976 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %975, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 3 - %977 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %978 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %977, 1 - %979 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %978, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 2 - %980 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %979, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 3 - %981 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %982 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %983 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %982, 1 - %984 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %983, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 2 - %985 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %984, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 3 - %986 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %987 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %986, 1 - %988 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %987, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 2 - %989 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %988, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 3 - %990 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %991 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @53, i64 14 }, ptr undef, ptr undef, ptr undef }, ptr %990, 1 - %992 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %991, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 2 - %993 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %992, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 3 - %994 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %995 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %994, 1 - %996 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %995, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 2 - %997 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %996, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 3 - %998 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %999 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @54, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %998, 1 - %1000 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %999, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 2 - %1001 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1000, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 3 - %1002 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1003 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @55, i64 11 }, ptr undef, ptr undef, ptr undef }, ptr %1002, 1 - %1004 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1003, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 2 - %1005 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1004, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 3 - %1006 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %1007 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %1008 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1007, 1 - %1009 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1008, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 2 - %1010 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1009, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 3 - %1011 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1012 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1011, 1 - %1013 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1012, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 2 - %1014 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1013, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 3 - %1015 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1016 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1015, 1 - %1017 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1016, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 2 - %1018 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1017, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 3 - %1019 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %1020 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1019, 1 - %1021 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1020, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 2 - %1022 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1021, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 3 - %1023 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1024 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1023, 1 - %1025 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1024, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 2 - %1026 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1025, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 3 - %1027 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) - %1028 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1029 = icmp eq ptr %1028, null - br i1 %1029, label %_llgo_101, label %_llgo_102 + %959 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %960 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %959, 1 + %961 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %960, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 2 + %962 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %961, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 3 + %963 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %964 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %965 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %964, 1 + %966 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %965, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 2 + %967 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %966, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 3 + %968 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %969 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %968, 1 + %970 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %969, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 2 + %971 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %970, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 3 + %972 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %973 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %974 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %973, 1 + %975 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %974, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 2 + %976 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %975, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 3 + %977 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %978 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %979 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %978, 1 + %980 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %979, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 2 + %981 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %980, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 3 + %982 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %983 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %982, 1 + %984 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %983, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 2 + %985 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %984, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 3 + %986 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %987 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %988 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %987, 1 + %989 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %988, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 2 + %990 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %989, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 3 + %991 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %992 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %991, 1 + %993 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %992, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 2 + %994 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %993, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 3 + %995 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %996 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @53, i64 14 }, ptr undef, ptr undef, ptr undef }, ptr %995, 1 + %997 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %996, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 2 + %998 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %997, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 3 + %999 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1000 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %999, 1 + %1001 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1000, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 2 + %1002 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1001, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 3 + %1003 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1004 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @54, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %1003, 1 + %1005 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1004, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 2 + %1006 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1005, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 3 + %1007 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1008 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @55, i64 11 }, ptr undef, ptr undef, ptr undef }, ptr %1007, 1 + %1009 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1008, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 2 + %1010 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1009, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 3 + %1011 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1012 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1013 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1012, 1 + %1014 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1013, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 2 + %1015 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1014, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 3 + %1016 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1017 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1016, 1 + %1018 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1017, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 2 + %1019 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1018, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 3 + %1020 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1021 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1020, 1 + %1022 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1021, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 2 + %1023 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1022, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 3 + %1024 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1025 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1024, 1 + %1026 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1025, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 2 + %1027 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1026, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 3 + %1028 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1029 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1028, 1 + %1030 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1029, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 2 + %1031 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1030, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 3 + %1032 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) + %1033 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1034 = icmp eq ptr %1033, null + br i1 %1034, label %_llgo_101, label %_llgo_102 _llgo_100: ; preds = %_llgo_116, %_llgo_98 - %1030 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1031 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1032 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %1033 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1032, 1 - %1034 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1033, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 2 - %1035 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1034, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 3 - %1036 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1037 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1036, 1 - %1038 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1037, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 2 - %1039 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1038, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 3 - %1040 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1041 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1040, 1 - %1042 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1041, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 2 - %1043 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1042, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 3 - %1044 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1045 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1044, 1 - %1046 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1045, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 2 - %1047 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1046, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 3 - %1048 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1049 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1048, 1 - %1050 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1049, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 2 - %1051 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1050, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 3 - %1052 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1053 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %1054 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1053, 1 - %1055 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1054, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 2 - %1056 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1055, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 3 - %1057 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %1058 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1057, 1 - %1059 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1058, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 2 - %1060 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1059, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 3 - %1061 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) - %1062 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %628, ptr %1062, align 8 - %1063 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %633, ptr %1063, align 8 - %1064 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %637, ptr %1064, align 8 - %1065 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %642, ptr %1065, align 8 - %1066 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %647, ptr %1066, align 8 - %1067 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %652, ptr %1067, align 8 - %1068 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %656, ptr %1068, align 8 - %1069 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %661, ptr %1069, align 8 - %1070 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %665, ptr %1070, align 8 - %1071 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %669, ptr %1071, align 8 - %1072 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 10 - store %"github.com/goplus/llgo/runtime/abi.Method" %780, ptr %1072, align 8 - %1073 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 11 - store %"github.com/goplus/llgo/runtime/abi.Method" %784, ptr %1073, align 8 - %1074 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 12 - store %"github.com/goplus/llgo/runtime/abi.Method" %788, ptr %1074, align 8 - %1075 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 13 - store %"github.com/goplus/llgo/runtime/abi.Method" %793, ptr %1075, align 8 - %1076 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 14 - store %"github.com/goplus/llgo/runtime/abi.Method" %835, ptr %1076, align 8 - %1077 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 15 - store %"github.com/goplus/llgo/runtime/abi.Method" %839, ptr %1077, align 8 - %1078 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 16 - store %"github.com/goplus/llgo/runtime/abi.Method" %1035, ptr %1078, align 8 - %1079 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 17 - store %"github.com/goplus/llgo/runtime/abi.Method" %1039, ptr %1079, align 8 - %1080 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 18 - store %"github.com/goplus/llgo/runtime/abi.Method" %1043, ptr %1080, align 8 - %1081 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 19 - store %"github.com/goplus/llgo/runtime/abi.Method" %1047, ptr %1081, align 8 - %1082 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 20 - store %"github.com/goplus/llgo/runtime/abi.Method" %1051, ptr %1082, align 8 - %1083 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 21 - store %"github.com/goplus/llgo/runtime/abi.Method" %1056, ptr %1083, align 8 - %1084 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1061, i64 22 - store %"github.com/goplus/llgo/runtime/abi.Method" %1060, ptr %1084, align 8 - %1085 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1061, 0 - %1086 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1085, i64 23, 1 - %1087 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1086, i64 23, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %551, ptr %624, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1087) + %1035 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1036 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1037 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1038 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1037, 1 + %1039 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1038, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 2 + %1040 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1039, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 3 + %1041 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1042 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1041, 1 + %1043 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1042, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 2 + %1044 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1043, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 3 + %1045 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1046 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1045, 1 + %1047 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1046, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 2 + %1048 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1047, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 3 + %1049 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1050 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1049, 1 + %1051 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1050, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 2 + %1052 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1051, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 3 + %1053 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1054 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1053, 1 + %1055 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1054, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 2 + %1056 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1055, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 3 + %1057 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1058 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1059 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1058, 1 + %1060 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1059, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 2 + %1061 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1060, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 3 + %1062 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1063 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1062, 1 + %1064 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1063, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 2 + %1065 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1064, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 3 + %1066 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) + %1067 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %632, ptr %1067, align 8 + %1068 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %637, ptr %1068, align 8 + %1069 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %641, ptr %1069, align 8 + %1070 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %646, ptr %1070, align 8 + %1071 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %651, ptr %1071, align 8 + %1072 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %656, ptr %1072, align 8 + %1073 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %660, ptr %1073, align 8 + %1074 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %665, ptr %1074, align 8 + %1075 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %669, ptr %1075, align 8 + %1076 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %673, ptr %1076, align 8 + %1077 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %785, ptr %1077, align 8 + %1078 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %789, ptr %1078, align 8 + %1079 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %793, ptr %1079, align 8 + %1080 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %798, ptr %1080, align 8 + %1081 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %840, ptr %1081, align 8 + %1082 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %844, ptr %1082, align 8 + %1083 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1040, ptr %1083, align 8 + %1084 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1044, ptr %1084, align 8 + %1085 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1048, ptr %1085, align 8 + %1086 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1052, ptr %1086, align 8 + %1087 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1056, ptr %1087, align 8 + %1088 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1061, ptr %1088, align 8 + %1089 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1066, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1065, ptr %1089, align 8 + %1090 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1066, 0 + %1091 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1090, i64 23, 1 + %1092 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1091, i64 23, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %555, ptr %628, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1092) br label %_llgo_80 _llgo_101: ; preds = %_llgo_99 - %1088 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1027) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1088) - store ptr %1088, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1093 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1032) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1093) + store ptr %1093, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 br label %_llgo_102 _llgo_102: ; preds = %_llgo_101, %_llgo_99 - %1089 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1090 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1091 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %1092 = icmp eq ptr %1091, null - br i1 %1092, label %_llgo_103, label %_llgo_104 + %1094 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1095 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) + %1096 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1097 = icmp eq ptr %1096, null + br i1 %1097, label %_llgo_103, label %_llgo_104 _llgo_103: ; preds = %_llgo_102 - %1093 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %1094 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1093, 0 - %1095 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1094, i64 0, 1 - %1096 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1095, i64 0, 2 - %1097 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %1098 = getelementptr ptr, ptr %1097, i64 0 - store ptr %1090, ptr %1098, align 8 - %1099 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1097, 0 - %1100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1099, i64 1, 1 - %1101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1100, i64 1, 2 - %1102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1096, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1101, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1102) - store ptr %1102, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1098 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1099 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1098, 0 + %1100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1099, i64 0, 1 + %1101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1100, i64 0, 2 + %1102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1095) + %1103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1104 = getelementptr ptr, ptr %1103, i64 0 + store ptr %1102, ptr %1104, align 8 + %1105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1103, 0 + %1106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1105, i64 1, 1 + %1107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1106, i64 1, 2 + %1108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1101, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1107, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1108) + store ptr %1108, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 br label %_llgo_104 _llgo_104: ; preds = %_llgo_103, %_llgo_102 - %1103 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %1104 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1103, 1 - %1105 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1104, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 2 - %1106 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1105, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 3 - %1107 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1108 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @56, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1107, 1 - %1109 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1108, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 2 - %1110 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1109, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 3 - %1111 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1112 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1111, 1 - %1113 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1112, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 2 - %1114 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1113, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 3 - %1115 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1115, 1 - %1117 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1116, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 2 - %1118 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1117, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 3 - %1119 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1120 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @59, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %1119, 1 - %1121 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1120, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 2 - %1122 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1121, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 3 - %1123 = load ptr, ptr @_llgo_uintptr, align 8 - %1124 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1125 = icmp eq ptr %1124, null - br i1 %1125, label %_llgo_105, label %_llgo_106 + %1109 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1110 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1109, 1 + %1111 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1110, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 2 + %1112 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1111, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 3 + %1113 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1114 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @56, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1113, 1 + %1115 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1114, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 2 + %1116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1115, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 3 + %1117 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1118 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1117, 1 + %1119 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1118, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 2 + %1120 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1119, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 3 + %1121 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1122 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1121, 1 + %1123 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1122, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 2 + %1124 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1123, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 3 + %1125 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1126 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @59, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %1125, 1 + %1127 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1126, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 2 + %1128 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1127, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 3 + %1129 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1130 = icmp eq ptr %1129, null + br i1 %1130, label %_llgo_105, label %_llgo_106 _llgo_105: ; preds = %_llgo_104 - %1126 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %1127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1126, 0 - %1128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1127, i64 0, 1 - %1129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1128, i64 0, 2 - %1130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %1131 = getelementptr ptr, ptr %1130, i64 0 - store ptr %1123, ptr %1131, align 8 - %1132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1130, 0 - %1133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1132, i64 1, 1 - %1134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1133, i64 1, 2 - %1135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1129, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1134, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1135) - store ptr %1135, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1131, 0 + %1133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1132, i64 0, 1 + %1134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1133, i64 0, 2 + %1135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %1136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1137 = getelementptr ptr, ptr %1136, i64 0 + store ptr %1135, ptr %1137, align 8 + %1138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1136, 0 + %1139 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1138, i64 1, 1 + %1140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1139, i64 1, 2 + %1141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1134, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1140, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1141) + store ptr %1141, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 br label %_llgo_106 _llgo_106: ; preds = %_llgo_105, %_llgo_104 - %1136 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1137 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1136, 1 - %1138 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1137, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 2 - %1139 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1138, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 3 - %1140 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1141 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1140, 1 - %1142 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1141, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 2 - %1143 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1142, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 3 - %1144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) - %1145 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1146 = icmp eq ptr %1145, null - br i1 %1146, label %_llgo_107, label %_llgo_108 + %1142 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1143 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1142, 1 + %1144 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1143, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 2 + %1145 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1144, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 3 + %1146 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1147 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1146, 1 + %1148 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1147, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 2 + %1149 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1148, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 3 + %1150 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) + %1151 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1152 = icmp eq ptr %1151, null + br i1 %1152, label %_llgo_107, label %_llgo_108 _llgo_107: ; preds = %_llgo_106 - store ptr %1144, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + store ptr %1150, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 br label %_llgo_108 _llgo_108: ; preds = %_llgo_107, %_llgo_106 - %1147 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1148 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 - %1149 = icmp eq ptr %1148, null - br i1 %1149, label %_llgo_109, label %_llgo_110 + %1153 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1154 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1155 = icmp eq ptr %1154, null + br i1 %1155, label %_llgo_109, label %_llgo_110 _llgo_109: ; preds = %_llgo_108 - store ptr %1147, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + store ptr %1153, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 br label %_llgo_110 _llgo_110: ; preds = %_llgo_109, %_llgo_108 - %1150 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %1151 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %1153 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %1152, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1151) - %1155 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @63, i64 3 }, ptr %1154, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) - %1157 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @64, i64 6 }, ptr %1156, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1156 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1157 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) %1158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %1159 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @65, i64 4 }, ptr %1158, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) - %1161 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @66, i64 9 }, ptr %1160, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 280) - %1163 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1162, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1153, ptr %1163, align 8 - %1164 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1162, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1155, ptr %1164, align 8 - %1165 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1162, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1157, ptr %1165, align 8 - %1166 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1162, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1159, ptr %1166, align 8 - %1167 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1162, i64 4 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1161, ptr %1167, align 8 - %1168 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1162, 0 - %1169 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1168, i64 5, 1 - %1170 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1169, i64 5, 2 - %1171 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1170) - store ptr %1171, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 - %1172 = load ptr, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 - br i1 %1149, label %_llgo_111, label %_llgo_112 + %1159 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %1158, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1157) + %1161 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @63, i64 3 }, ptr %1160, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %1163 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @64, i64 6 }, ptr %1162, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1164 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1165 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @65, i64 4 }, ptr %1164, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) + %1167 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @66, i64 9 }, ptr %1166, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 280) + %1169 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1168, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1159, ptr %1169, align 8 + %1170 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1168, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1161, ptr %1170, align 8 + %1171 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1168, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1163, ptr %1171, align 8 + %1172 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1168, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1165, ptr %1172, align 8 + %1173 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1168, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1167, ptr %1173, align 8 + %1174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1168, 0 + %1175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1174, i64 5, 1 + %1176 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1175, i64 5, 2 + %1177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1176) + store ptr %1177, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 + %1178 = load ptr, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 + br i1 %1155, label %_llgo_111, label %_llgo_112 _llgo_111: ; preds = %_llgo_110 - %1173 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1174 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @67, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1173, 1 - %1175 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1174, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 2 - %1176 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1175, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 3 - %1177 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1178 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1177, 1 - %1179 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1178, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 2 - %1180 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1179, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 3 - %1181 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %1182 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1181, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %1176, ptr %1182, align 8 - %1183 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1181, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %1180, ptr %1183, align 8 - %1184 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1181, 0 - %1185 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1184, i64 2, 1 - %1186 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1185, i64 2, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1147, ptr %1172, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1186) + %1179 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1180 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @67, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1179, 1 + %1181 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1180, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 2 + %1182 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1181, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 3 + %1183 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1184 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1183, 1 + %1185 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1184, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 2 + %1186 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1185, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 3 + %1187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %1188 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1187, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1182, ptr %1188, align 8 + %1189 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1187, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1186, ptr %1189, align 8 + %1190 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1187, 0 + %1191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1190, i64 2, 1 + %1192 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1191, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1153, ptr %1178, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1192) br label %_llgo_112 _llgo_112: ; preds = %_llgo_111, %_llgo_110 - %1187 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 - %1188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1189 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 - %1190 = icmp eq ptr %1189, null - br i1 %1190, label %_llgo_113, label %_llgo_114 + %1193 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1195 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1196 = icmp eq ptr %1195, null + br i1 %1196, label %_llgo_113, label %_llgo_114 _llgo_113: ; preds = %_llgo_112 - %1191 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1188) - store ptr %1191, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1197 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1194) + store ptr %1197, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 br label %_llgo_114 _llgo_114: ; preds = %_llgo_113, %_llgo_112 - %1192 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 - %1193 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1195 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %1193, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %1196 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %1197 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1196, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1194) - %1199 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @68, i64 6 }, ptr %1198, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1200 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) - %1201 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1200, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1195, ptr %1201, align 8 - %1202 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1200, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1197, ptr %1202, align 8 - %1203 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1200, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1199, ptr %1203, align 8 - %1204 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1200, 0 - %1205 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1204, i64 3, 1 - %1206 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1205, i64 3, 2 - %1207 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1206) - store ptr %1207, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 - %1208 = load ptr, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 - br i1 %1146, label %_llgo_115, label %_llgo_116 + %1198 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1199 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %1200 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1201 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %1199, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %1202 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1203 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1202, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1204 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1200) + %1205 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @68, i64 6 }, ptr %1204, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1206 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %1207 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1206, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1201, ptr %1207, align 8 + %1208 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1206, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1203, ptr %1208, align 8 + %1209 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1206, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1205, ptr %1209, align 8 + %1210 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1206, 0 + %1211 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1210, i64 3, 1 + %1212 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1211, i64 3, 2 + %1213 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1212) + store ptr %1213, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 + %1214 = load ptr, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 + br i1 %1152, label %_llgo_115, label %_llgo_116 _llgo_115: ; preds = %_llgo_114 - %1209 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1210 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %1209, 1 - %1211 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1210, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 2 - %1212 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1211, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 3 - %1213 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 - %1214 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 - %1215 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1214, 1 - %1216 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1215, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 2 - %1217 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1216, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 3 - %1218 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 - %1219 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1218, 1 - %1220 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1219, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 2 - %1221 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1220, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 3 - %1222 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %1223 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %1224 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1223, 1 - %1225 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1224, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 2 - %1226 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1225, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 3 - %1227 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %1228 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %1229 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1228, 1 - %1230 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1229, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 2 - %1231 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1230, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 3 - %1232 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %1233 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %1234 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1233, 1 - %1235 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1234, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 2 - %1236 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1235, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 3 - %1237 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1238 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1237, 1 - %1239 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1238, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 2 - %1240 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1239, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 3 - %1241 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %1242 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %1243 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1242, 1 - %1244 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1243, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 2 - %1245 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1244, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 3 - %1246 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1247 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1246, 1 - %1248 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1247, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 2 - %1249 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1248, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 3 - %1250 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1250, 1 - %1252 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1251, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 2 - %1253 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1252, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 3 - %1254 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %1255 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %1256 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1255, 1 - %1257 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1256, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 2 - %1258 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1257, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 3 - %1259 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1260 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1259, 1 - %1261 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1260, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 2 - %1262 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1261, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 3 - %1263 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1264 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1263, 1 - %1265 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1264, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 2 - %1266 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1265, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 3 - %1267 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %1268 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %1269 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1268, 1 - %1270 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1269, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 2 - %1271 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1270, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 3 - %1272 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %1273 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1272, 1 - %1274 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1273, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 2 - %1275 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1274, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 3 - %1276 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1277 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1276, 1 - %1278 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1277, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 2 - %1279 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1278, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 3 - %1280 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1281 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %1282 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1281, 1 - %1283 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1282, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 2 - %1284 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1283, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 3 - %1285 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1286 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1285, 1 - %1287 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1286, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 2 - %1288 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1287, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 3 - %1289 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1289, 1 - %1291 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1290, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 2 - %1292 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1291, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 3 - %1293 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1293, 1 - %1295 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1294, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 2 - %1296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1295, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 3 - %1297 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1298 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1297, 1 - %1299 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1298, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 2 - %1300 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1299, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 3 - %1301 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) - %1302 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1303 = icmp eq ptr %1302, null - br i1 %1303, label %_llgo_117, label %_llgo_118 + %1215 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1216 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %1215, 1 + %1217 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1216, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 2 + %1218 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1217, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 3 + %1219 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %1220 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %1221 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1220, 1 + %1222 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1221, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 2 + %1223 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1222, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 3 + %1224 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %1225 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1224, 1 + %1226 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1225, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 2 + %1227 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1226, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 3 + %1228 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1229 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1230 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1229, 1 + %1231 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1230, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 2 + %1232 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1231, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 3 + %1233 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1234 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1235 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1234, 1 + %1236 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1235, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 2 + %1237 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1236, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 3 + %1238 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1239 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1240 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1239, 1 + %1241 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1240, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 2 + %1242 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1241, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 3 + %1243 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1244 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1243, 1 + %1245 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1244, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 2 + %1246 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1245, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 3 + %1247 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %1248 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %1249 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1248, 1 + %1250 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1249, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 2 + %1251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1250, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 3 + %1252 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1253 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1252, 1 + %1254 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1253, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 2 + %1255 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1254, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 3 + %1256 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1257 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1256, 1 + %1258 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1257, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 2 + %1259 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1258, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 3 + %1260 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1261 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1262 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1261, 1 + %1263 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1262, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 2 + %1264 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1263, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 3 + %1265 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1266 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1265, 1 + %1267 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1266, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 2 + %1268 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1267, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 3 + %1269 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1270 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1269, 1 + %1271 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1270, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 2 + %1272 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1271, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 3 + %1273 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1274 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1275 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1274, 1 + %1276 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1275, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 2 + %1277 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1276, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 3 + %1278 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1279 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1278, 1 + %1280 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1279, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 2 + %1281 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1280, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 3 + %1282 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1283 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1282, 1 + %1284 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1283, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 2 + %1285 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1284, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 3 + %1286 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1287 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1288 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1287, 1 + %1289 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1288, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 2 + %1290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1289, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 3 + %1291 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1292 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1291, 1 + %1293 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1292, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 2 + %1294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1293, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 3 + %1295 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1295, 1 + %1297 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1296, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 2 + %1298 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1297, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 3 + %1299 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1300 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1299, 1 + %1301 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1300, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 2 + %1302 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1301, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 3 + %1303 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1304 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1303, 1 + %1305 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1304, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 2 + %1306 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1305, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 3 + %1307 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) + %1308 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1309 = icmp eq ptr %1308, null + br i1 %1309, label %_llgo_117, label %_llgo_118 _llgo_116: ; preds = %_llgo_128, %_llgo_114 - %1304 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1305 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1306 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %1307 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1306, 1 - %1308 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1307, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 2 - %1309 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1308, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 3 - %1310 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %1311 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1310, 1 - %1312 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1311, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 2 - %1313 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1312, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 3 - %1314 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 1040) - %1315 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %957, ptr %1315, align 8 - %1316 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %962, ptr %1316, align 8 - %1317 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %966, ptr %1317, align 8 - %1318 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %971, ptr %1318, align 8 - %1319 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %976, ptr %1319, align 8 - %1320 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %980, ptr %1320, align 8 - %1321 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %985, ptr %1321, align 8 - %1322 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %989, ptr %1322, align 8 - %1323 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %993, ptr %1323, align 8 - %1324 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %997, ptr %1324, align 8 - %1325 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 10 - store %"github.com/goplus/llgo/runtime/abi.Method" %1001, ptr %1325, align 8 - %1326 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 11 - store %"github.com/goplus/llgo/runtime/abi.Method" %1005, ptr %1326, align 8 - %1327 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 12 - store %"github.com/goplus/llgo/runtime/abi.Method" %1010, ptr %1327, align 8 - %1328 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 13 - store %"github.com/goplus/llgo/runtime/abi.Method" %1014, ptr %1328, align 8 - %1329 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 14 - store %"github.com/goplus/llgo/runtime/abi.Method" %1018, ptr %1329, align 8 - %1330 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 15 - store %"github.com/goplus/llgo/runtime/abi.Method" %1022, ptr %1330, align 8 - %1331 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 16 - store %"github.com/goplus/llgo/runtime/abi.Method" %1026, ptr %1331, align 8 - %1332 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 17 - store %"github.com/goplus/llgo/runtime/abi.Method" %1106, ptr %1332, align 8 - %1333 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 18 - store %"github.com/goplus/llgo/runtime/abi.Method" %1110, ptr %1333, align 8 - %1334 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 19 - store %"github.com/goplus/llgo/runtime/abi.Method" %1114, ptr %1334, align 8 - %1335 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 20 - store %"github.com/goplus/llgo/runtime/abi.Method" %1118, ptr %1335, align 8 - %1336 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 21 - store %"github.com/goplus/llgo/runtime/abi.Method" %1122, ptr %1336, align 8 - %1337 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 22 - store %"github.com/goplus/llgo/runtime/abi.Method" %1139, ptr %1337, align 8 - %1338 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 23 - store %"github.com/goplus/llgo/runtime/abi.Method" %1143, ptr %1338, align 8 - %1339 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 24 - store %"github.com/goplus/llgo/runtime/abi.Method" %1309, ptr %1339, align 8 - %1340 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1314, i64 25 - store %"github.com/goplus/llgo/runtime/abi.Method" %1313, ptr %1340, align 8 - %1341 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1314, 0 - %1342 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1341, i64 26, 1 - %1343 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1342, i64 26, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %840, ptr %953, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1343) + %1310 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1311 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1312 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1313 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1312, 1 + %1314 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1313, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 2 + %1315 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1314, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 3 + %1316 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1317 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1316, 1 + %1318 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1317, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 2 + %1319 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1318, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 3 + %1320 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 1040) + %1321 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %962, ptr %1321, align 8 + %1322 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %967, ptr %1322, align 8 + %1323 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %971, ptr %1323, align 8 + %1324 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %976, ptr %1324, align 8 + %1325 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %981, ptr %1325, align 8 + %1326 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %985, ptr %1326, align 8 + %1327 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %990, ptr %1327, align 8 + %1328 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %994, ptr %1328, align 8 + %1329 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %998, ptr %1329, align 8 + %1330 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %1002, ptr %1330, align 8 + %1331 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %1006, ptr %1331, align 8 + %1332 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %1010, ptr %1332, align 8 + %1333 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1015, ptr %1333, align 8 + %1334 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1019, ptr %1334, align 8 + %1335 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1023, ptr %1335, align 8 + %1336 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1027, ptr %1336, align 8 + %1337 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1031, ptr %1337, align 8 + %1338 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1112, ptr %1338, align 8 + %1339 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1116, ptr %1339, align 8 + %1340 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1120, ptr %1340, align 8 + %1341 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1124, ptr %1341, align 8 + %1342 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1128, ptr %1342, align 8 + %1343 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1145, ptr %1343, align 8 + %1344 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 23 + store %"github.com/goplus/llgo/runtime/abi.Method" %1149, ptr %1344, align 8 + %1345 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 24 + store %"github.com/goplus/llgo/runtime/abi.Method" %1315, ptr %1345, align 8 + %1346 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1320, i64 25 + store %"github.com/goplus/llgo/runtime/abi.Method" %1319, ptr %1346, align 8 + %1347 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1320, 0 + %1348 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1347, i64 26, 1 + %1349 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1348, i64 26, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %845, ptr %958, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1349) br label %_llgo_100 _llgo_117: ; preds = %_llgo_115 - %1344 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1301) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1344) - store ptr %1344, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1350 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1307) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1350) + store ptr %1350, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 br label %_llgo_118 _llgo_118: ; preds = %_llgo_117, %_llgo_115 - %1345 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1346 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1347 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %1348 = icmp eq ptr %1347, null - br i1 %1348, label %_llgo_119, label %_llgo_120 + %1351 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1352 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) + %1353 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1354 = icmp eq ptr %1353, null + br i1 %1354, label %_llgo_119, label %_llgo_120 _llgo_119: ; preds = %_llgo_118 - %1349 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %1350 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1349, 0 - %1351 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1350, i64 0, 1 - %1352 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1351, i64 0, 2 - %1353 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %1354 = getelementptr ptr, ptr %1353, i64 0 - store ptr %1346, ptr %1354, align 8 - %1355 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1353, 0 - %1356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1355, i64 1, 1 - %1357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1356, i64 1, 2 - %1358 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1352, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1357, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1358) - store ptr %1358, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1355 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1355, 0 + %1357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1356, i64 0, 1 + %1358 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1357, i64 0, 2 + %1359 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1352) + %1360 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1361 = getelementptr ptr, ptr %1360, i64 0 + store ptr %1359, ptr %1361, align 8 + %1362 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1360, 0 + %1363 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1362, i64 1, 1 + %1364 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1363, i64 1, 2 + %1365 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1358, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1364, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1365) + store ptr %1365, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 br label %_llgo_120 _llgo_120: ; preds = %_llgo_119, %_llgo_118 - %1359 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %1360 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1359, 1 - %1361 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1360, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 2 - %1362 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1361, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 3 - %1363 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) - %1364 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 - %1365 = icmp eq ptr %1364, null - br i1 %1365, label %_llgo_121, label %_llgo_122 + %1366 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1367 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1366, 1 + %1368 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1367, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 2 + %1369 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1368, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 3 + %1370 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) + %1371 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1372 = icmp eq ptr %1371, null + br i1 %1372, label %_llgo_121, label %_llgo_122 _llgo_121: ; preds = %_llgo_120 - store ptr %1363, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + store ptr %1370, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 br label %_llgo_122 _llgo_122: ; preds = %_llgo_121, %_llgo_120 - %1366 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - %1367 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1366, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1368 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) - %1369 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @71, i64 6 }, ptr %1368, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1370 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) - %1371 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @72, i64 6 }, ptr %1370, i64 18, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1372 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) - %1373 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @73, i64 4 }, ptr %1372, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1374 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) - %1375 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1367, ptr %1375, align 8 - %1376 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1369, ptr %1376, align 8 - %1377 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1371, ptr %1377, align 8 - %1378 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1373, ptr %1378, align 8 - %1379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1374, 0 - %1380 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1379, i64 4, 1 - %1381 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1380, i64 4, 2 - %1382 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1381) - store ptr %1382, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - %1383 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br i1 %1365, label %_llgo_123, label %_llgo_124 + %1373 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1374 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1373, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1375 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %1376 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @71, i64 6 }, ptr %1375, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1377 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %1378 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @72, i64 6 }, ptr %1377, i64 18, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1379 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %1380 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @73, i64 4 }, ptr %1379, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1381 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %1382 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1381, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1374, ptr %1382, align 8 + %1383 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1381, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1376, ptr %1383, align 8 + %1384 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1381, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1378, ptr %1384, align 8 + %1385 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1381, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1380, ptr %1385, align 8 + %1386 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1381, 0 + %1387 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1386, i64 4, 1 + %1388 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1387, i64 4, 2 + %1389 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1388) + store ptr %1389, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + %1390 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br i1 %1372, label %_llgo_123, label %_llgo_124 _llgo_123: ; preds = %_llgo_122 - %1384 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %1385 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %1386 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1385, 1 - %1387 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1386, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 2 - %1388 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1387, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 3 - %1389 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %1390 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %1391 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1390, 1 - %1392 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1391, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 2 - %1393 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1392, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 3 - %1394 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %1395 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1394, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %1388, ptr %1395, align 8 - %1396 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1394, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %1393, ptr %1396, align 8 - %1397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1394, 0 - %1398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1397, i64 2, 1 - %1399 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1398, i64 2, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1363, ptr %1383, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1399) + %1391 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1392 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1393 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1392, 1 + %1394 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1393, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 2 + %1395 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1394, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 3 + %1396 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1397 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1398 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1397, 1 + %1399 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1398, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 2 + %1400 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1399, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 3 + %1401 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %1402 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1401, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1395, ptr %1402, align 8 + %1403 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1401, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1400, ptr %1403, align 8 + %1404 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1401, 0 + %1405 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1404, i64 2, 1 + %1406 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1405, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1370, ptr %1390, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1406) br label %_llgo_124 _llgo_124: ; preds = %_llgo_123, %_llgo_122 - %1400 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 - %1401 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) - %1402 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 - %1403 = icmp eq ptr %1402, null - br i1 %1403, label %_llgo_125, label %_llgo_126 + %1407 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1408 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) + %1409 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1410 = icmp eq ptr %1409, null + br i1 %1410, label %_llgo_125, label %_llgo_126 _llgo_125: ; preds = %_llgo_124 - %1404 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1401) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1404) - store ptr %1404, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1411 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1408) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1411) + store ptr %1411, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 br label %_llgo_126 _llgo_126: ; preds = %_llgo_125, %_llgo_124 - %1405 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 - %1406 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 - %1407 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %1408 = icmp eq ptr %1407, null - br i1 %1408, label %_llgo_127, label %_llgo_128 + %1412 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1413 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) + %1414 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1415 = icmp eq ptr %1414, null + br i1 %1415, label %_llgo_127, label %_llgo_128 _llgo_127: ; preds = %_llgo_126 - %1409 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %1410 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1409, 0 - %1411 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1410, i64 0, 1 - %1412 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1411, i64 0, 2 - %1413 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %1414 = getelementptr ptr, ptr %1413, i64 0 - store ptr %1406, ptr %1414, align 8 - %1415 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1413, 0 - %1416 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1415, i64 1, 1 - %1417 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1416, i64 1, 2 - %1418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1412, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1417, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1418) - store ptr %1418, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1416 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1417 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1416, 0 + %1418 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1417, i64 0, 1 + %1419 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1418, i64 0, 2 + %1420 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1413) + %1421 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1422 = getelementptr ptr, ptr %1421, i64 0 + store ptr %1420, ptr %1422, align 8 + %1423 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1421, 0 + %1424 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1423, i64 1, 1 + %1425 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1424, i64 1, 2 + %1426 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1419, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1425, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1426) + store ptr %1426, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 br label %_llgo_128 _llgo_128: ; preds = %_llgo_127, %_llgo_126 - %1419 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %1420 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1419, 1 - %1421 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1420, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 2 - %1422 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1421, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 3 - %1423 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) - %1424 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %1212, ptr %1424, align 8 - %1425 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %1217, ptr %1425, align 8 - %1426 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %1221, ptr %1426, align 8 - %1427 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %1226, ptr %1427, align 8 - %1428 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %1231, ptr %1428, align 8 - %1429 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %1236, ptr %1429, align 8 - %1430 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %1240, ptr %1430, align 8 - %1431 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %1245, ptr %1431, align 8 - %1432 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %1249, ptr %1432, align 8 - %1433 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %1253, ptr %1433, align 8 - %1434 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 10 - store %"github.com/goplus/llgo/runtime/abi.Method" %1258, ptr %1434, align 8 - %1435 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 11 - store %"github.com/goplus/llgo/runtime/abi.Method" %1262, ptr %1435, align 8 - %1436 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 12 - store %"github.com/goplus/llgo/runtime/abi.Method" %1266, ptr %1436, align 8 - %1437 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 13 - store %"github.com/goplus/llgo/runtime/abi.Method" %1271, ptr %1437, align 8 - %1438 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 14 - store %"github.com/goplus/llgo/runtime/abi.Method" %1275, ptr %1438, align 8 - %1439 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 15 - store %"github.com/goplus/llgo/runtime/abi.Method" %1279, ptr %1439, align 8 - %1440 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 16 - store %"github.com/goplus/llgo/runtime/abi.Method" %1284, ptr %1440, align 8 - %1441 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 17 - store %"github.com/goplus/llgo/runtime/abi.Method" %1288, ptr %1441, align 8 - %1442 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 18 - store %"github.com/goplus/llgo/runtime/abi.Method" %1292, ptr %1442, align 8 - %1443 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 19 - store %"github.com/goplus/llgo/runtime/abi.Method" %1296, ptr %1443, align 8 - %1444 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 20 - store %"github.com/goplus/llgo/runtime/abi.Method" %1300, ptr %1444, align 8 - %1445 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 21 - store %"github.com/goplus/llgo/runtime/abi.Method" %1362, ptr %1445, align 8 - %1446 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 22 - store %"github.com/goplus/llgo/runtime/abi.Method" %1422, ptr %1446, align 8 - %1447 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1423, 0 - %1448 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1447, i64 23, 1 - %1449 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1448, i64 23, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1144, ptr %1208, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1449) + %1427 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1428 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1427, 1 + %1429 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1428, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 2 + %1430 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1429, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 3 + %1431 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) + %1432 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1218, ptr %1432, align 8 + %1433 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1223, ptr %1433, align 8 + %1434 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %1227, ptr %1434, align 8 + %1435 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %1232, ptr %1435, align 8 + %1436 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %1237, ptr %1436, align 8 + %1437 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %1242, ptr %1437, align 8 + %1438 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %1246, ptr %1438, align 8 + %1439 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %1251, ptr %1439, align 8 + %1440 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %1255, ptr %1440, align 8 + %1441 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %1259, ptr %1441, align 8 + %1442 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %1264, ptr %1442, align 8 + %1443 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %1268, ptr %1443, align 8 + %1444 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1272, ptr %1444, align 8 + %1445 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1277, ptr %1445, align 8 + %1446 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1281, ptr %1446, align 8 + %1447 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1285, ptr %1447, align 8 + %1448 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1290, ptr %1448, align 8 + %1449 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1294, ptr %1449, align 8 + %1450 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1298, ptr %1450, align 8 + %1451 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1302, ptr %1451, align 8 + %1452 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1306, ptr %1452, align 8 + %1453 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1369, ptr %1453, align 8 + %1454 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1431, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1430, ptr %1454, align 8 + %1455 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1431, 0 + %1456 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1455, i64 23, 1 + %1457 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1456, i64 23, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1150, ptr %1214, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1457) br label %_llgo_116 _llgo_129: ; preds = %_llgo_58 - %1450 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1451 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1450, 1 - %1452 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1451, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 2 - %1453 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1452, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 3 - %1454 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1454, 1 - %1456 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1455, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 2 - %1457 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1456, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 3 - %1458 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1459 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1458, 1 - %1460 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1459, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 2 - %1461 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1460, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 3 - %1462 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) - %1463 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1462, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %1453, ptr %1463, align 8 - %1464 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1462, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %1457, ptr %1464, align 8 - %1465 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1462, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %1461, ptr %1465, align 8 - %1466 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1462, 0 - %1467 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1466, i64 3, 1 - %1468 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1467, i64 3, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %403, ptr %484, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1468) + %1458 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1459 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1458, 1 + %1460 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1459, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 2 + %1461 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1460, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 3 + %1462 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1463 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1462, 1 + %1464 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1463, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 2 + %1465 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1464, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 3 + %1466 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1467 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1466, 1 + %1468 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1467, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 2 + %1469 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1468, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 3 + %1470 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %1471 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1470, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1461, ptr %1471, align 8 + %1472 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1470, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1465, ptr %1472, align 8 + %1473 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1470, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %1469, ptr %1473, align 8 + %1474 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1470, 0 + %1475 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1474, i64 3, 1 + %1476 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1475, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %405, ptr %486, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1476) br label %_llgo_130 _llgo_130: ; preds = %_llgo_129, %_llgo_58 - %1469 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %1470 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 - %1471 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 - %1472 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1471, 1 - %1473 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1472, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 2 - %1474 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1473, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 3 - %1475 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1476 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1475, 1 - %1477 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1476, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 2 - %1478 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1477, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 3 - %1479 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 - %1480 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 - %1481 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1480, 1 - %1482 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1481, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 2 - %1483 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1482, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 3 - %1484 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1485 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1484, 1 - %1486 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1485, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 2 - %1487 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1486, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 3 - %1488 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1489 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1488, 1 - %1490 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1489, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 2 - %1491 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1490, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 3 - %1492 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 - %1493 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 - %1494 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1493, 1 - %1495 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1494, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 2 - %1496 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1495, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 3 - %1497 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1498 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1497, 1 - %1499 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1498, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 2 - %1500 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1499, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 3 - %1501 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1502 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1501, 1 - %1503 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1502, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 2 - %1504 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1503, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 3 - %1505 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 - %1506 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 - %1507 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1506, 1 - %1508 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1507, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 2 - %1509 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1508, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 3 - %1510 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 - %1511 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1510, 1 - %1512 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1511, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 2 - %1513 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1512, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 3 - %1514 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 - %1515 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 - %1516 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1515, 1 - %1517 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1516, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 2 - %1518 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1517, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 3 - %1519 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1520 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1519, 1 - %1521 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1520, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 2 - %1522 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1521, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 3 - %1523 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1524 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1523, 1 - %1525 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1524, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 2 - %1526 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1525, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 3 - %1527 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1528 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1527, 1 - %1529 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1528, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 2 - %1530 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1529, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 3 - %1531 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1532 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1531, 1 - %1533 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1532, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 2 - %1534 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1533, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 3 - %1535 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 - %1536 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 - %1537 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1536, 1 - %1538 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1537, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 2 - %1539 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1538, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 3 - %1540 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 - %1541 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1540, 1 - %1542 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1541, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 2 - %1543 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1542, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 3 - %1544 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 840) - %1545 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %215, ptr %1545, align 8 - %1546 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %362, ptr %1546, align 8 - %1547 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 2 - store %"github.com/goplus/llgo/runtime/abi.Method" %384, ptr %1547, align 8 - %1548 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 3 - store %"github.com/goplus/llgo/runtime/abi.Method" %402, ptr %1548, align 8 - %1549 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 4 - store %"github.com/goplus/llgo/runtime/abi.Method" %1474, ptr %1549, align 8 - %1550 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 5 - store %"github.com/goplus/llgo/runtime/abi.Method" %1478, ptr %1550, align 8 - %1551 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 6 - store %"github.com/goplus/llgo/runtime/abi.Method" %1483, ptr %1551, align 8 - %1552 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 7 - store %"github.com/goplus/llgo/runtime/abi.Method" %1487, ptr %1552, align 8 - %1553 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 8 - store %"github.com/goplus/llgo/runtime/abi.Method" %1491, ptr %1553, align 8 - %1554 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 9 - store %"github.com/goplus/llgo/runtime/abi.Method" %1496, ptr %1554, align 8 - %1555 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 10 - store %"github.com/goplus/llgo/runtime/abi.Method" %1500, ptr %1555, align 8 - %1556 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 11 - store %"github.com/goplus/llgo/runtime/abi.Method" %1504, ptr %1556, align 8 - %1557 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 12 - store %"github.com/goplus/llgo/runtime/abi.Method" %1509, ptr %1557, align 8 - %1558 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 13 - store %"github.com/goplus/llgo/runtime/abi.Method" %1513, ptr %1558, align 8 - %1559 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 14 - store %"github.com/goplus/llgo/runtime/abi.Method" %1518, ptr %1559, align 8 - %1560 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 15 - store %"github.com/goplus/llgo/runtime/abi.Method" %1522, ptr %1560, align 8 - %1561 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 16 - store %"github.com/goplus/llgo/runtime/abi.Method" %1526, ptr %1561, align 8 - %1562 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 17 - store %"github.com/goplus/llgo/runtime/abi.Method" %1530, ptr %1562, align 8 - %1563 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 18 - store %"github.com/goplus/llgo/runtime/abi.Method" %1534, ptr %1563, align 8 - %1564 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 19 - store %"github.com/goplus/llgo/runtime/abi.Method" %1539, ptr %1564, align 8 - %1565 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1544, i64 20 - store %"github.com/goplus/llgo/runtime/abi.Method" %1543, ptr %1565, align 8 - %1566 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1544, 0 - %1567 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1566, i64 21, 1 - %1568 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1567, i64 21, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %187, ptr %211, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1568) + %1477 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1478 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1479 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1480 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1479, 1 + %1481 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1480, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 2 + %1482 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1481, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 3 + %1483 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1484 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1483, 1 + %1485 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1484, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 2 + %1486 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1485, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 3 + %1487 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %1488 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %1489 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1488, 1 + %1490 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1489, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 2 + %1491 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1490, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 3 + %1492 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1493 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1492, 1 + %1494 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1493, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 2 + %1495 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1494, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 3 + %1496 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1497 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1496, 1 + %1498 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1497, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 2 + %1499 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1498, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 3 + %1500 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1501 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1502 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1501, 1 + %1503 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1502, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 2 + %1504 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1503, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 3 + %1505 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1506 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1505, 1 + %1507 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1506, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 2 + %1508 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1507, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 3 + %1509 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1510 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1509, 1 + %1511 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1510, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 2 + %1512 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1511, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 3 + %1513 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1514 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1515 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1514, 1 + %1516 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1515, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 2 + %1517 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1516, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 3 + %1518 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1519 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1518, 1 + %1520 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1519, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 2 + %1521 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1520, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 3 + %1522 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1523 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1524 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1523, 1 + %1525 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1524, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 2 + %1526 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1525, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 3 + %1527 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1528 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1527, 1 + %1529 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1528, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 2 + %1530 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1529, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 3 + %1531 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1532 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1531, 1 + %1533 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1532, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 2 + %1534 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1533, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 3 + %1535 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1536 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1535, 1 + %1537 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1536, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 2 + %1538 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1537, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 3 + %1539 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1540 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1539, 1 + %1541 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1540, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 2 + %1542 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1541, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 3 + %1543 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1544 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1545 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1544, 1 + %1546 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1545, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 2 + %1547 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1546, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 3 + %1548 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1549 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1548, 1 + %1550 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1549, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 2 + %1551 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1550, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 3 + %1552 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 840) + %1553 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %215, ptr %1553, align 8 + %1554 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %363, ptr %1554, align 8 + %1555 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %385, ptr %1555, align 8 + %1556 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %404, ptr %1556, align 8 + %1557 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %1482, ptr %1557, align 8 + %1558 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %1486, ptr %1558, align 8 + %1559 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %1491, ptr %1559, align 8 + %1560 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %1495, ptr %1560, align 8 + %1561 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %1499, ptr %1561, align 8 + %1562 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %1504, ptr %1562, align 8 + %1563 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %1508, ptr %1563, align 8 + %1564 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %1512, ptr %1564, align 8 + %1565 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1517, ptr %1565, align 8 + %1566 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1521, ptr %1566, align 8 + %1567 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1526, ptr %1567, align 8 + %1568 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1530, ptr %1568, align 8 + %1569 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1534, ptr %1569, align 8 + %1570 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1538, ptr %1570, align 8 + %1571 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1542, ptr %1571, align 8 + %1572 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1547, ptr %1572, align 8 + %1573 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1552, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1551, ptr %1573, align 8 + %1574 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1552, 0 + %1575 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1574, i64 21, 1 + %1576 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1575, i64 21, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %187, ptr %211, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1576) br label %_llgo_38 _llgo_131: ; preds = %_llgo_30 - %1569 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %165) - store ptr %1569, ptr @"[]_llgo_github.com/goplus/llgo/cl/_testrt/abinamed.T", align 8 + %1577 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %165) + store ptr %1577, ptr @"[]_llgo_github.com/goplus/llgo/cl/_testrt/abinamed.T", align 8 br label %_llgo_132 _llgo_132: ; preds = %_llgo_131, %_llgo_30 - %1570 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/cl/_testrt/abinamed.T", align 8 - %1571 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %1572 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1573 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %1574 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1571) - %1575 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @78, i64 1 }, ptr %1574, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1576 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1572) - %1577 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @79, i64 1 }, ptr %1576, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1578 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) - %1579 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @80, i64 1 }, ptr %1578, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1580 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1573) - %1581 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @81, i64 1 }, ptr %1580, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %1582 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) - %1583 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1582, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1575, ptr %1583, align 8 - %1584 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1582, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1577, ptr %1584, align 8 - %1585 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1582, i64 2 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1579, ptr %1585, align 8 - %1586 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1582, i64 3 - store %"github.com/goplus/llgo/runtime/abi.StructField" %1581, ptr %1586, align 8 - %1587 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1582, 0 - %1588 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1587, i64 4, 1 - %1589 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1588, i64 4, 2 - %1590 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1589) - store ptr %1590, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$EvjTmKky0pIMIGP-Uwj_AJEuFg2LHJG7T5nEc5t6SpE", align 8 - %1591 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$EvjTmKky0pIMIGP-Uwj_AJEuFg2LHJG7T5nEc5t6SpE", align 8 + %1578 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/cl/_testrt/abinamed.T", align 8 + %1579 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %1580 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %1581 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %1582 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1579) + %1583 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @78, i64 1 }, ptr %1582, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1584 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1580) + %1585 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @79, i64 1 }, ptr %1584, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1586 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %1587 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @80, i64 1 }, ptr %1586, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1588 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1581) + %1589 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @81, i64 1 }, ptr %1588, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1590 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %1591 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1590, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1583, ptr %1591, align 8 + %1592 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1590, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1585, ptr %1592, align 8 + %1593 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1590, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1587, ptr %1593, align 8 + %1594 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1590, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1589, ptr %1594, align 8 + %1595 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1590, 0 + %1596 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1595, i64 4, 1 + %1597 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1596, i64 4, 2 + %1598 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 42 }, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1597) + store ptr %1598, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$EvjTmKky0pIMIGP-Uwj_AJEuFg2LHJG7T5nEc5t6SpE", align 8 + %1599 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/abinamed.struct$EvjTmKky0pIMIGP-Uwj_AJEuFg2LHJG7T5nEc5t6SpE", align 8 br i1 %2, label %_llgo_133, label %_llgo_134 _llgo_133: ; preds = %_llgo_132 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %1591, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %1599, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_134 _llgo_134: ; preds = %_llgo_133, %_llgo_132 diff --git a/cl/_testrt/closureiface/out.ll b/cl/_testrt/closureiface/out.ll index 1b37cc1e..7e2e2154 100644 --- a/cl/_testrt/closureiface/out.ll +++ b/cl/_testrt/closureiface/out.ll @@ -111,26 +111,26 @@ _llgo_1: ; preds = %_llgo_0 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %8 = getelementptr ptr, ptr %7, i64 0 - store ptr %3, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 - %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %7 = getelementptr ptr, ptr %6, i64 0 + store ptr %5, ptr %7, align 8 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 1, 1 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 2 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %13 = getelementptr ptr, ptr %12, i64 0 - store ptr %4, ptr %13, align 8 + store ptr %11, ptr %13, align 8 %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %12, 0 %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 1, 1 %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 1, 2 - %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %17) store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 br label %_llgo_4 @@ -147,21 +147,21 @@ _llgo_5: ; preds = %_llgo_4 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %21 = load ptr, ptr @_llgo_int, align 8 - %22 = load ptr, ptr @_llgo_int, align 8 - %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %24 = getelementptr ptr, ptr %23, i64 0 - store ptr %21, ptr %24, align 8 - %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 - %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 1 - %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 1, 2 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %23 = getelementptr ptr, ptr %22, i64 0 + store ptr %21, ptr %23, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %22, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 1, 1 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 2 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %29 = getelementptr ptr, ptr %28, i64 0 - store ptr %22, ptr %29, align 8 + store ptr %27, ptr %29, align 8 %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 1 %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 1, 2 - %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) %34 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) %36 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) diff --git a/cl/_testrt/tpmethod/out.ll b/cl/_testrt/tpmethod/out.ll index 6d0e9762..926da872 100644 --- a/cl/_testrt/tpmethod/out.ll +++ b/cl/_testrt/tpmethod/out.ll @@ -197,23 +197,23 @@ _llgo_5: ; preds = %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4 %10 = load ptr, ptr @_llgo_string, align 8 - %11 = load ptr, ptr @_llgo_string, align 8 - %12 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_7, label %_llgo_8 + %11 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %12 = icmp eq ptr %11, null + br i1 %12, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 1 - %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 0, 2 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %13, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 0, 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 2 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %19 = getelementptr ptr, ptr %18, i64 0 - store ptr %11, ptr %19, align 8 + store ptr %17, ptr %19, align 8 %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 1, 1 %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 1, 2 - %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %23) store ptr %23, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_8 @@ -249,14 +249,14 @@ _llgo_10: ; preds = %_llgo_9, %_llgo_8 br i1 %3, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %41 = load ptr, ptr @_llgo_error, align 8 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }) %42 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 %43 = icmp eq ptr %42, null br i1 %43, label %_llgo_13, label %_llgo_14 _llgo_12: ; preds = %_llgo_14, %_llgo_10 %44 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]", align 8 - %45 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]", align 8 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 12 }, i64 25, i64 16, i64 1, i64 1) %46 = load ptr, ptr @"_llgo_func$wp7b63sFyNWPTd8VyEOOosByqpZg5pKsGThGMOTpyvo", align 8 %47 = icmp eq ptr %46, null br i1 %47, label %_llgo_15, label %_llgo_16 @@ -330,7 +330,7 @@ _llgo_17: ; preds = %_llgo_16 _llgo_18: ; preds = %_llgo_17, %_llgo_16 %89 = load ptr, ptr @_llgo_Pointer, align 8 - %90 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]", align 8 + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 12 }, i64 25, i64 16, i64 1, i64 1) %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %92 = getelementptr ptr, ptr %91, i64 0 store ptr %90, ptr %92, align 8 @@ -356,7 +356,7 @@ _llgo_18: ; preds = %_llgo_17, %_llgo_16 %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %109) store ptr %110, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 %111 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 - %112 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 12 }, i64 25, i64 16, i64 1, i64 1) %113 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 %114 = icmp eq ptr %113, null br i1 %114, label %_llgo_19, label %_llgo_20 @@ -373,104 +373,173 @@ _llgo_19: ; preds = %_llgo_18 %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 0, 1 %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 0, 2 %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %124) - store ptr %124, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 + %125 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %124, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %126 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %127 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %126, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %128 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %129 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %128, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %125, ptr %129, align 8 + %130 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %128, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %127, ptr %130, align 8 + %131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %128, 0 + %132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %131, i64 2, 1 + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %132, i64 2, 2 + %134 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %133) + %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %136 = getelementptr ptr, ptr %135, i64 0 + store ptr %134, ptr %136, align 8 + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %135, 0 + %138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %137, i64 1, 1 + %139 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %138, i64 1, 2 + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %140, 0 + %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %141, i64 0, 1 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %142, i64 0, 2 + %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %139, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %144) + store ptr %144, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %125 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 - %126 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 - %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %128 = getelementptr ptr, ptr %127, i64 0 - store ptr %126, ptr %128, align 8 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %127, 0 - %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 1, 1 - %131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130, i64 1, 2 - %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %132, 0 - %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %133, i64 0, 1 - %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %134, i64 0, 2 - %136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %131, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %135, i1 false) - %137 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %136, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %139 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %138, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %141 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %140, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %137, ptr %141, align 8 - %142 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %140, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %139, ptr %142, align 8 - %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %140, 0 - %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i64 2, 1 - %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, i64 2, 2 - %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %145) - store ptr %146, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$RKfcSKegPcHdzhxU0W5IivepgA09rDfPw-OLCUsxWOs", align 8 - %147 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$RKfcSKegPcHdzhxU0W5IivepgA09rDfPw-OLCUsxWOs", align 8 - %148 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 - %149 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %150 = getelementptr ptr, ptr %149, i64 0 - store ptr %148, ptr %150, align 8 - %151 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %149, 0 - %152 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %151, i64 1, 1 - %153 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %152, i64 1, 2 - %154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %154, 0 - %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %155, i64 0, 1 - %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %156, i64 0, 2 - %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %153, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %157, i1 false) - %159 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %158, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) - %161 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %160, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) - %163 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %162, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %159, ptr %163, align 8 - %164 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %162, i64 1 - store %"github.com/goplus/llgo/runtime/abi.StructField" %161, ptr %164, align 8 - %165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %162, 0 - %166 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %165, i64 2, 1 - %167 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %166, i64 2, 2 - %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %167) - %169 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 2 }, ptr %168, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) - %170 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) - %171 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %170, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %169, ptr %171, align 8 - %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %170, 0 - %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 1, 1 - %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 1, 2 - %175 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174) - store ptr %175, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$kt0sK2vUcLNEVLy1xxIBee3YiHDiDSmGrh1CrSDZOYY", align 8 - %176 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$kt0sK2vUcLNEVLy1xxIBee3YiHDiDSmGrh1CrSDZOYY", align 8 - %177 = load ptr, ptr @"_llgo_func$wp7b63sFyNWPTd8VyEOOosByqpZg5pKsGThGMOTpyvo", align 8 - %178 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 - %179 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 - %180 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %179, 1 - %181 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %180, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.(*future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]).Then", 2 - %182 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %181, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.(*future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]).Then", 3 - %183 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %184 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %183, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %182, ptr %184, align 8 - %185 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %183, 0 - %186 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %185, i64 1, 1 - %187 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %186, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %176, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %187) - %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 63 }, i64 25, i64 24, i64 0, i64 1) - %189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %188) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %189) - store ptr %189, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/tpmethod.future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]", align 8 - %190 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 - %191 = load ptr, ptr @"_llgo_iface$kSla6xFkiJD3PX1RdCGebCgULXloNxgSHKPEQsXsqos", align 8 - %192 = icmp eq ptr %191, null - br i1 %192, label %_llgo_21, label %_llgo_22 + %145 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 12 }, i64 25, i64 16, i64 1, i64 1) + %147 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %148 = getelementptr ptr, ptr %147, i64 0 + store ptr %146, ptr %148, align 8 + %149 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %147, 0 + %150 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %149, i64 1, 1 + %151 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %150, i64 1, 2 + %152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %153 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %152, 0 + %154 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %153, i64 0, 1 + %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %154, i64 0, 2 + %156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %151, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %155, i1 false) + %157 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %156, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %159 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %158, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %161 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %160, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %157, ptr %161, align 8 + %162 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %160, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %159, ptr %162, align 8 + %163 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %160, 0 + %164 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %163, i64 2, 1 + %165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %164, i64 2, 2 + %166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %165) + %167 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %168 = getelementptr ptr, ptr %167, i64 0 + store ptr %166, ptr %168, align 8 + %169 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %167, 0 + %170 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %169, i64 1, 1 + %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %170, i64 1, 2 + %172 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %172, 0 + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 0, 1 + %175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174, i64 0, 2 + %176 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %175, i1 false) + %177 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %176, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %178 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %179 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %178, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %180 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %181 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %180, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %177, ptr %181, align 8 + %182 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %180, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %179, ptr %182, align 8 + %183 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %180, 0 + %184 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %183, i64 2, 1 + %185 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %184, i64 2, 2 + %186 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %185) + store ptr %186, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$RKfcSKegPcHdzhxU0W5IivepgA09rDfPw-OLCUsxWOs", align 8 + %187 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$RKfcSKegPcHdzhxU0W5IivepgA09rDfPw-OLCUsxWOs", align 8 + %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 12 }, i64 25, i64 16, i64 1, i64 1) + %189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %190 = getelementptr ptr, ptr %189, i64 0 + store ptr %188, ptr %190, align 8 + %191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %189, 0 + %192 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %191, i64 1, 1 + %193 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %192, i64 1, 2 + %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %195 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %194, 0 + %196 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %195, i64 0, 1 + %197 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %196, i64 0, 2 + %198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %193, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %197, i1 false) + %199 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %198, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %200 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %201 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %200, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %202 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %203 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %202, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %199, ptr %203, align 8 + %204 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %202, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %201, ptr %204, align 8 + %205 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %202, 0 + %206 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %205, i64 2, 1 + %207 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %206, i64 2, 2 + %208 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %207) + %209 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %210 = getelementptr ptr, ptr %209, i64 0 + store ptr %208, ptr %210, align 8 + %211 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %209, 0 + %212 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %211, i64 1, 1 + %213 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %212, i64 1, 2 + %214 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %215 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %214, 0 + %216 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %215, i64 0, 1 + %217 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %216, i64 0, 2 + %218 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %213, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %217, i1 false) + %219 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %218, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %220 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %221 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %220, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %222 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %223 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %222, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %219, ptr %223, align 8 + %224 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %222, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %221, ptr %224, align 8 + %225 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %222, 0 + %226 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %225, i64 2, 1 + %227 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %226, i64 2, 2 + %228 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %227) + %229 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 2 }, ptr %228, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %230 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %231 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %230, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %229, ptr %231, align 8 + %232 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %230, 0 + %233 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %232, i64 1, 1 + %234 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %233, i64 1, 2 + %235 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %234) + store ptr %235, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$kt0sK2vUcLNEVLy1xxIBee3YiHDiDSmGrh1CrSDZOYY", align 8 + %236 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$kt0sK2vUcLNEVLy1xxIBee3YiHDiDSmGrh1CrSDZOYY", align 8 + %237 = load ptr, ptr @"_llgo_func$wp7b63sFyNWPTd8VyEOOosByqpZg5pKsGThGMOTpyvo", align 8 + %238 = load ptr, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.struct$s_pTkk2q6m_bRjfPic11Z1ogmQ-VdSHpGxyzvfszwb8", align 8 + %239 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 + %240 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %239, 1 + %241 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %240, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.(*future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]).Then", 2 + %242 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %241, ptr @"github.com/goplus/llgo/cl/_testrt/tpmethod.(*future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]).Then", 3 + %243 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %244 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %243, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %242, ptr %244, align 8 + %245 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %243, 0 + %246 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %245, i64 1, 1 + %247 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %246, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %236, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %247) + %248 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 63 }, i64 25, i64 24, i64 0, i64 1) + %249 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %248) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %249) + store ptr %249, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/tpmethod.future[github.com/goplus/llgo/cl/_testrt/tpmethod.Tuple[error]]", align 8 + %250 = load ptr, ptr @"_llgo_func$pIyBXw4qkUL3JRjAVf_wwtiGz7b0evOvoFHlctBJd6o", align 8 + %251 = load ptr, ptr @"_llgo_iface$kSla6xFkiJD3PX1RdCGebCgULXloNxgSHKPEQsXsqos", align 8 + %252 = icmp eq ptr %251, null + br i1 %252, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %193 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef }, ptr %190, 1 - %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) - %195 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %194, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %193, ptr %195, align 8 - %196 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %194, 0 - %197 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %196, i64 1, 1 - %198 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %197, i64 1, 2 - %199 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %198) - store ptr %199, ptr @"_llgo_iface$kSla6xFkiJD3PX1RdCGebCgULXloNxgSHKPEQsXsqos", align 8 + %253 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef }, ptr %250, 1 + %254 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %255 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %254, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %253, ptr %255, align 8 + %256 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %254, 0 + %257 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %256, i64 1, 1 + %258 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %257, i64 1, 2 + %259 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %258) + store ptr %259, ptr @"_llgo_iface$kSla6xFkiJD3PX1RdCGebCgULXloNxgSHKPEQsXsqos", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 diff --git a/cl/_testrt/vamethod/out.ll b/cl/_testrt/vamethod/out.ll index 1df84695..23fa356a 100644 --- a/cl/_testrt/vamethod/out.ll +++ b/cl/_testrt/vamethod/out.ll @@ -244,205 +244,211 @@ _llgo_13: ; preds = %_llgo_12 _llgo_14: ; preds = %_llgo_13, %_llgo_12 %34 = load ptr, ptr @_llgo_int32, align 8 - %35 = load ptr, ptr @"[]_llgo_any", align 8 - %36 = load ptr, ptr @_llgo_int32, align 8 - %37 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 - %38 = icmp eq ptr %37, null - br i1 %38, label %_llgo_15, label %_llgo_16 + %35 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %36 = icmp eq ptr %35, null + br i1 %36, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %40 = getelementptr ptr, ptr %39, i64 0 - store ptr %35, ptr %40, align 8 - %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %39, 0 - %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 1, 1 - %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, i64 1, 2 - %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %45 = getelementptr ptr, ptr %44, i64 0 - store ptr %36, ptr %45, align 8 - %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %44, 0 - %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i64 1, 1 - %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %47, i64 1, 2 - %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %48, i1 true) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %49) - store ptr %49, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %37, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 0, 1 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i64 0, 2 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40) + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %41) + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %44 = getelementptr ptr, ptr %43, i64 0 + store ptr %42, ptr %44, align 8 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %43, 0 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 1, 1 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i64 1, 2 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) + %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %50 = getelementptr ptr, ptr %49, i64 0 + store ptr %48, ptr %50, align 8 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %49, 0 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i64 1, 1 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, i64 1, 2 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %47, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53, i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %54) + store ptr %54, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %50 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 - %51 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %50, 1 - %52 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %51, ptr @printf, 2 - %53 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %52, ptr @printf, 3 - %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %55 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %54, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %53, ptr %55, align 8 - %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %54, 0 - %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i64 1, 1 - %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, i64 1, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %3, ptr %9, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58) + %55 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %56 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %55, 1 + %57 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %56, ptr @printf, 2 + %58 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %57, ptr @printf, 3 + %59 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %60 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %59, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %58, ptr %60, align 8 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %59, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 1, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %3, ptr %9, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63) br label %_llgo_8 _llgo_17: ; preds = %_llgo_8 - %59 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %13) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %59) - store ptr %59, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.T", align 8 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %64) + store ptr %64, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.T", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_8 - %60 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.T", align 8 - %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, i64 3, i64 1, i64 0, i64 1) - %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %61) - %63 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, ptr %62, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) - %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) - %65 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %64, i64 0 - store %"github.com/goplus/llgo/runtime/abi.StructField" %63, ptr %65, align 8 - %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %64, 0 - %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 1, 1 - %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 1, 2 - %69 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %69) - store ptr %69, ptr @"_llgo_struct$quUppefyumGvUA5WNkqjeO0PomZGx9OI8NFZ2pfWLXw", align 8 - %70 = load ptr, ptr @"_llgo_struct$quUppefyumGvUA5WNkqjeO0PomZGx9OI8NFZ2pfWLXw", align 8 + %65 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.T", align 8 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, i64 3, i64 1, i64 0, i64 1) + %67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %66) + %68 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, ptr %67, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %69 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %70 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %69, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %68, ptr %70, align 8 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %69, 0 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %71, i64 1, 1 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 1, 2 + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %74) + store ptr %74, ptr @"_llgo_struct$quUppefyumGvUA5WNkqjeO0PomZGx9OI8NFZ2pfWLXw", align 8 + %75 = load ptr, ptr @"_llgo_struct$quUppefyumGvUA5WNkqjeO0PomZGx9OI8NFZ2pfWLXw", align 8 br i1 %2, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %71 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 - %72 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %71, 1 - %73 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %72, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 2 - %74 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %73, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 3 - %75 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %71, 1 - %76 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %75, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 2 - %77 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %76, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.CFmt.Printf", 3 - %78 = load ptr, ptr @_llgo_int8, align 8 - %79 = load ptr, ptr @"*_llgo_int8", align 8 - %80 = icmp eq ptr %79, null - br i1 %80, label %_llgo_21, label %_llgo_22 + %76 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %77 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %76, 1 + %78 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %77, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 2 + %79 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %78, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 3 + %80 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %76, 1 + %81 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %80, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).Printf", 2 + %82 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %81, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.CFmt.Printf", 3 + %83 = load ptr, ptr @_llgo_int8, align 8 + %84 = load ptr, ptr @"*_llgo_int8", align 8 + %85 = icmp eq ptr %84, null + br i1 %85, label %_llgo_21, label %_llgo_22 _llgo_20: ; preds = %_llgo_24, %_llgo_18 - %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, i64 25, i64 8, i64 1, i64 2) - %82 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.CFmt", align 8 - %83 = icmp eq ptr %82, null - br i1 %83, label %_llgo_25, label %_llgo_26 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, i64 25, i64 8, i64 1, i64 2) + %87 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.CFmt", align 8 + %88 = icmp eq ptr %87, null + br i1 %88, label %_llgo_25, label %_llgo_26 _llgo_21: ; preds = %_llgo_19 - %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) - %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %84) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %85) - store ptr %85, ptr @"*_llgo_int8", align 8 + %89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %89) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %90) + store ptr %90, ptr @"*_llgo_int8", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_19 - %86 = load ptr, ptr @"*_llgo_int8", align 8 - %87 = load ptr, ptr @"*_llgo_int8", align 8 - %88 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 - %89 = icmp eq ptr %88, null - br i1 %89, label %_llgo_23, label %_llgo_24 + %91 = load ptr, ptr @"*_llgo_int8", align 8 + %92 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 + %93 = icmp eq ptr %92, null + br i1 %93, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) - %91 = getelementptr ptr, ptr %90, i64 0 - store ptr %87, ptr %91, align 8 - %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %90, 0 - %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92, i64 1, 1 - %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 1, 2 - %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - %96 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %95, 0 - %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %96, i64 0, 1 - %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %97, i64 0, 2 - %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i1 false) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %99) - store ptr %99, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %94) + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %97 = getelementptr ptr, ptr %96, i64 0 + store ptr %95, ptr %97, align 8 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %96, 0 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 1, 1 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 1, 2 + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %101, 0 + %103 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %102, i64 0, 1 + %104 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %103, i64 0, 2 + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %104, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %105) + store ptr %105, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %100 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 - %101 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %100, 1 - %102 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %101, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).SetFormat", 2 - %103 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %102, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).SetFormat", 3 - %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) - %105 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %104, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %77, ptr %105, align 8 - %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %104, 0 - %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %106, i64 1, 1 - %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %107, i64 1, 2 - %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) - %110 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %109, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Method" %74, ptr %110, align 8 - %111 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %109, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Method" %103, ptr %111, align 8 - %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %109, 0 - %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %112, i64 2, 1 - %114 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %113, i64 2, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %70, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %108, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %114) + %106 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 + %107 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %106, 1 + %108 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %107, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).SetFormat", 2 + %109 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %108, ptr @"github.com/goplus/llgo/cl/_testrt/vamethod.(*CFmt).SetFormat", 3 + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %111 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %110, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %82, ptr %111, align 8 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %110, 0 + %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %112, i64 1, 1 + %114 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %113, i64 1, 2 + %115 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %116 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %115, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %79, ptr %116, align 8 + %117 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %115, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %109, ptr %117, align 8 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %115, 0 + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %118, i64 2, 1 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %75, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %114, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120) br label %_llgo_20 _llgo_25: ; preds = %_llgo_20 - %115 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %81) - call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %115) - store ptr %115, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.CFmt", align 8 + %121 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %86) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %121) + store ptr %121, ptr @"*_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.CFmt", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_20 - %116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }) - %117 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.IFmt", align 8 - %118 = icmp eq ptr %117, null - br i1 %118, label %_llgo_27, label %_llgo_28 + %122 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }) + %123 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.IFmt", align 8 + %124 = icmp eq ptr %123, null + br i1 %124, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - store ptr %116, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.IFmt", align 8 + store ptr %122, ptr @"_llgo_github.com/goplus/llgo/cl/_testrt/vamethod.IFmt", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %119 = load ptr, ptr @"[]_llgo_any", align 8 - %120 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 - %121 = load ptr, ptr @"*_llgo_int8", align 8 - %122 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 - br i1 %118, label %_llgo_29, label %_llgo_30 + %125 = load ptr, ptr @"[]_llgo_any", align 8 + %126 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %127 = load ptr, ptr @"*_llgo_int8", align 8 + %128 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 + br i1 %124, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %123 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %120, 1 - %124 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef }, ptr %122, 1 - %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) - %126 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %125, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %123, ptr %126, align 8 - %127 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %125, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %124, ptr %127, align 8 - %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %125, 0 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128, i64 2, 1 - %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 2, 2 - call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %116, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130) + %129 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %126, 1 + %130 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef }, ptr %128, 1 + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %132 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %131, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %129, ptr %132, align 8 + %133 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %131, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %130, ptr %133, align 8 + %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %131, 0 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %134, i64 2, 1 + %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %135, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %122, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %136) br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %131 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 - %132 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 - %133 = load ptr, ptr @"_llgo_iface$a85zs5wWQQoPIERm_en8plssh4spdIeeXZPC-E0TDh0", align 8 - %134 = icmp eq ptr %133, null - br i1 %134, label %_llgo_31, label %_llgo_32 + %137 = load ptr, ptr @"_llgo_func$sSO5Bw-E3E7TeJqIJF_OmmojTYyqWBhYrUwNYJNw7Bs", align 8 + %138 = load ptr, ptr @"_llgo_func$vAfTC3ZLX0_lZI-ZNliu0_DkE266FSmKXxj_cqKPPkA", align 8 + %139 = load ptr, ptr @"_llgo_iface$a85zs5wWQQoPIERm_en8plssh4spdIeeXZPC-E0TDh0", align 8 + %140 = icmp eq ptr %139, null + br i1 %140, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %135 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %131, 1 - %136 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef }, ptr %132, 1 - %137 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) - %138 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %137, i64 0 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %135, ptr %138, align 8 - %139 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %137, i64 1 - store %"github.com/goplus/llgo/runtime/abi.Imethod" %136, ptr %139, align 8 - %140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %137, 0 - %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %140, i64 2, 1 - %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %141, i64 2, 2 - %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %142) - store ptr %143, ptr @"_llgo_iface$a85zs5wWQQoPIERm_en8plssh4spdIeeXZPC-E0TDh0", align 8 + %141 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %137, 1 + %142 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }, ptr undef }, ptr %138, 1 + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %144 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %143, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %141, ptr %144, align 8 + %145 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %143, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %142, ptr %145, align 8 + %146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %143, 0 + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %146, i64 2, 1 + %148 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %147, i64 2, 2 + %149 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 42 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %148) + store ptr %149, ptr @"_llgo_iface$a85zs5wWQQoPIERm_en8plssh4spdIeeXZPC-E0TDh0", align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %144 = load ptr, ptr @_llgo_string, align 8 - %145 = icmp eq ptr %144, null - br i1 %145, label %_llgo_33, label %_llgo_34 + %150 = load ptr, ptr @_llgo_string, align 8 + %151 = icmp eq ptr %150, null + br i1 %151, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) - store ptr %146, ptr @_llgo_string, align 8 + %152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %152, ptr @_llgo_string, align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 diff --git a/internal/build/build.go b/internal/build/build.go index 58a2560d..1147d495 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -216,7 +216,7 @@ func Do(args []string, conf *Config) ([]Package, error) { verbose := conf.Verbose patterns := args - tags := "llgo" + tags := "llgo,math_big_pure_go" if conf.Tags != "" { tags += "," + conf.Tags } @@ -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, export.LLVMTarget, export.TargetABI, conf.AbiMode, cabiOptimize), } pkgs, err := buildAllPkgs(ctx, initial, verbose) check(err) diff --git a/internal/cabi/_testdata/arch.sh b/internal/cabi/_testdata/arch.sh index 64d753af..977821d9 100755 --- a/internal/cabi/_testdata/arch.sh +++ b/internal/cabi/_testdata/arch.sh @@ -4,10 +4,20 @@ mkdir -p arch/arm64 mkdir -p arch/i386 mkdir -p arch/armv6 mkdir -p arch/riscv64 +mkdir -p arch/riscv64_lp64d +mkdir -p arch/riscv64_lp64f mkdir -p arch/wasm32 +mkdir -p arch/riscv32_ilp32 +mkdir -p arch/riscv32_ilp32f +mkdir -p arch/riscv32_ilp32d (cd arch/amd64 && clang -target amd64-unknown-linux-gnu -S -emit-llvm ../../wrap/*.c) (cd arch/arm64 && clang -target aarch64-linux-gnu -S -emit-llvm ../../wrap/*.c) (cd arch/i386 && clang -target i386-unknown-linux-gnu -S -emit-llvm ../../wrap/*.c) (cd arch/armv6 && clang -target armv6l-unknown-linux-gnueabihf -S -emit-llvm ../../wrap/*.c) (cd arch/riscv64 && clang -target riscv64-unknown-elf -S -emit-llvm ../../wrap/*.c) -(cd arch/wasm32 && clang -target wasm32-unknown-emscripten -S -emit-llvm ../../wrap/*.c) \ No newline at end of file +(cd arch/riscv64_lp64f && clang -target riscv64-unknown-elf -mabi=lp64f -S -emit-llvm ../../wrap/*.c) +(cd arch/riscv64_lp64d && clang -target riscv64-unknown-elf -mabi=lp64d -S -emit-llvm ../../wrap/*.c) +(cd arch/wasm32 && clang -target wasm32-unknown-emscripten -S -emit-llvm ../../wrap/*.c) +(cd arch/riscv32_ilp32 && clang -target riscv32-unknown-elf -mabi=ilp32 -S -emit-llvm ../../wrap/*.c) +(cd arch/riscv32_ilp32f && clang -target riscv32-unknown-elf -mabi=ilp32f -S -emit-llvm ../../wrap/*.c) +(cd arch/riscv32_ilp32d && clang -target riscv32-unknown-elf -mabi=ilp32d -S -emit-llvm ../../wrap/*.c) diff --git a/internal/cabi/_testdata/arch/amd64/array_uintptr.ll b/internal/cabi/_testdata/arch/amd64/array_uintptr.ll deleted file mode 100644 index 506349c2..00000000 --- a/internal/cabi/_testdata/arch/amd64/array_uintptr.ll +++ /dev/null @@ -1,219 +0,0 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "amd64-unknown-linux-gnu" - -%struct.array1 = type { [1 x i8*] } -%struct.array2 = type { [2 x i8*] } -%struct.array3 = type { [3 x i8*] } -%struct.array4 = type { [4 x i8*] } -%struct.array5 = type { [5 x i8*] } -%struct.array6 = type { [6 x i8*] } -%struct.array7 = type { [7 x i8*] } -%struct.array8 = type { [8 x i8*] } -%struct.array9 = type { [9 x i8*] } -%struct.array10 = type { [10 x i8*] } -%struct.array11 = type { [11 x i8*] } -%struct.array12 = type { [12 x i8*] } -%struct.array13 = type { [13 x i8*] } -%struct.array14 = type { [14 x i8*] } -%struct.array15 = type { [15 x i8*] } -%struct.array16 = type { [16 x i8*] } -%struct.array17 = type { [17 x i8*] } -%struct.array18 = type { [18 x i8*] } -%struct.array19 = type { [19 x i8*] } -%struct.array20 = type { [20 x i8*] } - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local i8* @demo1(i8* %0) #0 { - %2 = alloca %struct.array1, align 8 - %3 = alloca %struct.array1, align 8 - %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 - %5 = bitcast [1 x i8*]* %4 to i8** - store i8* %0, i8** %5, align 8 - %6 = bitcast %struct.array1* %2 to i8* - %7 = bitcast %struct.array1* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) - %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 - %9 = bitcast [1 x i8*]* %8 to i8** - %10 = load i8*, i8** %9, align 8 - ret i8* %10 -} - -; Function Attrs: argmemonly nofree nounwind willreturn -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local { i8*, i8* } @demo2(i8* %0, i8* %1) #0 { - %3 = alloca %struct.array2, align 8 - %4 = alloca %struct.array2, align 8 - %5 = bitcast %struct.array2* %4 to { i8*, i8* }* - %6 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 0 - store i8* %0, i8** %6, align 8 - %7 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 1 - store i8* %1, i8** %7, align 8 - %8 = bitcast %struct.array2* %3 to i8* - %9 = bitcast %struct.array2* %4 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) - %10 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 - %11 = bitcast [2 x i8*]* %10 to { i8*, i8* }* - %12 = load { i8*, i8* }, { i8*, i8* }* %11, align 8 - ret { i8*, i8* } %12 -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { - %3 = bitcast %struct.array3* %0 to i8* - %4 = bitcast %struct.array3* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { - %3 = bitcast %struct.array4* %0 to i8* - %4 = bitcast %struct.array4* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { - %3 = bitcast %struct.array5* %0 to i8* - %4 = bitcast %struct.array5* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { - %3 = bitcast %struct.array6* %0 to i8* - %4 = bitcast %struct.array6* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { - %3 = bitcast %struct.array7* %0 to i8* - %4 = bitcast %struct.array7* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { - %3 = bitcast %struct.array8* %0 to i8* - %4 = bitcast %struct.array8* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { - %3 = bitcast %struct.array9* %0 to i8* - %4 = bitcast %struct.array9* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { - %3 = bitcast %struct.array10* %0 to i8* - %4 = bitcast %struct.array10* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { - %3 = bitcast %struct.array11* %0 to i8* - %4 = bitcast %struct.array11* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { - %3 = bitcast %struct.array12* %0 to i8* - %4 = bitcast %struct.array12* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { - %3 = bitcast %struct.array13* %0 to i8* - %4 = bitcast %struct.array13* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { - %3 = bitcast %struct.array14* %0 to i8* - %4 = bitcast %struct.array14* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { - %3 = bitcast %struct.array15* %0 to i8* - %4 = bitcast %struct.array15* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { - %3 = bitcast %struct.array16* %0 to i8* - %4 = bitcast %struct.array16* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { - %3 = bitcast %struct.array17* %0 to i8* - %4 = bitcast %struct.array17* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { - %3 = bitcast %struct.array18* %0 to i8* - %4 = bitcast %struct.array18* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { - %3 = bitcast %struct.array19* %0 to i8* - %4 = bitcast %struct.array19* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { - %3 = bitcast %struct.array20* %0 to i8* - %4 = bitcast %struct.array20* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) - ret void -} - -attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { argmemonly nofree nounwind willreturn } - -!llvm.module.flags = !{!0, !1, !2, !3, !4} -!llvm.ident = !{!5} - -!0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{i32 7, !"PIC Level", i32 2} -!2 = !{i32 7, !"PIE Level", i32 2} -!3 = !{i32 7, !"uwtable", i32 2} -!4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/basic.ll b/internal/cabi/_testdata/arch/amd64/basic.ll index 4d42e66f..d96419d7 100644 --- a/internal/cabi/_testdata/arch/amd64/basic.ll +++ b/internal/cabi/_testdata/arch/amd64/basic.ll @@ -52,7 +52,7 @@ define dso_local double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone uwtable -define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 8 store i8* %0, i8** %2, align 8 %3 = load i8*, i8** %2, align 8 diff --git a/internal/cabi/_testdata/arch/amd64/struct_uintptr.ll b/internal/cabi/_testdata/arch/amd64/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/amd64/struct_uintptr.ll rename to internal/cabi/_testdata/arch/amd64/struct_pointer.ll index 1eb9e86c..5021ce2c 100644 --- a/internal/cabi/_testdata/arch/amd64/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/amd64/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "amd64-unknown-linux-gnu" diff --git a/internal/cabi/_testdata/arch/arm64/array_uintptr.ll b/internal/cabi/_testdata/arch/arm64/array_uintptr.ll deleted file mode 100644 index 47786df5..00000000 --- a/internal/cabi/_testdata/arch/arm64/array_uintptr.ll +++ /dev/null @@ -1,221 +0,0 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" -target triple = "aarch64-unknown-linux-gnu" - -%struct.array1 = type { [1 x i8*] } -%struct.array2 = type { [2 x i8*] } -%struct.array3 = type { [3 x i8*] } -%struct.array4 = type { [4 x i8*] } -%struct.array5 = type { [5 x i8*] } -%struct.array6 = type { [6 x i8*] } -%struct.array7 = type { [7 x i8*] } -%struct.array8 = type { [8 x i8*] } -%struct.array9 = type { [9 x i8*] } -%struct.array10 = type { [10 x i8*] } -%struct.array11 = type { [11 x i8*] } -%struct.array12 = type { [12 x i8*] } -%struct.array13 = type { [13 x i8*] } -%struct.array14 = type { [14 x i8*] } -%struct.array15 = type { [15 x i8*] } -%struct.array16 = type { [16 x i8*] } -%struct.array17 = type { [17 x i8*] } -%struct.array18 = type { [18 x i8*] } -%struct.array19 = type { [19 x i8*] } -%struct.array20 = type { [20 x i8*] } - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local i64 @demo1(i64 %0) #0 { - %2 = alloca %struct.array1, align 8 - %3 = alloca %struct.array1, align 8 - %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 - %5 = bitcast [1 x i8*]* %4 to i64* - store i64 %0, i64* %5, align 8 - %6 = bitcast %struct.array1* %2 to i8* - %7 = bitcast %struct.array1* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) - %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 - %9 = bitcast [1 x i8*]* %8 to i64* - %10 = load i64, i64* %9, align 8 - ret i64 %10 -} - -; Function Attrs: argmemonly nofree nounwind willreturn -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { - %2 = alloca %struct.array2, align 8 - %3 = alloca %struct.array2, align 8 - %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 - %5 = bitcast [2 x i8*]* %4 to [2 x i64]* - store [2 x i64] %0, [2 x i64]* %5, align 8 - %6 = bitcast %struct.array2* %2 to i8* - %7 = bitcast %struct.array2* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) - %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 - %9 = bitcast [2 x i8*]* %8 to [2 x i64]* - %10 = load [2 x i64], [2 x i64]* %9, align 8 - ret [2 x i64] %10 -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { - %3 = bitcast %struct.array3* %0 to i8* - %4 = bitcast %struct.array3* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { - %3 = bitcast %struct.array4* %0 to i8* - %4 = bitcast %struct.array4* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { - %3 = bitcast %struct.array5* %0 to i8* - %4 = bitcast %struct.array5* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { - %3 = bitcast %struct.array6* %0 to i8* - %4 = bitcast %struct.array6* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { - %3 = bitcast %struct.array7* %0 to i8* - %4 = bitcast %struct.array7* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { - %3 = bitcast %struct.array8* %0 to i8* - %4 = bitcast %struct.array8* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { - %3 = bitcast %struct.array9* %0 to i8* - %4 = bitcast %struct.array9* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { - %3 = bitcast %struct.array10* %0 to i8* - %4 = bitcast %struct.array10* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { - %3 = bitcast %struct.array11* %0 to i8* - %4 = bitcast %struct.array11* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { - %3 = bitcast %struct.array12* %0 to i8* - %4 = bitcast %struct.array12* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { - %3 = bitcast %struct.array13* %0 to i8* - %4 = bitcast %struct.array13* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { - %3 = bitcast %struct.array14* %0 to i8* - %4 = bitcast %struct.array14* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { - %3 = bitcast %struct.array15* %0 to i8* - %4 = bitcast %struct.array15* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { - %3 = bitcast %struct.array16* %0 to i8* - %4 = bitcast %struct.array16* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { - %3 = bitcast %struct.array17* %0 to i8* - %4 = bitcast %struct.array17* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { - %3 = bitcast %struct.array18* %0 to i8* - %4 = bitcast %struct.array18* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { - %3 = bitcast %struct.array19* %0 to i8* - %4 = bitcast %struct.array19* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { - %3 = bitcast %struct.array20* %0 to i8* - %4 = bitcast %struct.array20* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) - ret void -} - -attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } -attributes #1 = { argmemonly nofree nounwind willreturn } - -!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} -!llvm.ident = !{!9} - -!0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{i32 8, !"branch-target-enforcement", i32 0} -!2 = !{i32 8, !"sign-return-address", i32 0} -!3 = !{i32 8, !"sign-return-address-all", i32 0} -!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} -!5 = !{i32 7, !"PIC Level", i32 2} -!6 = !{i32 7, !"PIE Level", i32 2} -!7 = !{i32 7, !"uwtable", i32 2} -!8 = !{i32 7, !"frame-pointer", i32 1} -!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/basic.ll b/internal/cabi/_testdata/arch/arm64/basic.ll index 1575fdcf..1cf23fe5 100644 --- a/internal/cabi/_testdata/arch/arm64/basic.ll +++ b/internal/cabi/_testdata/arch/arm64/basic.ll @@ -52,7 +52,7 @@ define dso_local double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone uwtable -define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 8 store i8* %0, i8** %2, align 8 %3 = load i8*, i8** %2, align 8 diff --git a/internal/cabi/_testdata/arch/arm64/struct_uintptr.ll b/internal/cabi/_testdata/arch/arm64/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/arm64/struct_uintptr.ll rename to internal/cabi/_testdata/arch/arm64/struct_pointer.ll index 4ddf4007..926c3198 100644 --- a/internal/cabi/_testdata/arch/arm64/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/arm64/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64-unknown-linux-gnu" diff --git a/internal/cabi/_testdata/arch/armv6/array_uintptr.ll b/internal/cabi/_testdata/arch/armv6/array_uintptr.ll deleted file mode 100644 index 95ee95f2..00000000 --- a/internal/cabi/_testdata/arch/armv6/array_uintptr.ll +++ /dev/null @@ -1,273 +0,0 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" -target triple = "armv6kz-unknown-linux-gnueabihf" - -%struct.array1 = type { [1 x i8*] } -%struct.array2 = type { [2 x i8*] } -%struct.array3 = type { [3 x i8*] } -%struct.array4 = type { [4 x i8*] } -%struct.array5 = type { [5 x i8*] } -%struct.array6 = type { [6 x i8*] } -%struct.array7 = type { [7 x i8*] } -%struct.array8 = type { [8 x i8*] } -%struct.array9 = type { [9 x i8*] } -%struct.array10 = type { [10 x i8*] } -%struct.array11 = type { [11 x i8*] } -%struct.array12 = type { [12 x i8*] } -%struct.array13 = type { [13 x i8*] } -%struct.array14 = type { [14 x i8*] } -%struct.array15 = type { [15 x i8*] } -%struct.array16 = type { [16 x i8*] } -%struct.array17 = type { [17 x i8*] } -%struct.array18 = type { [18 x i8*] } -%struct.array19 = type { [19 x i8*] } -%struct.array20 = type { [20 x i8*] } - -; Function Attrs: noinline nounwind optnone -define dso_local i32 @demo1([1 x i32] %0) #0 { - %2 = alloca %struct.array1, align 4 - %3 = alloca %struct.array1, align 4 - %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 - %5 = bitcast [1 x i8*]* %4 to [1 x i32]* - store [1 x i32] %0, [1 x i32]* %5, align 4 - %6 = bitcast %struct.array1* %2 to i8* - %7 = bitcast %struct.array1* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) - %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 - %9 = bitcast [1 x i8*]* %8 to i32* - %10 = load i32, i32* %9, align 4 - ret i32 %10 -} - -; Function Attrs: argmemonly nofree nounwind willreturn -declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, [2 x i32] %1) #0 { - %3 = alloca %struct.array2, align 4 - %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 - %5 = bitcast [2 x i8*]* %4 to [2 x i32]* - store [2 x i32] %1, [2 x i32]* %5, align 4 - %6 = bitcast %struct.array2* %0 to i8* - %7 = bitcast %struct.array2* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, [3 x i32] %1) #0 { - %3 = alloca %struct.array3, align 4 - %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 - %5 = bitcast [3 x i8*]* %4 to [3 x i32]* - store [3 x i32] %1, [3 x i32]* %5, align 4 - %6 = bitcast %struct.array3* %0 to i8* - %7 = bitcast %struct.array3* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 12, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, [4 x i32] %1) #0 { - %3 = alloca %struct.array4, align 4 - %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 - %5 = bitcast [4 x i8*]* %4 to [4 x i32]* - store [4 x i32] %1, [4 x i32]* %5, align 4 - %6 = bitcast %struct.array4* %0 to i8* - %7 = bitcast %struct.array4* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 16, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { - %3 = alloca %struct.array5, align 4 - %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 - %5 = bitcast [5 x i8*]* %4 to [5 x i32]* - store [5 x i32] %1, [5 x i32]* %5, align 4 - %6 = bitcast %struct.array5* %0 to i8* - %7 = bitcast %struct.array5* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 20, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, [6 x i32] %1) #0 { - %3 = alloca %struct.array6, align 4 - %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 - %5 = bitcast [6 x i8*]* %4 to [6 x i32]* - store [6 x i32] %1, [6 x i32]* %5, align 4 - %6 = bitcast %struct.array6* %0 to i8* - %7 = bitcast %struct.array6* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 24, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, [7 x i32] %1) #0 { - %3 = alloca %struct.array7, align 4 - %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 - %5 = bitcast [7 x i8*]* %4 to [7 x i32]* - store [7 x i32] %1, [7 x i32]* %5, align 4 - %6 = bitcast %struct.array7* %0 to i8* - %7 = bitcast %struct.array7* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 28, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, [8 x i32] %1) #0 { - %3 = alloca %struct.array8, align 4 - %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 - %5 = bitcast [8 x i8*]* %4 to [8 x i32]* - store [8 x i32] %1, [8 x i32]* %5, align 4 - %6 = bitcast %struct.array8* %0 to i8* - %7 = bitcast %struct.array8* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 32, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, [9 x i32] %1) #0 { - %3 = alloca %struct.array9, align 4 - %4 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 - %5 = bitcast [9 x i8*]* %4 to [9 x i32]* - store [9 x i32] %1, [9 x i32]* %5, align 4 - %6 = bitcast %struct.array9* %0 to i8* - %7 = bitcast %struct.array9* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 36, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, [10 x i32] %1) #0 { - %3 = alloca %struct.array10, align 4 - %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 - %5 = bitcast [10 x i8*]* %4 to [10 x i32]* - store [10 x i32] %1, [10 x i32]* %5, align 4 - %6 = bitcast %struct.array10* %0 to i8* - %7 = bitcast %struct.array10* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 40, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [11 x i32] %1) #0 { - %3 = alloca %struct.array11, align 4 - %4 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 - %5 = bitcast [11 x i8*]* %4 to [11 x i32]* - store [11 x i32] %1, [11 x i32]* %5, align 4 - %6 = bitcast %struct.array11* %0 to i8* - %7 = bitcast %struct.array11* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 44, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, [12 x i32] %1) #0 { - %3 = alloca %struct.array12, align 4 - %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 - %5 = bitcast [12 x i8*]* %4 to [12 x i32]* - store [12 x i32] %1, [12 x i32]* %5, align 4 - %6 = bitcast %struct.array12* %0 to i8* - %7 = bitcast %struct.array12* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 48, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, [13 x i32] %1) #0 { - %3 = alloca %struct.array13, align 4 - %4 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 - %5 = bitcast [13 x i8*]* %4 to [13 x i32]* - store [13 x i32] %1, [13 x i32]* %5, align 4 - %6 = bitcast %struct.array13* %0 to i8* - %7 = bitcast %struct.array13* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 52, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, [14 x i32] %1) #0 { - %3 = alloca %struct.array14, align 4 - %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 - %5 = bitcast [14 x i8*]* %4 to [14 x i32]* - store [14 x i32] %1, [14 x i32]* %5, align 4 - %6 = bitcast %struct.array14* %0 to i8* - %7 = bitcast %struct.array14* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 56, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, [15 x i32] %1) #0 { - %3 = alloca %struct.array15, align 4 - %4 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 - %5 = bitcast [15 x i8*]* %4 to [15 x i32]* - store [15 x i32] %1, [15 x i32]* %5, align 4 - %6 = bitcast %struct.array15* %0 to i8* - %7 = bitcast %struct.array15* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 60, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, [16 x i32] %1) #0 { - %3 = alloca %struct.array16, align 4 - %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 - %5 = bitcast [16 x i8*]* %4 to [16 x i32]* - store [16 x i32] %1, [16 x i32]* %5, align 4 - %6 = bitcast %struct.array16* %0 to i8* - %7 = bitcast %struct.array16* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 64, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { - %3 = bitcast %struct.array17* %0 to i8* - %4 = bitcast %struct.array17* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { - %3 = bitcast %struct.array18* %0 to i8* - %4 = bitcast %struct.array18* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { - %3 = bitcast %struct.array19* %0 to i8* - %4 = bitcast %struct.array19* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { - %3 = bitcast %struct.array20* %0 to i8* - %4 = bitcast %struct.array20* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) - ret void -} - -attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } -attributes #1 = { argmemonly nofree nounwind willreturn } - -!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} -!llvm.ident = !{!9} - -!0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{i32 1, !"min_enum_size", i32 4} -!2 = !{i32 8, !"branch-target-enforcement", i32 0} -!3 = !{i32 8, !"sign-return-address", i32 0} -!4 = !{i32 8, !"sign-return-address-all", i32 0} -!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} -!6 = !{i32 7, !"PIC Level", i32 2} -!7 = !{i32 7, !"PIE Level", i32 2} -!8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/basic.ll b/internal/cabi/_testdata/arch/armv6/basic.ll index 76d01838..5b1916b9 100644 --- a/internal/cabi/_testdata/arch/armv6/basic.ll +++ b/internal/cabi/_testdata/arch/armv6/basic.ll @@ -52,7 +52,7 @@ define dso_local double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone -define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 4 store i8* %0, i8** %2, align 4 %3 = load i8*, i8** %2, align 4 diff --git a/internal/cabi/_testdata/arch/armv6/struct_uintptr.ll b/internal/cabi/_testdata/arch/armv6/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/armv6/struct_uintptr.ll rename to internal/cabi/_testdata/arch/armv6/struct_pointer.ll index caf23465..5c183092 100644 --- a/internal/cabi/_testdata/arch/armv6/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/armv6/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" target triple = "armv6kz-unknown-linux-gnueabihf" diff --git a/internal/cabi/_testdata/arch/esp32/array_uintptr.ll b/internal/cabi/_testdata/arch/esp32/array_uintptr.ll deleted file mode 100644 index a5001053..00000000 --- a/internal/cabi/_testdata/arch/esp32/array_uintptr.ll +++ /dev/null @@ -1,185 +0,0 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-p:32:32-v1:8:8-i64:64-i128:128-n32" -target triple = "xtensa-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 void @demo1(ptr dead_on_unwind noalias writable sret(%struct.array1) align 4 %0, i32 %1) #0 { - %3 = alloca %struct.array1, align 4 - %4 = getelementptr inbounds %struct.array1, ptr %3, i32 0, i32 0 - store i32 %1, ptr %4, align 4 - call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %3, i32 4, 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 [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 [3 x i32] @demo3([3 x i32] %0) #0 { - %2 = alloca %struct.array3, align 4 - %3 = alloca %struct.array3, align 4 - %4 = getelementptr inbounds %struct.array3, ptr %3, i32 0, i32 0 - store [3 x i32] %0, ptr %4, align 4 - call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 12, i1 false) - %5 = getelementptr inbounds %struct.array3, ptr %2, i32 0, i32 0 - %6 = load [3 x i32], ptr %5, align 4 - ret [3 x i32] %6 -} - -; Function Attrs: noinline nounwind optnone -define dso_local [4 x i32] @demo4([4 x i32] %0) #0 { - %2 = alloca %struct.array4, align 4 - %3 = alloca %struct.array4, align 4 - %4 = getelementptr inbounds %struct.array4, ptr %3, i32 0, i32 0 - store [4 x i32] %0, ptr %4, align 4 - call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 16, i1 false) - %5 = getelementptr inbounds %struct.array4, ptr %2, i32 0, i32 0 - %6 = load [4 x i32], ptr %5, align 4 - ret [4 x i32] %6 -} - -; Function Attrs: noinline nounwind optnone -define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { - %3 = alloca %struct.array5, align 4 - %4 = getelementptr inbounds %struct.array5, ptr %3, i32 0, i32 0 - store [5 x i32] %1, ptr %4, align 4 - call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %3, 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, [6 x i32] %1) #0 { - %3 = alloca %struct.array6, align 4 - %4 = getelementptr inbounds %struct.array6, ptr %3, i32 0, i32 0 - store [6 x i32] %1, ptr %4, align 4 - call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %3, 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 byval(%struct.array7) align 4 %1) #0 { - 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 byval(%struct.array8) align 4 %1) #0 { - 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 byval(%struct.array9) align 4 %1) #0 { - 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 byval(%struct.array10) align 4 %1) #0 { - 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 byval(%struct.array11) align 4 %1) #0 { - 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 byval(%struct.array12) align 4 %1) #0 { - 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 byval(%struct.array13) align 4 %1) #0 { - 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 byval(%struct.array14) align 4 %1) #0 { - 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 byval(%struct.array15) align 4 %1) #0 { - 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 byval(%struct.array16) align 4 %1) #0 { - 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 byval(%struct.array17) align 4 %1) #0 { - 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 byval(%struct.array18) align 4 %1) #0 { - 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 byval(%struct.array19) align 4 %1) #0 { - 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 byval(%struct.array20) align 4 %1) #0 { - 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-features"="+atomctl,+bool,+clamps,+coprocessor,+debug,+density,+dfpaccel,+div32,+exception,+fp,+highpriinterrupts,+interrupt,+loop,+mac16,+memctl,+minmax,+miscsr,+mul32,+mul32high,+nsa,+prid,+regprotect,+rvector,+s32c1i,+sext,+threadptr,+timerint,+windowed" } -attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } - -!llvm.module.flags = !{!0, !1} -!llvm.ident = !{!2} - -!0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{i32 7, !"frame-pointer", i32 2} -!2 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32/basic.ll b/internal/cabi/_testdata/arch/esp32/basic.ll index f3993f03..92f7b431 100644 --- a/internal/cabi/_testdata/arch/esp32/basic.ll +++ b/internal/cabi/_testdata/arch/esp32/basic.ll @@ -61,7 +61,7 @@ define dso_local i64 @basic_float64(i64 noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone -define dso_local ptr @basic_uintptr(i32 noundef %0) #0 { +define dso_local ptr @basic_pointer(i32 noundef %0) #0 { %2 = alloca ptr, align 4 %3 = alloca ptr, align 4 %4 = inttoptr i32 %0 to ptr diff --git a/internal/cabi/_testdata/arch/esp32/struct_uintptr.ll b/internal/cabi/_testdata/arch/esp32/struct_pointer.ll similarity index 98% rename from internal/cabi/_testdata/arch/esp32/struct_uintptr.ll rename to internal/cabi/_testdata/arch/esp32/struct_pointer.ll index 23c738e8..1931ce52 100644 --- a/internal/cabi/_testdata/arch/esp32/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/esp32/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p:32:32-v1:8:8-i64:64-i128:128-n32" target triple = "xtensa-esp-unknown-elf" 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/basic.ll b/internal/cabi/_testdata/arch/esp32c3/basic.ll new file mode 100644 index 00000000..7549e0f4 --- /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_pointer(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_pointer.ll b/internal/cabi/_testdata/arch/esp32c3/struct_pointer.ll new file mode 100644 index 00000000..89388904 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_pointer.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.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/_testdata/arch/i386/basic.ll b/internal/cabi/_testdata/arch/i386/basic.ll index d3828d0d..6c760e61 100644 --- a/internal/cabi/_testdata/arch/i386/basic.ll +++ b/internal/cabi/_testdata/arch/i386/basic.ll @@ -52,7 +52,7 @@ define dso_local double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone uwtable -define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 4 store i8* %0, i8** %2, align 4 %3 = load i8*, i8** %2, align 4 diff --git a/internal/cabi/_testdata/arch/i386/struct_uintptr.ll b/internal/cabi/_testdata/arch/i386/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/i386/struct_uintptr.ll rename to internal/cabi/_testdata/arch/i386/struct_pointer.ll index 5cee2fc0..c75ee6c8 100644 --- a/internal/cabi/_testdata/arch/i386/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/i386/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" target triple = "i386-unknown-linux-gnu" diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_float32.ll new file mode 100644 index 00000000..e8d2a1e2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_float32.ll @@ -0,0 +1,270 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x float]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x float]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x float]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x float]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_float64.ll new file mode 100644 index 00000000..7a1efdc4 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_float64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int16.ll new file mode 100644 index 00000000..495099ee --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int16.ll @@ -0,0 +1,292 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i16]* %4 to i32* + store i32 %0, i32* %5, align 2 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i16]* %8 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array3* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 2 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int32.ll new file mode 100644 index 00000000..3b7bcc5c --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int32.ll @@ -0,0 +1,268 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i32]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i32]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define 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, %struct.array2* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int64.ll new file mode 100644 index 00000000..320f4e77 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/array_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int8.ll new file mode 100644 index 00000000..34fbaec9 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_int8.ll @@ -0,0 +1,336 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 1, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; 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 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 3, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to i32* + store i32 %0, i32* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array5* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 5, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array6* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array7* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 7, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 1 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_uintptr.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/array_pointer.ll similarity index 62% rename from internal/cabi/_testdata/arch/i386/array_uintptr.ll rename to internal/cabi/_testdata/arch/riscv32_ilp32/array_pointer.ll index 54b09786..8fe4acfa 100644 --- a/internal/cabi/_testdata/arch/i386/array_uintptr.ll +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/array_pointer.ll @@ -1,7 +1,7 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" -target triple = "i386-unknown-linux-gnu" +; 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-unknown-unknown-elf" %struct.array1 = type { [1 x i8*] } %struct.array2 = type { [2 x i8*] } @@ -24,33 +24,43 @@ target triple = "i386-unknown-linux-gnu" %struct.array19 = type { [19 x i8*] } %struct.array20 = type { [20 x i8*] } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { - %3 = alloca i8*, align 4 - %4 = bitcast %struct.array1* %0 to i8* - store i8* %4, i8** %3, align 4 - %5 = bitcast %struct.array1* %0 to i8* - %6 = bitcast %struct.array1* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) - ret void +; Function Attrs: 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, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 } ; Function Attrs: argmemonly nofree nounwind willreturn declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { - %3 = alloca i8*, align 4 - %4 = bitcast %struct.array2* %0 to i8* - store i8* %4, i8** %3, align 4 - %5 = bitcast %struct.array2* %0 to i8* - %6 = bitcast %struct.array2* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) - ret void +; Function Attrs: noinline nounwind optnone +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, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array3* %0 to i8* store i8* %4, i8** %3, align 4 @@ -60,8 +70,8 @@ define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array4* %0 to i8* store i8* %4, i8** %3, align 4 @@ -71,8 +81,8 @@ define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array5* %0 to i8* store i8* %4, i8** %3, align 4 @@ -82,8 +92,8 @@ define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array6* %0 to i8* store i8* %4, i8** %3, align 4 @@ -93,8 +103,8 @@ define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array7* %0 to i8* store i8* %4, i8** %3, align 4 @@ -104,8 +114,8 @@ define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array8* %0 to i8* store i8* %4, i8** %3, align 4 @@ -115,8 +125,8 @@ define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array9* %0 to i8* store i8* %4, i8** %3, align 4 @@ -126,8 +136,8 @@ define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array10* %0 to i8* store i8* %4, i8** %3, align 4 @@ -137,8 +147,8 @@ define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array11* %0 to i8* store i8* %4, i8** %3, align 4 @@ -148,8 +158,8 @@ define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array12* %0 to i8* store i8* %4, i8** %3, align 4 @@ -159,8 +169,8 @@ define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array13* %0 to i8* store i8* %4, i8** %3, align 4 @@ -170,8 +180,8 @@ define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array14* %0 to i8* store i8* %4, i8** %3, align 4 @@ -181,8 +191,8 @@ define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array15* %0 to i8* store i8* %4, i8** %3, align 4 @@ -192,8 +202,8 @@ define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array16* %0 to i8* store i8* %4, i8** %3, align 4 @@ -203,8 +213,8 @@ define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array17* %0 to i8* store i8* %4, i8** %3, align 4 @@ -214,8 +224,8 @@ define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array18* %0 to i8* store i8* %4, i8** %3, align 4 @@ -225,8 +235,8 @@ define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array19* %0 to i8* store i8* %4, i8** %3, align 4 @@ -236,8 +246,8 @@ define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) ali ret void } -; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { %3 = alloca i8*, align 4 %4 = bitcast %struct.array20* %0 to i8* store i8* %4, i8** %3, align 4 @@ -247,16 +257,14 @@ define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) ali ret void } -attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } attributes #1 = { argmemonly nofree nounwind willreturn } -!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} -!llvm.ident = !{!6} +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} -!0 = !{i32 1, !"NumRegisterParameters", i32 0} -!1 = !{i32 1, !"wchar_size", i32 4} -!2 = !{i32 7, !"PIC Level", i32 2} -!3 = !{i32 7, !"PIE Level", i32 2} -!4 = !{i32 7, !"uwtable", i32 2} -!5 = !{i32 7, !"frame-pointer", i32 2} -!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/basic.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/basic.ll new file mode 100644 index 00000000..9c71684a --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/composite.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/composite.ll new file mode 100644 index 00000000..cf596d20 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/composite.ll @@ -0,0 +1,148 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + %6 = bitcast [1 x i32]* %5 to i32* + store i32 %0, i32* %6, align 4 + %7 = bitcast %struct.array10* %2 to i8* + %8 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + %9 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %9, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_array11([2 x i32] %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.array11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point10* %2 to i8* + %7 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %8, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_point11([2 x i32] %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array20* %2 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %8, i32 0, i32 0 + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, %struct.array21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array21* %0 to i8* + %6 = bitcast %struct.array21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/empty.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/empty.ll new file mode 100644 index 00000000..647446a4 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float32.ll new file mode 100644 index 00000000..c85c283d --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float32.ll @@ -0,0 +1,268 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast float* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = bitcast float* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float64.ll new file mode 100644 index 00000000..cf824f09 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_float64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = bitcast double* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int16.ll new file mode 100644 index 00000000..536a1c70 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int16.ll @@ -0,0 +1,280 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = bitcast %struct.point2* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point2* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int32.ll new file mode 100644 index 00000000..cea05ee2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int32.ll @@ -0,0 +1,266 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int64.ll new file mode 100644 index 00000000..ac6d9591 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int64.ll @@ -0,0 +1,263 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int8.ll new file mode 100644 index 00000000..c6794b09 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_int8.ll @@ -0,0 +1,316 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 2, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 2, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; 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 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 3, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 3, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = bitcast %struct.point4* %3 to i32* + store i32 %0, i32* %4, align 1 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 4, i1 false) + %7 = bitcast %struct.point4* %2 to i32* + %8 = load i32, i32* %7, align 1 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 5, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 5, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 7, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 7, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 1 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_mixed.ll new file mode 100644 index 00000000..a6d1b1e7 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_mixed.ll @@ -0,0 +1,12848 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = bitcast %struct.point1* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point1* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point6* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point7* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point7* %2 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point7* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point10* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %2 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point10* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point12* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point13* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point13* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point14* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point14* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point16* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point16* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point18* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo21(%struct.point21* noalias sret(%struct.point21) align 8 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo22(%struct.point22* noalias sret(%struct.point22) align 8 %0, %struct.point22* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point22* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point22* %0 to i8* + %6 = bitcast %struct.point22* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo23(%struct.point23* noalias sret(%struct.point23) align 8 %0, %struct.point23* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point23* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point23* %0 to i8* + %6 = bitcast %struct.point23* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo24(%struct.point24* noalias sret(%struct.point24) align 8 %0, %struct.point24* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point24* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point24* %0 to i8* + %6 = bitcast %struct.point24* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo25([2 x i32] %0) #0 { + %2 = alloca %struct.point25, align 4 + %3 = alloca %struct.point25, align 4 + %4 = bitcast %struct.point25* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point25* %2 to i8* + %6 = bitcast %struct.point25* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point25* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point26* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point26* %2 to i8* + %6 = bitcast %struct.point26* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point26* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point27* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point27* %2 to i8* + %6 = bitcast %struct.point27* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point27* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo28(%struct.point28* noalias sret(%struct.point28) align 8 %0, %struct.point28* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point28* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point28* %0 to i8* + %6 = bitcast %struct.point28* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo29(%struct.point29* noalias sret(%struct.point29) align 8 %0, %struct.point29* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point29* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point29* %0 to i8* + %6 = bitcast %struct.point29* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo30([2 x i32] %0) #0 { + %2 = alloca %struct.point30, align 4 + %3 = alloca %struct.point30, align 4 + %4 = bitcast %struct.point30* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo31(%struct.point31* noalias sret(%struct.point31) align 8 %0, %struct.point31* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point31* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point31* %0 to i8* + %6 = bitcast %struct.point31* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo32(%struct.point32* noalias sret(%struct.point32) align 8 %0, %struct.point32* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point32* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point32* %0 to i8* + %6 = bitcast %struct.point32* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo33(%struct.point33* noalias sret(%struct.point33) align 8 %0, %struct.point33* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point33* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point33* %0 to i8* + %6 = bitcast %struct.point33* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo34(%struct.point34* noalias sret(%struct.point34) align 8 %0, %struct.point34* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point34* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point34* %0 to i8* + %6 = bitcast %struct.point34* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo35(%struct.point35* noalias sret(%struct.point35) align 8 %0, %struct.point35* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point35* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point35* %0 to i8* + %6 = bitcast %struct.point35* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo36(%struct.point36* noalias sret(%struct.point36) align 8 %0, %struct.point36* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point36* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point36* %0 to i8* + %6 = bitcast %struct.point36* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo37([2 x i32] %0) #0 { + %2 = alloca %struct.point37, align 4 + %3 = alloca %struct.point37, align 4 + %4 = bitcast %struct.point37* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point38* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point39* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo40(%struct.point40* noalias sret(%struct.point40) align 8 %0, %struct.point40* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point40* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point40* %0 to i8* + %6 = bitcast %struct.point40* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo41([2 x i32] %0) #0 { + %2 = alloca %struct.point41, align 4 + %3 = alloca %struct.point41, align 4 + %4 = bitcast %struct.point41* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo42(%struct.point42* noalias sret(%struct.point42) align 8 %0, %struct.point42* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point42* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point42* %0 to i8* + %6 = bitcast %struct.point42* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point45* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point45* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point46* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point46* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, %struct.point47* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point47* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point47* %0 to i8* + %6 = bitcast %struct.point47* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, %struct.point48* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point48* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point48* %0 to i8* + %6 = bitcast %struct.point48* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo49([2 x i32] %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point49* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, %struct.point50* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point50* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point50* %0 to i8* + %6 = bitcast %struct.point50* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, %struct.point51* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point51* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point51* %0 to i8* + %6 = bitcast %struct.point51* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, %struct.point52* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point52* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point52* %0 to i8* + %6 = bitcast %struct.point52* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, %struct.point53* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point53* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point53* %0 to i8* + %6 = bitcast %struct.point53* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, %struct.point54* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point54* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point54* %0 to i8* + %6 = bitcast %struct.point54* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, %struct.point55* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point55* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point55* %0 to i8* + %6 = bitcast %struct.point55* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, %struct.point56* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point56* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point56* %0 to i8* + %6 = bitcast %struct.point56* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, %struct.point57* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point57* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point57* %0 to i8* + %6 = bitcast %struct.point57* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, %struct.point58* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point58* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point58* %0 to i8* + %6 = bitcast %struct.point58* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, %struct.point59* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point59* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point59* %0 to i8* + %6 = bitcast %struct.point59* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, %struct.point60* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point60* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point60* %0 to i8* + %6 = bitcast %struct.point60* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, %struct.point61* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point61* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point61* %0 to i8* + %6 = bitcast %struct.point61* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, %struct.point62* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point62* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point62* %0 to i8* + %6 = bitcast %struct.point62* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, %struct.point63* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point63* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point63* %0 to i8* + %6 = bitcast %struct.point63* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point65* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point65* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point66* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point66* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, %struct.point67* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point67* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point67* %0 to i8* + %6 = bitcast %struct.point67* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, %struct.point68* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point68* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point68* %0 to i8* + %6 = bitcast %struct.point68* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, %struct.point69* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point69* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point69* %0 to i8* + %6 = bitcast %struct.point69* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo70([2 x i32] %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point70* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, %struct.point71* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point71* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point71* %0 to i8* + %6 = bitcast %struct.point71* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, %struct.point72* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point72* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point72* %0 to i8* + %6 = bitcast %struct.point72* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, %struct.point73* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point73* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point73* %0 to i8* + %6 = bitcast %struct.point73* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, %struct.point74* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point74* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point74* %0 to i8* + %6 = bitcast %struct.point74* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, %struct.point75* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point75* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point75* %0 to i8* + %6 = bitcast %struct.point75* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, %struct.point76* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point76* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point76* %0 to i8* + %6 = bitcast %struct.point76* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, %struct.point77* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point77* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point77* %0 to i8* + %6 = bitcast %struct.point77* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, %struct.point78* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point78* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point78* %0 to i8* + %6 = bitcast %struct.point78* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, %struct.point79* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point79* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point79* %0 to i8* + %6 = bitcast %struct.point79* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, %struct.point80* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point80* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point80* %0 to i8* + %6 = bitcast %struct.point80* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, %struct.point81* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point81* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point81* %0 to i8* + %6 = bitcast %struct.point81* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, %struct.point82* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point82* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point82* %0 to i8* + %6 = bitcast %struct.point82* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, %struct.point83* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point83* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point83* %0 to i8* + %6 = bitcast %struct.point83* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, %struct.point84* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point84* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point84* %0 to i8* + %6 = bitcast %struct.point84* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo85([2 x i32] %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point85* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, %struct.point86* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point86* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point86* %0 to i8* + %6 = bitcast %struct.point86* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, %struct.point87* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point87* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point87* %0 to i8* + %6 = bitcast %struct.point87* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, %struct.point88* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point88* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point88* %0 to i8* + %6 = bitcast %struct.point88* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, %struct.point89* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point89* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point89* %0 to i8* + %6 = bitcast %struct.point89* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, %struct.point90* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point90* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point90* %0 to i8* + %6 = bitcast %struct.point90* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, %struct.point91* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point91* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point91* %0 to i8* + %6 = bitcast %struct.point91* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, %struct.point92* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point92* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point92* %0 to i8* + %6 = bitcast %struct.point92* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, %struct.point93* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point93* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point93* %0 to i8* + %6 = bitcast %struct.point93* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, %struct.point94* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point94* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point94* %0 to i8* + %6 = bitcast %struct.point94* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, %struct.point95* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point95* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point95* %0 to i8* + %6 = bitcast %struct.point95* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, %struct.point96* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point96* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point96* %0 to i8* + %6 = bitcast %struct.point96* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, %struct.point97* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point97* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point97* %0 to i8* + %6 = bitcast %struct.point97* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, %struct.point98* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point98* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point98* %0 to i8* + %6 = bitcast %struct.point98* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, %struct.point99* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point99* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point99* %0 to i8* + %6 = bitcast %struct.point99* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, %struct.point100* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point100* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point100* %0 to i8* + %6 = bitcast %struct.point100* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, %struct.point101* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point101* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point101* %0 to i8* + %6 = bitcast %struct.point101* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, %struct.point102* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point102* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point102* %0 to i8* + %6 = bitcast %struct.point102* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, %struct.point103* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point103* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point103* %0 to i8* + %6 = bitcast %struct.point103* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, %struct.point104* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point104* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point104* %0 to i8* + %6 = bitcast %struct.point104* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, %struct.point105* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point105* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point105* %0 to i8* + %6 = bitcast %struct.point105* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo106([2 x i32] %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point106* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, %struct.point107* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point107* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point107* %0 to i8* + %6 = bitcast %struct.point107* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, %struct.point108* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point108* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point108* %0 to i8* + %6 = bitcast %struct.point108* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, %struct.point109* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point109* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point109* %0 to i8* + %6 = bitcast %struct.point109* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, %struct.point110* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point110* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point110* %0 to i8* + %6 = bitcast %struct.point110* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, %struct.point111* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point111* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point111* %0 to i8* + %6 = bitcast %struct.point111* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, %struct.point112* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point112* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point112* %0 to i8* + %6 = bitcast %struct.point112* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, %struct.point113* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point113* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point113* %0 to i8* + %6 = bitcast %struct.point113* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, %struct.point114* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point114* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point114* %0 to i8* + %6 = bitcast %struct.point114* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, %struct.point115* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point115* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point115* %0 to i8* + %6 = bitcast %struct.point115* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, %struct.point116* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point116* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point116* %0 to i8* + %6 = bitcast %struct.point116* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, %struct.point117* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point117* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point117* %0 to i8* + %6 = bitcast %struct.point117* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, %struct.point118* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point118* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point118* %0 to i8* + %6 = bitcast %struct.point118* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, %struct.point119* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point119* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point119* %0 to i8* + %6 = bitcast %struct.point119* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, %struct.point120* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point120* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point120* %0 to i8* + %6 = bitcast %struct.point120* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, %struct.point121* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point121* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point121* %0 to i8* + %6 = bitcast %struct.point121* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, %struct.point122* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point122* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point122* %0 to i8* + %6 = bitcast %struct.point122* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, %struct.point123* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point123* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point123* %0 to i8* + %6 = bitcast %struct.point123* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, %struct.point124* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point124* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point124* %0 to i8* + %6 = bitcast %struct.point124* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, %struct.point125* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point125* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point125* %0 to i8* + %6 = bitcast %struct.point125* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, %struct.point126* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point126* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point126* %0 to i8* + %6 = bitcast %struct.point126* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, %struct.point127* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point127* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point127* %0 to i8* + %6 = bitcast %struct.point127* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, %struct.point128* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point128* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point128* %0 to i8* + %6 = bitcast %struct.point128* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, %struct.point129* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point129* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point129* %0 to i8* + %6 = bitcast %struct.point129* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, %struct.point130* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point130* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point130* %0 to i8* + %6 = bitcast %struct.point130* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, %struct.point131* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point131* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point131* %0 to i8* + %6 = bitcast %struct.point131* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, %struct.point132* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point132* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point132* %0 to i8* + %6 = bitcast %struct.point132* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, %struct.point133* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point133* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point133* %0 to i8* + %6 = bitcast %struct.point133* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, %struct.point134* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point134* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point134* %0 to i8* + %6 = bitcast %struct.point134* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, %struct.point135* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point135* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point135* %0 to i8* + %6 = bitcast %struct.point135* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, %struct.point136* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point136* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point136* %0 to i8* + %6 = bitcast %struct.point136* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, %struct.point137* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point137* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point137* %0 to i8* + %6 = bitcast %struct.point137* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, %struct.point138* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point138* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point138* %0 to i8* + %6 = bitcast %struct.point138* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, %struct.point143* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point143* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point143* %0 to i8* + %6 = bitcast %struct.point143* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, %struct.point148* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point148* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point148* %0 to i8* + %6 = bitcast %struct.point148* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, %struct.point149* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point149* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point149* %0 to i8* + %6 = bitcast %struct.point149* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, %struct.point150* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point150* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point150* %0 to i8* + %6 = bitcast %struct.point150* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, %struct.point151* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point151* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point151* %0 to i8* + %6 = bitcast %struct.point151* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, %struct.point152* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point152* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point152* %0 to i8* + %6 = bitcast %struct.point152* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, %struct.point153* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point153* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point153* %0 to i8* + %6 = bitcast %struct.point153* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, %struct.point154* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point154* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point154* %0 to i8* + %6 = bitcast %struct.point154* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, %struct.point155* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point155* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point155* %0 to i8* + %6 = bitcast %struct.point155* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, %struct.point156* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point156* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point156* %0 to i8* + %6 = bitcast %struct.point156* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, %struct.point157* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point157* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point157* %0 to i8* + %6 = bitcast %struct.point157* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, %struct.point158* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point158* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point158* %0 to i8* + %6 = bitcast %struct.point158* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, %struct.point159* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point159* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point159* %0 to i8* + %6 = bitcast %struct.point159* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, %struct.point164* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point164* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point164* %0 to i8* + %6 = bitcast %struct.point164* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, %struct.point169* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point169* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point169* %0 to i8* + %6 = bitcast %struct.point169* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, %struct.point170* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point170* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point170* %0 to i8* + %6 = bitcast %struct.point170* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, %struct.point171* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point171* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point171* %0 to i8* + %6 = bitcast %struct.point171* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, %struct.point172* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point172* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point172* %0 to i8* + %6 = bitcast %struct.point172* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, %struct.point175* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point175* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point175* %0 to i8* + %6 = bitcast %struct.point175* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, %struct.point176* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point176* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point176* %0 to i8* + %6 = bitcast %struct.point176* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, %struct.point177* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point177* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point177* %0 to i8* + %6 = bitcast %struct.point177* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, %struct.point180* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point180* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point180* %0 to i8* + %6 = bitcast %struct.point180* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, %struct.point185* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point185* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point185* %0 to i8* + %6 = bitcast %struct.point185* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, %struct.point190* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point190* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point190* %0 to i8* + %6 = bitcast %struct.point190* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, %struct.point191* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point191* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point191* %0 to i8* + %6 = bitcast %struct.point191* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, %struct.point192* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point192* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point192* %0 to i8* + %6 = bitcast %struct.point192* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, %struct.point193* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point193* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point193* %0 to i8* + %6 = bitcast %struct.point193* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, %struct.point196* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point196* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point196* %0 to i8* + %6 = bitcast %struct.point196* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, %struct.point197* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point197* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point197* %0 to i8* + %6 = bitcast %struct.point197* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, %struct.point198* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point198* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point198* %0 to i8* + %6 = bitcast %struct.point198* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, %struct.point201* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point201* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point201* %0 to i8* + %6 = bitcast %struct.point201* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, %struct.point206* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point206* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point206* %0 to i8* + %6 = bitcast %struct.point206* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, %struct.point211* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point211* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point211* %0 to i8* + %6 = bitcast %struct.point211* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, %struct.point212* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point212* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point212* %0 to i8* + %6 = bitcast %struct.point212* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, %struct.point213* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point213* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point213* %0 to i8* + %6 = bitcast %struct.point213* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, %struct.point214* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point214* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point214* %0 to i8* + %6 = bitcast %struct.point214* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, %struct.point215* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point215* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point215* %0 to i8* + %6 = bitcast %struct.point215* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, %struct.point216* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point216* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point216* %0 to i8* + %6 = bitcast %struct.point216* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, %struct.point217* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point217* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point217* %0 to i8* + %6 = bitcast %struct.point217* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, %struct.point218* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point218* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point218* %0 to i8* + %6 = bitcast %struct.point218* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, %struct.point219* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point219* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point219* %0 to i8* + %6 = bitcast %struct.point219* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, %struct.point220* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point220* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point220* %0 to i8* + %6 = bitcast %struct.point220* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, %struct.point221* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point221* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point221* %0 to i8* + %6 = bitcast %struct.point221* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, %struct.point222* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point222* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point222* %0 to i8* + %6 = bitcast %struct.point222* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, %struct.point227* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point227* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point227* %0 to i8* + %6 = bitcast %struct.point227* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, %struct.point232* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point232* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point232* %0 to i8* + %6 = bitcast %struct.point232* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, %struct.point233* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point233* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point233* %0 to i8* + %6 = bitcast %struct.point233* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, %struct.point234* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point234* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point234* %0 to i8* + %6 = bitcast %struct.point234* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, %struct.point235* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point235* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point235* %0 to i8* + %6 = bitcast %struct.point235* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, %struct.point236* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point236* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point236* %0 to i8* + %6 = bitcast %struct.point236* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, %struct.point237* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point237* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point237* %0 to i8* + %6 = bitcast %struct.point237* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, %struct.point238* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point238* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point238* %0 to i8* + %6 = bitcast %struct.point238* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, %struct.point239* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point239* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point239* %0 to i8* + %6 = bitcast %struct.point239* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, %struct.point240* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point240* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point240* %0 to i8* + %6 = bitcast %struct.point240* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, %struct.point241* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point241* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point241* %0 to i8* + %6 = bitcast %struct.point241* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, %struct.point242* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point242* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point242* %0 to i8* + %6 = bitcast %struct.point242* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, %struct.point243* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point243* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point243* %0 to i8* + %6 = bitcast %struct.point243* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, %struct.point248* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point248* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point248* %0 to i8* + %6 = bitcast %struct.point248* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, %struct.point253* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point253* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point253* %0 to i8* + %6 = bitcast %struct.point253* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, %struct.point254* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point254* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point254* %0 to i8* + %6 = bitcast %struct.point254* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, %struct.point255* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point255* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point255* %0 to i8* + %6 = bitcast %struct.point255* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, %struct.point256* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point256* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point256* %0 to i8* + %6 = bitcast %struct.point256* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, %struct.point259* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point259* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point259* %0 to i8* + %6 = bitcast %struct.point259* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, %struct.point260* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point260* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point260* %0 to i8* + %6 = bitcast %struct.point260* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, %struct.point261* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point261* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point261* %0 to i8* + %6 = bitcast %struct.point261* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, %struct.point264* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point264* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point264* %0 to i8* + %6 = bitcast %struct.point264* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, %struct.point269* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point269* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point269* %0 to i8* + %6 = bitcast %struct.point269* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, %struct.point274* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point274* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point274* %0 to i8* + %6 = bitcast %struct.point274* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, %struct.point275* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point275* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point275* %0 to i8* + %6 = bitcast %struct.point275* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, %struct.point276* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point276* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point276* %0 to i8* + %6 = bitcast %struct.point276* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, %struct.point277* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point277* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point277* %0 to i8* + %6 = bitcast %struct.point277* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, %struct.point280* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point280* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point280* %0 to i8* + %6 = bitcast %struct.point280* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, %struct.point281* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point281* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point281* %0 to i8* + %6 = bitcast %struct.point281* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, %struct.point282* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point282* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point282* %0 to i8* + %6 = bitcast %struct.point282* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, %struct.point285* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point285* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point285* %0 to i8* + %6 = bitcast %struct.point285* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, %struct.point290* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point290* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point290* %0 to i8* + %6 = bitcast %struct.point290* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo295(i32 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = bitcast %struct.point295* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point295* %2 to i8* + %6 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point295* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point298* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point298* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, %struct.point299* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point299* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point299* %0 to i8* + %6 = bitcast %struct.point299* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, %struct.point300* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point300* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point300* %0 to i8* + %6 = bitcast %struct.point300* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point302* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point302* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point303* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point303* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, %struct.point304* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point304* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point304* %0 to i8* + %6 = bitcast %struct.point304* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, %struct.point305* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point305* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point305* %0 to i8* + %6 = bitcast %struct.point305* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo306([2 x i32] %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point306* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, %struct.point307* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point307* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point307* %0 to i8* + %6 = bitcast %struct.point307* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, %struct.point308* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point308* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point308* %0 to i8* + %6 = bitcast %struct.point308* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, %struct.point309* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point309* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point309* %0 to i8* + %6 = bitcast %struct.point309* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, %struct.point310* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point310* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point310* %0 to i8* + %6 = bitcast %struct.point310* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo311([2 x i32] %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point311* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, %struct.point312* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point312* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point312* %0 to i8* + %6 = bitcast %struct.point312* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, %struct.point313* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point313* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point313* %0 to i8* + %6 = bitcast %struct.point313* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, %struct.point314* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point314* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point314* %0 to i8* + %6 = bitcast %struct.point314* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, %struct.point315* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point315* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point315* %0 to i8* + %6 = bitcast %struct.point315* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point317* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point317* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point318* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point318* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, %struct.point319* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point319* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point319* %0 to i8* + %6 = bitcast %struct.point319* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, %struct.point320* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point320* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point320* %0 to i8* + %6 = bitcast %struct.point320* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, %struct.point321* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point321* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point321* %0 to i8* + %6 = bitcast %struct.point321* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo322([2 x i32] %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point322* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, %struct.point323* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point323* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point323* %0 to i8* + %6 = bitcast %struct.point323* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, %struct.point324* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point324* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point324* %0 to i8* + %6 = bitcast %struct.point324* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, %struct.point325* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point325* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point325* %0 to i8* + %6 = bitcast %struct.point325* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, %struct.point326* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point326* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point326* %0 to i8* + %6 = bitcast %struct.point326* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, %struct.point327* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point327* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point327* %0 to i8* + %6 = bitcast %struct.point327* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, %struct.point328* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point328* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point328* %0 to i8* + %6 = bitcast %struct.point328* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, %struct.point329* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point329* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point329* %0 to i8* + %6 = bitcast %struct.point329* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, %struct.point330* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point330* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point330* %0 to i8* + %6 = bitcast %struct.point330* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, %struct.point331* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point331* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point331* %0 to i8* + %6 = bitcast %struct.point331* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, %struct.point332* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point332* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point332* %0 to i8* + %6 = bitcast %struct.point332* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, %struct.point333* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point333* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point333* %0 to i8* + %6 = bitcast %struct.point333* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, %struct.point334* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point334* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point334* %0 to i8* + %6 = bitcast %struct.point334* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, %struct.point335* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point335* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point335* %0 to i8* + %6 = bitcast %struct.point335* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, %struct.point336* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point336* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point336* %0 to i8* + %6 = bitcast %struct.point336* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo337([2 x i32] %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point337* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, %struct.point338* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point338* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point338* %0 to i8* + %6 = bitcast %struct.point338* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, %struct.point339* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point339* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point339* %0 to i8* + %6 = bitcast %struct.point339* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, %struct.point340* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point340* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point340* %0 to i8* + %6 = bitcast %struct.point340* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, %struct.point341* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point341* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point341* %0 to i8* + %6 = bitcast %struct.point341* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, %struct.point342* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point342* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point342* %0 to i8* + %6 = bitcast %struct.point342* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, %struct.point343* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point343* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point343* %0 to i8* + %6 = bitcast %struct.point343* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, %struct.point344* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point344* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point344* %0 to i8* + %6 = bitcast %struct.point344* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, %struct.point345* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point345* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point345* %0 to i8* + %6 = bitcast %struct.point345* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, %struct.point346* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point346* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point346* %0 to i8* + %6 = bitcast %struct.point346* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, %struct.point347* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point347* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point347* %0 to i8* + %6 = bitcast %struct.point347* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, %struct.point348* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point348* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point348* %0 to i8* + %6 = bitcast %struct.point348* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, %struct.point349* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point349* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point349* %0 to i8* + %6 = bitcast %struct.point349* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, %struct.point350* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point350* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point350* %0 to i8* + %6 = bitcast %struct.point350* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, %struct.point351* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point351* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point351* %0 to i8* + %6 = bitcast %struct.point351* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, %struct.point352* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point352* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point352* %0 to i8* + %6 = bitcast %struct.point352* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, %struct.point353* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point353* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point353* %0 to i8* + %6 = bitcast %struct.point353* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, %struct.point354* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point354* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point354* %0 to i8* + %6 = bitcast %struct.point354* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, %struct.point355* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point355* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point355* %0 to i8* + %6 = bitcast %struct.point355* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, %struct.point356* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point356* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point356* %0 to i8* + %6 = bitcast %struct.point356* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, %struct.point357* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point357* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point357* %0 to i8* + %6 = bitcast %struct.point357* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo358([2 x i32] %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point358* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, %struct.point359* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point359* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point359* %0 to i8* + %6 = bitcast %struct.point359* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, %struct.point360* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point360* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point360* %0 to i8* + %6 = bitcast %struct.point360* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, %struct.point361* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point361* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point361* %0 to i8* + %6 = bitcast %struct.point361* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, %struct.point362* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point362* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point362* %0 to i8* + %6 = bitcast %struct.point362* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, %struct.point363* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point363* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point363* %0 to i8* + %6 = bitcast %struct.point363* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, %struct.point364* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point364* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point364* %0 to i8* + %6 = bitcast %struct.point364* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, %struct.point365* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point365* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point365* %0 to i8* + %6 = bitcast %struct.point365* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, %struct.point366* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point366* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point366* %0 to i8* + %6 = bitcast %struct.point366* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, %struct.point367* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point367* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point367* %0 to i8* + %6 = bitcast %struct.point367* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, %struct.point368* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point368* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point368* %0 to i8* + %6 = bitcast %struct.point368* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, %struct.point369* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point369* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point369* %0 to i8* + %6 = bitcast %struct.point369* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, %struct.point370* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point370* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point370* %0 to i8* + %6 = bitcast %struct.point370* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, %struct.point371* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point371* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point371* %0 to i8* + %6 = bitcast %struct.point371* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, %struct.point372* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point372* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point372* %0 to i8* + %6 = bitcast %struct.point372* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, %struct.point373* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point373* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point373* %0 to i8* + %6 = bitcast %struct.point373* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, %struct.point374* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point374* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point374* %0 to i8* + %6 = bitcast %struct.point374* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, %struct.point375* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point375* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point375* %0 to i8* + %6 = bitcast %struct.point375* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, %struct.point376* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point376* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point376* %0 to i8* + %6 = bitcast %struct.point376* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, %struct.point377* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point377* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point377* %0 to i8* + %6 = bitcast %struct.point377* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, %struct.point378* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point378* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point378* %0 to i8* + %6 = bitcast %struct.point378* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, %struct.point379* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point379* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point379* %0 to i8* + %6 = bitcast %struct.point379* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, %struct.point380* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point380* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point380* %0 to i8* + %6 = bitcast %struct.point380* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, %struct.point381* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point381* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point381* %0 to i8* + %6 = bitcast %struct.point381* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, %struct.point382* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point382* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point382* %0 to i8* + %6 = bitcast %struct.point382* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, %struct.point383* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point383* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point383* %0 to i8* + %6 = bitcast %struct.point383* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, %struct.point384* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point384* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point384* %0 to i8* + %6 = bitcast %struct.point384* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, %struct.point385* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point385* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point385* %0 to i8* + %6 = bitcast %struct.point385* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, %struct.point386* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point386* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point386* %0 to i8* + %6 = bitcast %struct.point386* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, %struct.point387* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point387* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point387* %0 to i8* + %6 = bitcast %struct.point387* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, %struct.point388* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point388* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point388* %0 to i8* + %6 = bitcast %struct.point388* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, %struct.point389* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point389* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point389* %0 to i8* + %6 = bitcast %struct.point389* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, %struct.point390* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point390* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point390* %0 to i8* + %6 = bitcast %struct.point390* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, %struct.point395* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point395* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point395* %0 to i8* + %6 = bitcast %struct.point395* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, %struct.point400* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point400* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point400* %0 to i8* + %6 = bitcast %struct.point400* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, %struct.point401* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point401* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point401* %0 to i8* + %6 = bitcast %struct.point401* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, %struct.point402* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point402* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point402* %0 to i8* + %6 = bitcast %struct.point402* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, %struct.point403* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point403* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point403* %0 to i8* + %6 = bitcast %struct.point403* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, %struct.point404* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point404* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point404* %0 to i8* + %6 = bitcast %struct.point404* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, %struct.point405* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point405* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point405* %0 to i8* + %6 = bitcast %struct.point405* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, %struct.point406* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point406* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point406* %0 to i8* + %6 = bitcast %struct.point406* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, %struct.point407* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point407* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point407* %0 to i8* + %6 = bitcast %struct.point407* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, %struct.point408* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point408* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point408* %0 to i8* + %6 = bitcast %struct.point408* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, %struct.point409* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point409* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point409* %0 to i8* + %6 = bitcast %struct.point409* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, %struct.point410* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point410* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point410* %0 to i8* + %6 = bitcast %struct.point410* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, %struct.point411* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point411* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point411* %0 to i8* + %6 = bitcast %struct.point411* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, %struct.point416* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point416* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point416* %0 to i8* + %6 = bitcast %struct.point416* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, %struct.point421* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point421* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point421* %0 to i8* + %6 = bitcast %struct.point421* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, %struct.point422* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point422* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point422* %0 to i8* + %6 = bitcast %struct.point422* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, %struct.point423* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point423* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point423* %0 to i8* + %6 = bitcast %struct.point423* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, %struct.point424* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point424* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point424* %0 to i8* + %6 = bitcast %struct.point424* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, %struct.point427* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point427* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point427* %0 to i8* + %6 = bitcast %struct.point427* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, %struct.point428* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point428* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point428* %0 to i8* + %6 = bitcast %struct.point428* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, %struct.point429* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point429* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point429* %0 to i8* + %6 = bitcast %struct.point429* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, %struct.point432* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point432* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point432* %0 to i8* + %6 = bitcast %struct.point432* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, %struct.point437* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point437* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point437* %0 to i8* + %6 = bitcast %struct.point437* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, %struct.point442* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point442* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point442* %0 to i8* + %6 = bitcast %struct.point442* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, %struct.point443* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point443* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point443* %0 to i8* + %6 = bitcast %struct.point443* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, %struct.point444* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point444* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point444* %0 to i8* + %6 = bitcast %struct.point444* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, %struct.point445* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point445* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point445* %0 to i8* + %6 = bitcast %struct.point445* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, %struct.point448* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point448* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point448* %0 to i8* + %6 = bitcast %struct.point448* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, %struct.point449* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point449* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point449* %0 to i8* + %6 = bitcast %struct.point449* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, %struct.point450* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point450* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point450* %0 to i8* + %6 = bitcast %struct.point450* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, %struct.point453* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point453* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point453* %0 to i8* + %6 = bitcast %struct.point453* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, %struct.point458* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point458* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point458* %0 to i8* + %6 = bitcast %struct.point458* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, %struct.point463* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point463* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point463* %0 to i8* + %6 = bitcast %struct.point463* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, %struct.point464* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point464* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point464* %0 to i8* + %6 = bitcast %struct.point464* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, %struct.point465* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point465* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point465* %0 to i8* + %6 = bitcast %struct.point465* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, %struct.point466* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point466* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point466* %0 to i8* + %6 = bitcast %struct.point466* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, %struct.point467* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point467* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point467* %0 to i8* + %6 = bitcast %struct.point467* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, %struct.point468* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point468* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point468* %0 to i8* + %6 = bitcast %struct.point468* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, %struct.point469* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point469* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point469* %0 to i8* + %6 = bitcast %struct.point469* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, %struct.point470* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point470* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point470* %0 to i8* + %6 = bitcast %struct.point470* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, %struct.point471* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point471* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point471* %0 to i8* + %6 = bitcast %struct.point471* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, %struct.point472* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point472* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point472* %0 to i8* + %6 = bitcast %struct.point472* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, %struct.point473* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point473* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point473* %0 to i8* + %6 = bitcast %struct.point473* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, %struct.point474* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point474* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point474* %0 to i8* + %6 = bitcast %struct.point474* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, %struct.point479* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point479* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point479* %0 to i8* + %6 = bitcast %struct.point479* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, %struct.point484* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point484* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point484* %0 to i8* + %6 = bitcast %struct.point484* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, %struct.point485* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point485* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point485* %0 to i8* + %6 = bitcast %struct.point485* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, %struct.point486* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point486* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point486* %0 to i8* + %6 = bitcast %struct.point486* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, %struct.point487* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point487* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point487* %0 to i8* + %6 = bitcast %struct.point487* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, %struct.point488* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point488* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point488* %0 to i8* + %6 = bitcast %struct.point488* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, %struct.point489* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point489* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point489* %0 to i8* + %6 = bitcast %struct.point489* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, %struct.point490* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point490* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point490* %0 to i8* + %6 = bitcast %struct.point490* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, %struct.point491* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point491* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point491* %0 to i8* + %6 = bitcast %struct.point491* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, %struct.point492* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point492* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point492* %0 to i8* + %6 = bitcast %struct.point492* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, %struct.point493* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point493* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point493* %0 to i8* + %6 = bitcast %struct.point493* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, %struct.point494* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point494* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point494* %0 to i8* + %6 = bitcast %struct.point494* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, %struct.point495* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point495* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point495* %0 to i8* + %6 = bitcast %struct.point495* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, %struct.point500* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point500* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point500* %0 to i8* + %6 = bitcast %struct.point500* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, %struct.point505* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point505* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point505* %0 to i8* + %6 = bitcast %struct.point505* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, %struct.point506* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point506* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point506* %0 to i8* + %6 = bitcast %struct.point506* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, %struct.point507* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point507* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point507* %0 to i8* + %6 = bitcast %struct.point507* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, %struct.point508* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point508* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point508* %0 to i8* + %6 = bitcast %struct.point508* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, %struct.point511* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point511* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point511* %0 to i8* + %6 = bitcast %struct.point511* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, %struct.point512* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point512* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point512* %0 to i8* + %6 = bitcast %struct.point512* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, %struct.point513* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point513* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point513* %0 to i8* + %6 = bitcast %struct.point513* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, %struct.point516* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point516* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point516* %0 to i8* + %6 = bitcast %struct.point516* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, %struct.point521* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point521* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point521* %0 to i8* + %6 = bitcast %struct.point521* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, %struct.point526* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point526* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point526* %0 to i8* + %6 = bitcast %struct.point526* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, %struct.point527* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point527* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point527* %0 to i8* + %6 = bitcast %struct.point527* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, %struct.point528* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point528* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point528* %0 to i8* + %6 = bitcast %struct.point528* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, %struct.point529* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point529* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point529* %0 to i8* + %6 = bitcast %struct.point529* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, %struct.point532* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point532* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point532* %0 to i8* + %6 = bitcast %struct.point532* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, %struct.point533* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point533* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point533* %0 to i8* + %6 = bitcast %struct.point533* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, %struct.point534* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point534* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point534* %0 to i8* + %6 = bitcast %struct.point534* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, %struct.point537* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point537* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point537* %0 to i8* + %6 = bitcast %struct.point537* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, %struct.point542* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point542* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point542* %0 to i8* + %6 = bitcast %struct.point542* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo547([2 x i32] %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point547* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point548* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point548* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point549* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point549* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, %struct.point550* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point550* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point550* %0 to i8* + %6 = bitcast %struct.point550* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, %struct.point551* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point551* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point551* %0 to i8* + %6 = bitcast %struct.point551* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, %struct.point552* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point552* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point552* %0 to i8* + %6 = bitcast %struct.point552* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo553([2 x i32] %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point553* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, %struct.point554* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point554* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point554* %0 to i8* + %6 = bitcast %struct.point554* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, %struct.point555* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point555* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point555* %0 to i8* + %6 = bitcast %struct.point555* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, %struct.point556* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point556* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point556* %0 to i8* + %6 = bitcast %struct.point556* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, %struct.point557* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point557* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point557* %0 to i8* + %6 = bitcast %struct.point557* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, %struct.point558* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point558* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point558* %0 to i8* + %6 = bitcast %struct.point558* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, %struct.point559* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point559* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point559* %0 to i8* + %6 = bitcast %struct.point559* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, %struct.point560* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point560* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point560* %0 to i8* + %6 = bitcast %struct.point560* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, %struct.point561* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point561* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point561* %0 to i8* + %6 = bitcast %struct.point561* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, %struct.point562* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point562* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point562* %0 to i8* + %6 = bitcast %struct.point562* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, %struct.point563* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point563* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point563* %0 to i8* + %6 = bitcast %struct.point563* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, %struct.point564* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point564* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point564* %0 to i8* + %6 = bitcast %struct.point564* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, %struct.point565* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point565* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point565* %0 to i8* + %6 = bitcast %struct.point565* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, %struct.point566* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point566* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point566* %0 to i8* + %6 = bitcast %struct.point566* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, %struct.point567* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point567* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point567* %0 to i8* + %6 = bitcast %struct.point567* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo568([2 x i32] %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point568* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, %struct.point569* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point569* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point569* %0 to i8* + %6 = bitcast %struct.point569* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, %struct.point570* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point570* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point570* %0 to i8* + %6 = bitcast %struct.point570* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, %struct.point571* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point571* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point571* %0 to i8* + %6 = bitcast %struct.point571* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, %struct.point572* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point572* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point572* %0 to i8* + %6 = bitcast %struct.point572* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, %struct.point573* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point573* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point573* %0 to i8* + %6 = bitcast %struct.point573* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, %struct.point574* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point574* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point574* %0 to i8* + %6 = bitcast %struct.point574* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, %struct.point575* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point575* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point575* %0 to i8* + %6 = bitcast %struct.point575* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, %struct.point576* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point576* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point576* %0 to i8* + %6 = bitcast %struct.point576* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, %struct.point577* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point577* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point577* %0 to i8* + %6 = bitcast %struct.point577* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, %struct.point578* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point578* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point578* %0 to i8* + %6 = bitcast %struct.point578* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, %struct.point579* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point579* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point579* %0 to i8* + %6 = bitcast %struct.point579* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, %struct.point580* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point580* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point580* %0 to i8* + %6 = bitcast %struct.point580* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, %struct.point581* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point581* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point581* %0 to i8* + %6 = bitcast %struct.point581* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, %struct.point582* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point582* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point582* %0 to i8* + %6 = bitcast %struct.point582* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, %struct.point583* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point583* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point583* %0 to i8* + %6 = bitcast %struct.point583* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, %struct.point584* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point584* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point584* %0 to i8* + %6 = bitcast %struct.point584* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, %struct.point585* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point585* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point585* %0 to i8* + %6 = bitcast %struct.point585* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, %struct.point586* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point586* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point586* %0 to i8* + %6 = bitcast %struct.point586* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, %struct.point587* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point587* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point587* %0 to i8* + %6 = bitcast %struct.point587* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, %struct.point588* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point588* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point588* %0 to i8* + %6 = bitcast %struct.point588* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, %struct.point589* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point589* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point589* %0 to i8* + %6 = bitcast %struct.point589* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, %struct.point590* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point590* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point590* %0 to i8* + %6 = bitcast %struct.point590* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, %struct.point591* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point591* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point591* %0 to i8* + %6 = bitcast %struct.point591* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, %struct.point592* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point592* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point592* %0 to i8* + %6 = bitcast %struct.point592* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, %struct.point595* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point595* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point595* %0 to i8* + %6 = bitcast %struct.point595* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, %struct.point596* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point596* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point596* %0 to i8* + %6 = bitcast %struct.point596* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, %struct.point597* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point597* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point597* %0 to i8* + %6 = bitcast %struct.point597* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, %struct.point600* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point600* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point600* %0 to i8* + %6 = bitcast %struct.point600* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, %struct.point605* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point605* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point605* %0 to i8* + %6 = bitcast %struct.point605* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, %struct.point610* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point610* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point610* %0 to i8* + %6 = bitcast %struct.point610* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, %struct.point611* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point611* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point611* %0 to i8* + %6 = bitcast %struct.point611* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, %struct.point612* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point612* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point612* %0 to i8* + %6 = bitcast %struct.point612* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, %struct.point613* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point613* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point613* %0 to i8* + %6 = bitcast %struct.point613* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, %struct.point616* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point616* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point616* %0 to i8* + %6 = bitcast %struct.point616* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, %struct.point617* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point617* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point617* %0 to i8* + %6 = bitcast %struct.point617* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, %struct.point618* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point618* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point618* %0 to i8* + %6 = bitcast %struct.point618* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, %struct.point621* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point621* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point621* %0 to i8* + %6 = bitcast %struct.point621* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, %struct.point626* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point626* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point626* %0 to i8* + %6 = bitcast %struct.point626* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo631([2 x i32] %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point631* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point632* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point632* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, %struct.point633* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point633* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point633* %0 to i8* + %6 = bitcast %struct.point633* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, %struct.point634* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point634* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point634* %0 to i8* + %6 = bitcast %struct.point634* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, %struct.point635* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point635* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point635* %0 to i8* + %6 = bitcast %struct.point635* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, %struct.point636* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point636* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point636* %0 to i8* + %6 = bitcast %struct.point636* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, %struct.point637* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point637* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point637* %0 to i8* + %6 = bitcast %struct.point637* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, %struct.point638* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point638* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point638* %0 to i8* + %6 = bitcast %struct.point638* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, %struct.point639* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point639* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point639* %0 to i8* + %6 = bitcast %struct.point639* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, %struct.point640* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point640* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point640* %0 to i8* + %6 = bitcast %struct.point640* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, %struct.point641* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point641* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point641* %0 to i8* + %6 = bitcast %struct.point641* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, %struct.point642* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point642* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point642* %0 to i8* + %6 = bitcast %struct.point642* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, %struct.point643* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point643* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point643* %0 to i8* + %6 = bitcast %struct.point643* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, %struct.point644* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point644* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point644* %0 to i8* + %6 = bitcast %struct.point644* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, %struct.point645* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point645* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point645* %0 to i8* + %6 = bitcast %struct.point645* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, %struct.point646* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point646* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point646* %0 to i8* + %6 = bitcast %struct.point646* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, %struct.point647* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point647* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point647* %0 to i8* + %6 = bitcast %struct.point647* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, %struct.point648* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point648* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point648* %0 to i8* + %6 = bitcast %struct.point648* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, %struct.point649* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point649* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point649* %0 to i8* + %6 = bitcast %struct.point649* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, %struct.point650* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point650* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point650* %0 to i8* + %6 = bitcast %struct.point650* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, %struct.point651* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point651* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point651* %0 to i8* + %6 = bitcast %struct.point651* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo652([2 x i32] %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point652* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, %struct.point653* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point653* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point653* %0 to i8* + %6 = bitcast %struct.point653* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, %struct.point654* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point654* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point654* %0 to i8* + %6 = bitcast %struct.point654* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, %struct.point655* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point655* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point655* %0 to i8* + %6 = bitcast %struct.point655* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, %struct.point656* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point656* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point656* %0 to i8* + %6 = bitcast %struct.point656* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, %struct.point657* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point657* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point657* %0 to i8* + %6 = bitcast %struct.point657* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, %struct.point658* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point658* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point658* %0 to i8* + %6 = bitcast %struct.point658* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, %struct.point659* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point659* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point659* %0 to i8* + %6 = bitcast %struct.point659* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, %struct.point660* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point660* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point660* %0 to i8* + %6 = bitcast %struct.point660* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, %struct.point661* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point661* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point661* %0 to i8* + %6 = bitcast %struct.point661* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, %struct.point662* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point662* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point662* %0 to i8* + %6 = bitcast %struct.point662* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, %struct.point663* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point663* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point663* %0 to i8* + %6 = bitcast %struct.point663* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, %struct.point664* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point664* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point664* %0 to i8* + %6 = bitcast %struct.point664* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, %struct.point665* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point665* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point665* %0 to i8* + %6 = bitcast %struct.point665* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, %struct.point666* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point666* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point666* %0 to i8* + %6 = bitcast %struct.point666* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, %struct.point667* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point667* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point667* %0 to i8* + %6 = bitcast %struct.point667* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, %struct.point668* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point668* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point668* %0 to i8* + %6 = bitcast %struct.point668* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, %struct.point669* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point669* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point669* %0 to i8* + %6 = bitcast %struct.point669* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, %struct.point670* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point670* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point670* %0 to i8* + %6 = bitcast %struct.point670* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, %struct.point671* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point671* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point671* %0 to i8* + %6 = bitcast %struct.point671* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, %struct.point672* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point672* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point672* %0 to i8* + %6 = bitcast %struct.point672* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, %struct.point673* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point673* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point673* %0 to i8* + %6 = bitcast %struct.point673* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, %struct.point674* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point674* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point674* %0 to i8* + %6 = bitcast %struct.point674* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, %struct.point675* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point675* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point675* %0 to i8* + %6 = bitcast %struct.point675* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, %struct.point676* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point676* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point676* %0 to i8* + %6 = bitcast %struct.point676* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, %struct.point679* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point679* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point679* %0 to i8* + %6 = bitcast %struct.point679* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, %struct.point680* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point680* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point680* %0 to i8* + %6 = bitcast %struct.point680* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, %struct.point681* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point681* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point681* %0 to i8* + %6 = bitcast %struct.point681* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, %struct.point684* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point684* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point684* %0 to i8* + %6 = bitcast %struct.point684* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, %struct.point689* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point689* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point689* %0 to i8* + %6 = bitcast %struct.point689* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, %struct.point694* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point694* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point694* %0 to i8* + %6 = bitcast %struct.point694* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, %struct.point695* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point695* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point695* %0 to i8* + %6 = bitcast %struct.point695* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, %struct.point696* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point696* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point696* %0 to i8* + %6 = bitcast %struct.point696* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, %struct.point697* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point697* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point697* %0 to i8* + %6 = bitcast %struct.point697* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, %struct.point700* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point700* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point700* %0 to i8* + %6 = bitcast %struct.point700* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, %struct.point701* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point701* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point701* %0 to i8* + %6 = bitcast %struct.point701* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, %struct.point702* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point702* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point702* %0 to i8* + %6 = bitcast %struct.point702* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, %struct.point705* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point705* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point705* %0 to i8* + %6 = bitcast %struct.point705* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, %struct.point710* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point710* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point710* %0 to i8* + %6 = bitcast %struct.point710* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, %struct.point715* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point715* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point715* %0 to i8* + %6 = bitcast %struct.point715* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, %struct.point716* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point716* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point716* %0 to i8* + %6 = bitcast %struct.point716* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, %struct.point717* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point717* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point717* %0 to i8* + %6 = bitcast %struct.point717* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, %struct.point718* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point718* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point718* %0 to i8* + %6 = bitcast %struct.point718* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, %struct.point719* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point719* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point719* %0 to i8* + %6 = bitcast %struct.point719* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, %struct.point720* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point720* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point720* %0 to i8* + %6 = bitcast %struct.point720* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, %struct.point721* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point721* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point721* %0 to i8* + %6 = bitcast %struct.point721* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, %struct.point722* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point722* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point722* %0 to i8* + %6 = bitcast %struct.point722* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, %struct.point723* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point723* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point723* %0 to i8* + %6 = bitcast %struct.point723* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, %struct.point724* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point724* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point724* %0 to i8* + %6 = bitcast %struct.point724* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, %struct.point725* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point725* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point725* %0 to i8* + %6 = bitcast %struct.point725* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, %struct.point726* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point726* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point726* %0 to i8* + %6 = bitcast %struct.point726* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, %struct.point731* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point731* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point731* %0 to i8* + %6 = bitcast %struct.point731* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, %struct.point736* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point736* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point736* %0 to i8* + %6 = bitcast %struct.point736* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, %struct.point737* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point737* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point737* %0 to i8* + %6 = bitcast %struct.point737* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, %struct.point738* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point738* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point738* %0 to i8* + %6 = bitcast %struct.point738* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, %struct.point739* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point739* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point739* %0 to i8* + %6 = bitcast %struct.point739* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, %struct.point740* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point740* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point740* %0 to i8* + %6 = bitcast %struct.point740* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, %struct.point741* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point741* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point741* %0 to i8* + %6 = bitcast %struct.point741* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, %struct.point742* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point742* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point742* %0 to i8* + %6 = bitcast %struct.point742* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, %struct.point743* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point743* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point743* %0 to i8* + %6 = bitcast %struct.point743* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, %struct.point744* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point744* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point744* %0 to i8* + %6 = bitcast %struct.point744* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, %struct.point745* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point745* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point745* %0 to i8* + %6 = bitcast %struct.point745* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, %struct.point746* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point746* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point746* %0 to i8* + %6 = bitcast %struct.point746* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, %struct.point747* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point747* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point747* %0 to i8* + %6 = bitcast %struct.point747* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, %struct.point752* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point752* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point752* %0 to i8* + %6 = bitcast %struct.point752* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, %struct.point757* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point757* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point757* %0 to i8* + %6 = bitcast %struct.point757* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, %struct.point758* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point758* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point758* %0 to i8* + %6 = bitcast %struct.point758* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, %struct.point759* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point759* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point759* %0 to i8* + %6 = bitcast %struct.point759* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, %struct.point760* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point760* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point760* %0 to i8* + %6 = bitcast %struct.point760* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, %struct.point763* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point763* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point763* %0 to i8* + %6 = bitcast %struct.point763* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, %struct.point764* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point764* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point764* %0 to i8* + %6 = bitcast %struct.point764* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, %struct.point765* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point765* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point765* %0 to i8* + %6 = bitcast %struct.point765* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, %struct.point768* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point768* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point768* %0 to i8* + %6 = bitcast %struct.point768* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, %struct.point773* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point773* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point773* %0 to i8* + %6 = bitcast %struct.point773* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, %struct.point778* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point778* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point778* %0 to i8* + %6 = bitcast %struct.point778* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, %struct.point779* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point779* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point779* %0 to i8* + %6 = bitcast %struct.point779* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, %struct.point780* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point780* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point780* %0 to i8* + %6 = bitcast %struct.point780* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, %struct.point781* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point781* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point781* %0 to i8* + %6 = bitcast %struct.point781* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, %struct.point784* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point784* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point784* %0 to i8* + %6 = bitcast %struct.point784* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, %struct.point785* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point785* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point785* %0 to i8* + %6 = bitcast %struct.point785* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, %struct.point786* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point786* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point786* %0 to i8* + %6 = bitcast %struct.point786* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, %struct.point789* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point789* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point789* %0 to i8* + %6 = bitcast %struct.point789* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, %struct.point794* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point794* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point794* %0 to i8* + %6 = bitcast %struct.point794* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo799([2 x i32] %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point799* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point800* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point800* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point801* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point801* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, %struct.point802* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point802* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point802* %0 to i8* + %6 = bitcast %struct.point802* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, %struct.point803* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point803* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point803* %0 to i8* + %6 = bitcast %struct.point803* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, %struct.point804* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point804* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point804* %0 to i8* + %6 = bitcast %struct.point804* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo805([2 x i32] %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point805* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, %struct.point806* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point806* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point806* %0 to i8* + %6 = bitcast %struct.point806* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, %struct.point807* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point807* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point807* %0 to i8* + %6 = bitcast %struct.point807* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, %struct.point808* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point808* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point808* %0 to i8* + %6 = bitcast %struct.point808* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, %struct.point809* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point809* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point809* %0 to i8* + %6 = bitcast %struct.point809* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, %struct.point810* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point810* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point810* %0 to i8* + %6 = bitcast %struct.point810* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, %struct.point811* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point811* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point811* %0 to i8* + %6 = bitcast %struct.point811* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, %struct.point812* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point812* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point812* %0 to i8* + %6 = bitcast %struct.point812* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, %struct.point813* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point813* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point813* %0 to i8* + %6 = bitcast %struct.point813* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, %struct.point814* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point814* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point814* %0 to i8* + %6 = bitcast %struct.point814* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, %struct.point815* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point815* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point815* %0 to i8* + %6 = bitcast %struct.point815* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, %struct.point816* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point816* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point816* %0 to i8* + %6 = bitcast %struct.point816* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, %struct.point817* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point817* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point817* %0 to i8* + %6 = bitcast %struct.point817* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, %struct.point818* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point818* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point818* %0 to i8* + %6 = bitcast %struct.point818* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, %struct.point819* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point819* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point819* %0 to i8* + %6 = bitcast %struct.point819* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo820([2 x i32] %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point820* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, %struct.point821* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point821* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point821* %0 to i8* + %6 = bitcast %struct.point821* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, %struct.point822* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point822* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point822* %0 to i8* + %6 = bitcast %struct.point822* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, %struct.point823* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point823* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point823* %0 to i8* + %6 = bitcast %struct.point823* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, %struct.point824* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point824* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point824* %0 to i8* + %6 = bitcast %struct.point824* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, %struct.point825* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point825* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point825* %0 to i8* + %6 = bitcast %struct.point825* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, %struct.point826* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point826* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point826* %0 to i8* + %6 = bitcast %struct.point826* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, %struct.point827* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point827* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point827* %0 to i8* + %6 = bitcast %struct.point827* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, %struct.point828* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point828* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point828* %0 to i8* + %6 = bitcast %struct.point828* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, %struct.point829* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point829* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point829* %0 to i8* + %6 = bitcast %struct.point829* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, %struct.point830* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point830* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point830* %0 to i8* + %6 = bitcast %struct.point830* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, %struct.point831* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point831* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point831* %0 to i8* + %6 = bitcast %struct.point831* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, %struct.point832* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point832* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point832* %0 to i8* + %6 = bitcast %struct.point832* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, %struct.point833* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point833* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point833* %0 to i8* + %6 = bitcast %struct.point833* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, %struct.point834* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point834* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point834* %0 to i8* + %6 = bitcast %struct.point834* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, %struct.point835* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point835* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point835* %0 to i8* + %6 = bitcast %struct.point835* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, %struct.point836* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point836* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point836* %0 to i8* + %6 = bitcast %struct.point836* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, %struct.point837* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point837* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point837* %0 to i8* + %6 = bitcast %struct.point837* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, %struct.point838* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point838* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point838* %0 to i8* + %6 = bitcast %struct.point838* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, %struct.point839* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point839* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point839* %0 to i8* + %6 = bitcast %struct.point839* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, %struct.point840* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point840* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point840* %0 to i8* + %6 = bitcast %struct.point840* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, %struct.point841* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point841* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point841* %0 to i8* + %6 = bitcast %struct.point841* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, %struct.point842* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point842* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point842* %0 to i8* + %6 = bitcast %struct.point842* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, %struct.point843* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point843* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point843* %0 to i8* + %6 = bitcast %struct.point843* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, %struct.point844* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point844* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point844* %0 to i8* + %6 = bitcast %struct.point844* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, %struct.point847* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point847* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point847* %0 to i8* + %6 = bitcast %struct.point847* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, %struct.point848* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point848* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point848* %0 to i8* + %6 = bitcast %struct.point848* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, %struct.point849* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point849* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point849* %0 to i8* + %6 = bitcast %struct.point849* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, %struct.point852* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point852* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point852* %0 to i8* + %6 = bitcast %struct.point852* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, %struct.point857* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point857* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point857* %0 to i8* + %6 = bitcast %struct.point857* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, %struct.point862* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point862* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point862* %0 to i8* + %6 = bitcast %struct.point862* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, %struct.point863* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point863* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point863* %0 to i8* + %6 = bitcast %struct.point863* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, %struct.point864* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point864* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point864* %0 to i8* + %6 = bitcast %struct.point864* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, %struct.point865* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point865* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point865* %0 to i8* + %6 = bitcast %struct.point865* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, %struct.point868* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point868* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point868* %0 to i8* + %6 = bitcast %struct.point868* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, %struct.point869* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point869* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point869* %0 to i8* + %6 = bitcast %struct.point869* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, %struct.point870* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point870* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point870* %0 to i8* + %6 = bitcast %struct.point870* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, %struct.point873* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point873* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point873* %0 to i8* + %6 = bitcast %struct.point873* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, %struct.point878* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point878* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point878* %0 to i8* + %6 = bitcast %struct.point878* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo883([2 x i32] %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point883* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point884* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point884* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, %struct.point885* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point885* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point885* %0 to i8* + %6 = bitcast %struct.point885* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, %struct.point886* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point886* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point886* %0 to i8* + %6 = bitcast %struct.point886* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, %struct.point887* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point887* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point887* %0 to i8* + %6 = bitcast %struct.point887* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, %struct.point888* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point888* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point888* %0 to i8* + %6 = bitcast %struct.point888* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, %struct.point889* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point889* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point889* %0 to i8* + %6 = bitcast %struct.point889* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, %struct.point890* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point890* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point890* %0 to i8* + %6 = bitcast %struct.point890* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, %struct.point891* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point891* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point891* %0 to i8* + %6 = bitcast %struct.point891* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, %struct.point892* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point892* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point892* %0 to i8* + %6 = bitcast %struct.point892* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, %struct.point893* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point893* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point893* %0 to i8* + %6 = bitcast %struct.point893* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, %struct.point894* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point894* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point894* %0 to i8* + %6 = bitcast %struct.point894* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, %struct.point895* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point895* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point895* %0 to i8* + %6 = bitcast %struct.point895* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, %struct.point896* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point896* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point896* %0 to i8* + %6 = bitcast %struct.point896* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, %struct.point897* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point897* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point897* %0 to i8* + %6 = bitcast %struct.point897* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, %struct.point898* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point898* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point898* %0 to i8* + %6 = bitcast %struct.point898* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, %struct.point899* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point899* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point899* %0 to i8* + %6 = bitcast %struct.point899* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, %struct.point900* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point900* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point900* %0 to i8* + %6 = bitcast %struct.point900* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, %struct.point901* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point901* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point901* %0 to i8* + %6 = bitcast %struct.point901* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, %struct.point902* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point902* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point902* %0 to i8* + %6 = bitcast %struct.point902* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, %struct.point903* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point903* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point903* %0 to i8* + %6 = bitcast %struct.point903* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo904([2 x i32] %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point904* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, %struct.point905* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point905* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point905* %0 to i8* + %6 = bitcast %struct.point905* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, %struct.point906* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point906* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point906* %0 to i8* + %6 = bitcast %struct.point906* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, %struct.point907* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point907* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point907* %0 to i8* + %6 = bitcast %struct.point907* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, %struct.point908* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point908* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point908* %0 to i8* + %6 = bitcast %struct.point908* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, %struct.point909* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point909* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point909* %0 to i8* + %6 = bitcast %struct.point909* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, %struct.point910* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point910* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point910* %0 to i8* + %6 = bitcast %struct.point910* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, %struct.point911* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point911* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point911* %0 to i8* + %6 = bitcast %struct.point911* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, %struct.point912* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point912* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point912* %0 to i8* + %6 = bitcast %struct.point912* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, %struct.point913* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point913* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point913* %0 to i8* + %6 = bitcast %struct.point913* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, %struct.point914* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point914* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point914* %0 to i8* + %6 = bitcast %struct.point914* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, %struct.point915* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point915* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point915* %0 to i8* + %6 = bitcast %struct.point915* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, %struct.point916* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point916* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point916* %0 to i8* + %6 = bitcast %struct.point916* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, %struct.point917* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point917* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point917* %0 to i8* + %6 = bitcast %struct.point917* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, %struct.point918* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point918* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point918* %0 to i8* + %6 = bitcast %struct.point918* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, %struct.point919* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point919* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point919* %0 to i8* + %6 = bitcast %struct.point919* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, %struct.point920* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point920* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point920* %0 to i8* + %6 = bitcast %struct.point920* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, %struct.point921* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point921* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point921* %0 to i8* + %6 = bitcast %struct.point921* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, %struct.point922* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point922* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point922* %0 to i8* + %6 = bitcast %struct.point922* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, %struct.point923* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point923* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point923* %0 to i8* + %6 = bitcast %struct.point923* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, %struct.point924* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point924* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point924* %0 to i8* + %6 = bitcast %struct.point924* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, %struct.point925* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point925* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point925* %0 to i8* + %6 = bitcast %struct.point925* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, %struct.point926* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point926* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point926* %0 to i8* + %6 = bitcast %struct.point926* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, %struct.point927* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point927* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point927* %0 to i8* + %6 = bitcast %struct.point927* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, %struct.point928* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point928* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point928* %0 to i8* + %6 = bitcast %struct.point928* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, %struct.point931* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point931* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point931* %0 to i8* + %6 = bitcast %struct.point931* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, %struct.point932* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point932* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point932* %0 to i8* + %6 = bitcast %struct.point932* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, %struct.point933* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point933* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point933* %0 to i8* + %6 = bitcast %struct.point933* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, %struct.point936* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point936* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point936* %0 to i8* + %6 = bitcast %struct.point936* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, %struct.point941* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point941* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point941* %0 to i8* + %6 = bitcast %struct.point941* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, %struct.point946* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point946* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point946* %0 to i8* + %6 = bitcast %struct.point946* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, %struct.point947* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point947* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point947* %0 to i8* + %6 = bitcast %struct.point947* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, %struct.point948* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point948* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point948* %0 to i8* + %6 = bitcast %struct.point948* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, %struct.point949* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point949* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point949* %0 to i8* + %6 = bitcast %struct.point949* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, %struct.point952* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point952* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point952* %0 to i8* + %6 = bitcast %struct.point952* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, %struct.point953* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point953* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point953* %0 to i8* + %6 = bitcast %struct.point953* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, %struct.point954* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point954* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point954* %0 to i8* + %6 = bitcast %struct.point954* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, %struct.point957* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point957* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point957* %0 to i8* + %6 = bitcast %struct.point957* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, %struct.point962* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point962* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point962* %0 to i8* + %6 = bitcast %struct.point962* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, %struct.point967* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point967* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point967* %0 to i8* + %6 = bitcast %struct.point967* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, %struct.point968* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point968* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point968* %0 to i8* + %6 = bitcast %struct.point968* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, %struct.point969* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point969* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point969* %0 to i8* + %6 = bitcast %struct.point969* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, %struct.point970* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point970* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point970* %0 to i8* + %6 = bitcast %struct.point970* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, %struct.point971* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point971* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point971* %0 to i8* + %6 = bitcast %struct.point971* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, %struct.point972* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point972* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point972* %0 to i8* + %6 = bitcast %struct.point972* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, %struct.point973* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point973* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point973* %0 to i8* + %6 = bitcast %struct.point973* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, %struct.point974* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point974* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point974* %0 to i8* + %6 = bitcast %struct.point974* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, %struct.point975* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point975* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point975* %0 to i8* + %6 = bitcast %struct.point975* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, %struct.point976* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point976* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point976* %0 to i8* + %6 = bitcast %struct.point976* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, %struct.point977* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point977* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point977* %0 to i8* + %6 = bitcast %struct.point977* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, %struct.point978* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point978* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point978* %0 to i8* + %6 = bitcast %struct.point978* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, %struct.point983* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point983* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point983* %0 to i8* + %6 = bitcast %struct.point983* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, %struct.point988* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point988* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point988* %0 to i8* + %6 = bitcast %struct.point988* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, %struct.point989* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point989* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point989* %0 to i8* + %6 = bitcast %struct.point989* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, %struct.point990* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point990* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point990* %0 to i8* + %6 = bitcast %struct.point990* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, %struct.point991* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point991* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point991* %0 to i8* + %6 = bitcast %struct.point991* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, %struct.point992* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point992* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point992* %0 to i8* + %6 = bitcast %struct.point992* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, %struct.point993* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point993* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point993* %0 to i8* + %6 = bitcast %struct.point993* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, %struct.point994* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point994* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point994* %0 to i8* + %6 = bitcast %struct.point994* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, %struct.point995* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point995* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point995* %0 to i8* + %6 = bitcast %struct.point995* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, %struct.point996* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point996* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point996* %0 to i8* + %6 = bitcast %struct.point996* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, %struct.point997* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point997* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point997* %0 to i8* + %6 = bitcast %struct.point997* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, %struct.point998* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point998* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point998* %0 to i8* + %6 = bitcast %struct.point998* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, %struct.point999* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point999* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point999* %0 to i8* + %6 = bitcast %struct.point999* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, %struct.point1004* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1004* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1004* %0 to i8* + %6 = bitcast %struct.point1004* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, %struct.point1009* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1009* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1009* %0 to i8* + %6 = bitcast %struct.point1009* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, %struct.point1010* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1010* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1010* %0 to i8* + %6 = bitcast %struct.point1010* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, %struct.point1011* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1011* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1011* %0 to i8* + %6 = bitcast %struct.point1011* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, %struct.point1012* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1012* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1012* %0 to i8* + %6 = bitcast %struct.point1012* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, %struct.point1015* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1015* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1015* %0 to i8* + %6 = bitcast %struct.point1015* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, %struct.point1016* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1016* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1016* %0 to i8* + %6 = bitcast %struct.point1016* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, %struct.point1017* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1017* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1017* %0 to i8* + %6 = bitcast %struct.point1017* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, %struct.point1020* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1020* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1020* %0 to i8* + %6 = bitcast %struct.point1020* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, %struct.point1025* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1025* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1025* %0 to i8* + %6 = bitcast %struct.point1025* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, %struct.point1030* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1030* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1030* %0 to i8* + %6 = bitcast %struct.point1030* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, %struct.point1031* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1031* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1031* %0 to i8* + %6 = bitcast %struct.point1031* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, %struct.point1032* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1032* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1032* %0 to i8* + %6 = bitcast %struct.point1032* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, %struct.point1033* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1033* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1033* %0 to i8* + %6 = bitcast %struct.point1033* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, %struct.point1036* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1036* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1036* %0 to i8* + %6 = bitcast %struct.point1036* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, %struct.point1037* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1037* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1037* %0 to i8* + %6 = bitcast %struct.point1037* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, %struct.point1038* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1038* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1038* %0 to i8* + %6 = bitcast %struct.point1038* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, %struct.point1041* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1041* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1041* %0 to i8* + %6 = bitcast %struct.point1041* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, %struct.point1046* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1046* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1046* %0 to i8* + %6 = bitcast %struct.point1046* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32/struct_pointer.ll b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_pointer.ll new file mode 100644 index 00000000..22f1d8fa --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32/struct_pointer.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i32 %0 to i8* + store i8* %5, i8** %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 4 + %10 = ptrtoint i8* %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float32.ll new file mode 100644 index 00000000..f6956bbe --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float32.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = bitcast %struct.array1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = bitcast %struct.array1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = alloca %struct.array2, align 4 + %5 = bitcast %struct.array2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.array2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float64.ll new file mode 100644 index 00000000..b7eb7a0a --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_float64.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = bitcast %struct.array1* %3 to { double }* + %5 = getelementptr inbounds { double }, { double }* %4, i32 0, i32 0 + store double %0, double* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = bitcast %struct.array1* %2 to { double }* + %9 = getelementptr inbounds { double }, { double }* %8, i32 0, i32 0 + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.array2* %3 to { double, double }* + %11 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { double, double } undef, double %12, 0 + %16 = insertvalue { double, double } %15, double %14, 1 + ret { double, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int16.ll new file mode 100644 index 00000000..9b798472 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int16.ll @@ -0,0 +1,292 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i16]* %4 to i32* + store i32 %0, i32* %5, align 2 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i16]* %8 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array3* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 2 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int32.ll new file mode 100644 index 00000000..e51aa41f --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int32.ll @@ -0,0 +1,268 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i32]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i32]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define 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, %struct.array2* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int64.ll new file mode 100644 index 00000000..f83370fa --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int8.ll new file mode 100644 index 00000000..ab9262b2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_int8.ll @@ -0,0 +1,336 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 1, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; 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 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 3, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to i32* + store i32 %0, i32* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array5* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 5, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array6* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array7* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 7, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 1 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/array_pointer.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_pointer.ll new file mode 100644 index 00000000..137573b8 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/array_pointer.ll @@ -0,0 +1,270 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/basic.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/basic.ll new file mode 100644 index 00000000..c9b4e0c8 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/composite.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/composite.ll new file mode 100644 index 00000000..18dbad7e --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/composite.ll @@ -0,0 +1,148 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + %6 = bitcast [1 x i32]* %5 to i32* + store i32 %0, i32* %6, align 4 + %7 = bitcast %struct.array10* %2 to i8* + %8 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + %9 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %9, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_array11([2 x i32] %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.array11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point10* %2 to i8* + %7 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %8, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_point11([2 x i32] %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array20* %2 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %8, i32 0, i32 0 + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, %struct.array21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array21* %0 to i8* + %6 = bitcast %struct.array21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/empty.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/empty.ll new file mode 100644 index 00000000..767489a3 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float32.ll new file mode 100644 index 00000000..d553ba60 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float32.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = bitcast %struct.point1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = bitcast %struct.point1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = alloca %struct.point2, align 4 + %5 = bitcast %struct.point2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float64.ll new file mode 100644 index 00000000..c9220248 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_float64.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = bitcast %struct.point1* %3 to { double }* + %5 = getelementptr inbounds { double }, { double }* %4, i32 0, i32 0 + store double %0, double* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = bitcast %struct.point1* %2 to { double }* + %9 = getelementptr inbounds { double }, { double }* %8, i32 0, i32 0 + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = alloca %struct.point2, align 8 + %5 = bitcast %struct.point2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point2* %3 to { double, double }* + %11 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { double, double } undef, double %12, 0 + %16 = insertvalue { double, double } %15, double %14, 1 + ret { double, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int16.ll new file mode 100644 index 00000000..48df4d3c --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int16.ll @@ -0,0 +1,280 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = bitcast %struct.point2* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point2* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int32.ll new file mode 100644 index 00000000..eb3b1404 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int32.ll @@ -0,0 +1,266 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int64.ll new file mode 100644 index 00000000..a9a45ae2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int64.ll @@ -0,0 +1,263 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int8.ll new file mode 100644 index 00000000..c15584ce --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_int8.ll @@ -0,0 +1,316 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 2, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 2, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; 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 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 3, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 3, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = bitcast %struct.point4* %3 to i32* + store i32 %0, i32* %4, align 1 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 4, i1 false) + %7 = bitcast %struct.point4* %2 to i32* + %8 = load i32, i32* %7, align 1 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 5, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 5, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 7, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 7, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 1 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_mixed.ll new file mode 100644 index 00000000..7cba23fe --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_mixed.ll @@ -0,0 +1,12984 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = bitcast %struct.point1* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point1* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, float } @demo4(i8 %0, float %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { i8, float }* + %6 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 4 + %7 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point4* %3 to { i8, float }* + %11 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i8, float } undef, i8 %12, 0 + %16 = insertvalue { i8, float } %15, float %14, 1 + ret { i8, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, double } @demo5(i8 %0, double %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = alloca %struct.point5, align 8 + %5 = bitcast %struct.point5* %4 to { i8, double }* + %6 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point5* %3 to i8* + %9 = bitcast %struct.point5* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point5* %3 to { i8, double }* + %11 = getelementptr inbounds { i8, double }, { i8, double }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 8 + %13 = getelementptr inbounds { i8, double }, { i8, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i8, double } undef, i8 %12, 0 + %16 = insertvalue { i8, double } %15, double %14, 1 + ret { i8, double } %16 +} + +; 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 + %4 = bitcast %struct.point6* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point7* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point7* %2 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point7* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, float } @demo10(i16 %0, float %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = alloca %struct.point10, align 4 + %5 = bitcast %struct.point10* %4 to { i16, float }* + %6 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 4 + %7 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point10* %3 to i8* + %9 = bitcast %struct.point10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point10* %3 to { i16, float }* + %11 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 4 + %13 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i16, float } undef, i16 %12, 0 + %16 = insertvalue { i16, float } %15, float %14, 1 + ret { i16, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, double } @demo11(i16 %0, double %1) #0 { + %3 = alloca %struct.point11, align 8 + %4 = alloca %struct.point11, align 8 + %5 = bitcast %struct.point11* %4 to { i16, double }* + %6 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 8 + %7 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point11* %3 to i8* + %9 = bitcast %struct.point11* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point11* %3 to { i16, double }* + %11 = getelementptr inbounds { i16, double }, { i16, double }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 8 + %13 = getelementptr inbounds { i16, double }, { i16, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i16, double } undef, i16 %12, 0 + %16 = insertvalue { i16, double } %15, double %14, 1 + ret { i16, double } %16 +} + +; 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 + %4 = bitcast %struct.point12* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point13* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point13* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point14* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point14* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, float } @demo16(i32 %0, float %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = alloca %struct.point16, align 4 + %5 = bitcast %struct.point16* %4 to { i32, float }* + %6 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 4 + %7 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point16* %3 to i8* + %9 = bitcast %struct.point16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point16* %3 to { i32, float }* + %11 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i32, float } undef, i32 %12, 0 + %16 = insertvalue { i32, float } %15, float %14, 1 + ret { i32, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, double } @demo17(i32 %0, double %1) #0 { + %3 = alloca %struct.point17, align 8 + %4 = alloca %struct.point17, align 8 + %5 = bitcast %struct.point17* %4 to { i32, double }* + %6 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point17* %3 to i8* + %9 = bitcast %struct.point17* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point17* %3 to { i32, double }* + %11 = getelementptr inbounds { i32, double }, { i32, double }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 8 + %13 = getelementptr inbounds { i32, double }, { i32, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i32, double } undef, i32 %12, 0 + %16 = insertvalue { i32, double } %15, double %14, 1 + ret { i32, double } %16 +} + +; 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 + %4 = bitcast %struct.point18* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo21(%struct.point21* noalias sret(%struct.point21) align 8 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo22(%struct.point22* noalias sret(%struct.point22) align 8 %0, %struct.point22* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point22* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point22* %0 to i8* + %6 = bitcast %struct.point22* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo23(%struct.point23* noalias sret(%struct.point23) align 8 %0, %struct.point23* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point23* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point23* %0 to i8* + %6 = bitcast %struct.point23* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo24(%struct.point24* noalias sret(%struct.point24) align 8 %0, %struct.point24* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point24* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point24* %0 to i8* + %6 = bitcast %struct.point24* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i8 } @demo25(float %0, i8 %1) #0 { + %3 = alloca %struct.point25, align 4 + %4 = alloca %struct.point25, align 4 + %5 = bitcast %struct.point25* %4 to { float, i8 }* + %6 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 4 + %8 = bitcast %struct.point25* %3 to i8* + %9 = bitcast %struct.point25* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point25* %3 to { float, i8 }* + %11 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 4 + %15 = insertvalue { float, i8 } undef, float %12, 0 + %16 = insertvalue { float, i8 } %15, i8 %14, 1 + ret { float, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i16 } @demo26(float %0, i16 %1) #0 { + %3 = alloca %struct.point26, align 4 + %4 = alloca %struct.point26, align 4 + %5 = bitcast %struct.point26* %4 to { float, i16 }* + %6 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 4 + %8 = bitcast %struct.point26* %3 to i8* + %9 = bitcast %struct.point26* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point26* %3 to { float, i16 }* + %11 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 4 + %15 = insertvalue { float, i16 } undef, float %12, 0 + %16 = insertvalue { float, i16 } %15, i16 %14, 1 + ret { float, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i32 } @demo27(float %0, i32 %1) #0 { + %3 = alloca %struct.point27, align 4 + %4 = alloca %struct.point27, align 4 + %5 = bitcast %struct.point27* %4 to { float, i32 }* + %6 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 4 + %8 = bitcast %struct.point27* %3 to i8* + %9 = bitcast %struct.point27* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point27* %3 to { float, i32 }* + %11 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = insertvalue { float, i32 } undef, float %12, 0 + %16 = insertvalue { float, i32 } %15, i32 %14, 1 + ret { float, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo28(%struct.point28* noalias sret(%struct.point28) align 8 %0, %struct.point28* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point28* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point28* %0 to i8* + %6 = bitcast %struct.point28* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, double } @demo29(float %0, double %1) #0 { + %3 = alloca %struct.point29, align 8 + %4 = alloca %struct.point29, align 8 + %5 = bitcast %struct.point29* %4 to { float, double }* + %6 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point29* %3 to i8* + %9 = bitcast %struct.point29* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point29* %3 to { float, double }* + %11 = getelementptr inbounds { float, double }, { float, double }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 8 + %13 = getelementptr inbounds { float, double }, { float, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { float, double } undef, float %12, 0 + %16 = insertvalue { float, double } %15, double %14, 1 + ret { float, double } %16 +} + +; 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 + %4 = bitcast %struct.point30* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i8 } @demo31(double %0, i8 %1) #0 { + %3 = alloca %struct.point31, align 8 + %4 = alloca %struct.point31, align 8 + %5 = bitcast %struct.point31* %4 to { double, i8 }* + %6 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = bitcast %struct.point31* %3 to i8* + %9 = bitcast %struct.point31* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point31* %3 to { double, i8 }* + %11 = getelementptr inbounds { double, i8 }, { double, i8 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i8 }, { double, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 8 + %15 = insertvalue { double, i8 } undef, double %12, 0 + %16 = insertvalue { double, i8 } %15, i8 %14, 1 + ret { double, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i16 } @demo32(double %0, i16 %1) #0 { + %3 = alloca %struct.point32, align 8 + %4 = alloca %struct.point32, align 8 + %5 = bitcast %struct.point32* %4 to { double, i16 }* + %6 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 8 + %8 = bitcast %struct.point32* %3 to i8* + %9 = bitcast %struct.point32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point32* %3 to { double, i16 }* + %11 = getelementptr inbounds { double, i16 }, { double, i16 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i16 }, { double, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 8 + %15 = insertvalue { double, i16 } undef, double %12, 0 + %16 = insertvalue { double, i16 } %15, i16 %14, 1 + ret { double, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i32 } @demo33(double %0, i32 %1) #0 { + %3 = alloca %struct.point33, align 8 + %4 = alloca %struct.point33, align 8 + %5 = bitcast %struct.point33* %4 to { double, i32 }* + %6 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 8 + %8 = bitcast %struct.point33* %3 to i8* + %9 = bitcast %struct.point33* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point33* %3 to { double, i32 }* + %11 = getelementptr inbounds { double, i32 }, { double, i32 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i32 }, { double, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 8 + %15 = insertvalue { double, i32 } undef, double %12, 0 + %16 = insertvalue { double, i32 } %15, i32 %14, 1 + ret { double, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo34(%struct.point34* noalias sret(%struct.point34) align 8 %0, %struct.point34* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point34* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point34* %0 to i8* + %6 = bitcast %struct.point34* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, float } @demo35(double %0, float %1) #0 { + %3 = alloca %struct.point35, align 8 + %4 = alloca %struct.point35, align 8 + %5 = bitcast %struct.point35* %4 to { double, float }* + %6 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point35* %3 to i8* + %9 = bitcast %struct.point35* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + %10 = bitcast %struct.point35* %3 to { double, float }* + %11 = getelementptr inbounds { double, float }, { double, float }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, float }, { double, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 8 + %15 = insertvalue { double, float } undef, double %12, 0 + %16 = insertvalue { double, float } %15, float %14, 1 + ret { double, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo36(%struct.point36* noalias sret(%struct.point36) align 8 %0, %struct.point36* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point36* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point36* %0 to i8* + %6 = bitcast %struct.point36* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo37([2 x i32] %0) #0 { + %2 = alloca %struct.point37, align 4 + %3 = alloca %struct.point37, align 4 + %4 = bitcast %struct.point37* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point38* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point39* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo40(%struct.point40* noalias sret(%struct.point40) align 8 %0, %struct.point40* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point40* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point40* %0 to i8* + %6 = bitcast %struct.point40* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo41([2 x i32] %0) #0 { + %2 = alloca %struct.point41, align 4 + %3 = alloca %struct.point41, align 4 + %4 = bitcast %struct.point41* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo42(%struct.point42* noalias sret(%struct.point42) align 8 %0, %struct.point42* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point42* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point42* %0 to i8* + %6 = bitcast %struct.point42* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point45* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point45* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point46* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point46* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, %struct.point47* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point47* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point47* %0 to i8* + %6 = bitcast %struct.point47* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, %struct.point48* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point48* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point48* %0 to i8* + %6 = bitcast %struct.point48* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo49([2 x i32] %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point49* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, %struct.point50* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point50* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point50* %0 to i8* + %6 = bitcast %struct.point50* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, %struct.point51* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point51* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point51* %0 to i8* + %6 = bitcast %struct.point51* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, %struct.point52* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point52* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point52* %0 to i8* + %6 = bitcast %struct.point52* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, %struct.point53* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point53* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point53* %0 to i8* + %6 = bitcast %struct.point53* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, %struct.point54* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point54* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point54* %0 to i8* + %6 = bitcast %struct.point54* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, %struct.point55* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point55* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point55* %0 to i8* + %6 = bitcast %struct.point55* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, %struct.point56* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point56* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point56* %0 to i8* + %6 = bitcast %struct.point56* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, %struct.point57* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point57* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point57* %0 to i8* + %6 = bitcast %struct.point57* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, %struct.point58* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point58* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point58* %0 to i8* + %6 = bitcast %struct.point58* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, %struct.point59* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point59* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point59* %0 to i8* + %6 = bitcast %struct.point59* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, %struct.point60* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point60* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point60* %0 to i8* + %6 = bitcast %struct.point60* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, %struct.point61* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point61* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point61* %0 to i8* + %6 = bitcast %struct.point61* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, %struct.point62* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point62* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point62* %0 to i8* + %6 = bitcast %struct.point62* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, %struct.point63* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point63* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point63* %0 to i8* + %6 = bitcast %struct.point63* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point65* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point65* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point66* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point66* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, %struct.point67* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point67* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point67* %0 to i8* + %6 = bitcast %struct.point67* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, %struct.point68* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point68* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point68* %0 to i8* + %6 = bitcast %struct.point68* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, %struct.point69* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point69* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point69* %0 to i8* + %6 = bitcast %struct.point69* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo70([2 x i32] %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point70* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, %struct.point71* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point71* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point71* %0 to i8* + %6 = bitcast %struct.point71* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, %struct.point72* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point72* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point72* %0 to i8* + %6 = bitcast %struct.point72* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, %struct.point73* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point73* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point73* %0 to i8* + %6 = bitcast %struct.point73* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, %struct.point74* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point74* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point74* %0 to i8* + %6 = bitcast %struct.point74* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, %struct.point75* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point75* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point75* %0 to i8* + %6 = bitcast %struct.point75* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, %struct.point76* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point76* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point76* %0 to i8* + %6 = bitcast %struct.point76* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, %struct.point77* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point77* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point77* %0 to i8* + %6 = bitcast %struct.point77* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, %struct.point78* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point78* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point78* %0 to i8* + %6 = bitcast %struct.point78* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, %struct.point79* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point79* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point79* %0 to i8* + %6 = bitcast %struct.point79* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, %struct.point80* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point80* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point80* %0 to i8* + %6 = bitcast %struct.point80* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, %struct.point81* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point81* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point81* %0 to i8* + %6 = bitcast %struct.point81* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, %struct.point82* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point82* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point82* %0 to i8* + %6 = bitcast %struct.point82* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, %struct.point83* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point83* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point83* %0 to i8* + %6 = bitcast %struct.point83* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, %struct.point84* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point84* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point84* %0 to i8* + %6 = bitcast %struct.point84* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo85([2 x i32] %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point85* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, %struct.point86* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point86* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point86* %0 to i8* + %6 = bitcast %struct.point86* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, %struct.point87* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point87* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point87* %0 to i8* + %6 = bitcast %struct.point87* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, %struct.point88* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point88* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point88* %0 to i8* + %6 = bitcast %struct.point88* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, %struct.point89* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point89* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point89* %0 to i8* + %6 = bitcast %struct.point89* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, %struct.point90* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point90* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point90* %0 to i8* + %6 = bitcast %struct.point90* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, %struct.point91* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point91* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point91* %0 to i8* + %6 = bitcast %struct.point91* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, %struct.point92* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point92* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point92* %0 to i8* + %6 = bitcast %struct.point92* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, %struct.point93* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point93* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point93* %0 to i8* + %6 = bitcast %struct.point93* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, %struct.point94* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point94* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point94* %0 to i8* + %6 = bitcast %struct.point94* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, %struct.point95* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point95* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point95* %0 to i8* + %6 = bitcast %struct.point95* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, %struct.point96* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point96* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point96* %0 to i8* + %6 = bitcast %struct.point96* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, %struct.point97* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point97* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point97* %0 to i8* + %6 = bitcast %struct.point97* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, %struct.point98* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point98* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point98* %0 to i8* + %6 = bitcast %struct.point98* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, %struct.point99* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point99* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point99* %0 to i8* + %6 = bitcast %struct.point99* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, %struct.point100* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point100* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point100* %0 to i8* + %6 = bitcast %struct.point100* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, %struct.point101* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point101* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point101* %0 to i8* + %6 = bitcast %struct.point101* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, %struct.point102* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point102* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point102* %0 to i8* + %6 = bitcast %struct.point102* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, %struct.point103* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point103* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point103* %0 to i8* + %6 = bitcast %struct.point103* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, %struct.point104* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point104* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point104* %0 to i8* + %6 = bitcast %struct.point104* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, %struct.point105* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point105* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point105* %0 to i8* + %6 = bitcast %struct.point105* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo106([2 x i32] %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point106* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, %struct.point107* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point107* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point107* %0 to i8* + %6 = bitcast %struct.point107* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, %struct.point108* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point108* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point108* %0 to i8* + %6 = bitcast %struct.point108* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, %struct.point109* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point109* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point109* %0 to i8* + %6 = bitcast %struct.point109* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, %struct.point110* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point110* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point110* %0 to i8* + %6 = bitcast %struct.point110* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, %struct.point111* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point111* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point111* %0 to i8* + %6 = bitcast %struct.point111* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, %struct.point112* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point112* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point112* %0 to i8* + %6 = bitcast %struct.point112* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, %struct.point113* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point113* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point113* %0 to i8* + %6 = bitcast %struct.point113* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, %struct.point114* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point114* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point114* %0 to i8* + %6 = bitcast %struct.point114* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, %struct.point115* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point115* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point115* %0 to i8* + %6 = bitcast %struct.point115* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, %struct.point116* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point116* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point116* %0 to i8* + %6 = bitcast %struct.point116* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, %struct.point117* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point117* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point117* %0 to i8* + %6 = bitcast %struct.point117* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, %struct.point118* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point118* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point118* %0 to i8* + %6 = bitcast %struct.point118* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, %struct.point119* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point119* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point119* %0 to i8* + %6 = bitcast %struct.point119* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, %struct.point120* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point120* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point120* %0 to i8* + %6 = bitcast %struct.point120* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, %struct.point121* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point121* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point121* %0 to i8* + %6 = bitcast %struct.point121* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, %struct.point122* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point122* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point122* %0 to i8* + %6 = bitcast %struct.point122* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, %struct.point123* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point123* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point123* %0 to i8* + %6 = bitcast %struct.point123* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, %struct.point124* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point124* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point124* %0 to i8* + %6 = bitcast %struct.point124* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, %struct.point125* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point125* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point125* %0 to i8* + %6 = bitcast %struct.point125* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, %struct.point126* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point126* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point126* %0 to i8* + %6 = bitcast %struct.point126* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, %struct.point127* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point127* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point127* %0 to i8* + %6 = bitcast %struct.point127* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, %struct.point128* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point128* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point128* %0 to i8* + %6 = bitcast %struct.point128* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, %struct.point129* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point129* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point129* %0 to i8* + %6 = bitcast %struct.point129* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, %struct.point130* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point130* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point130* %0 to i8* + %6 = bitcast %struct.point130* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, %struct.point131* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point131* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point131* %0 to i8* + %6 = bitcast %struct.point131* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, %struct.point132* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point132* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point132* %0 to i8* + %6 = bitcast %struct.point132* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, %struct.point133* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point133* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point133* %0 to i8* + %6 = bitcast %struct.point133* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, %struct.point134* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point134* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point134* %0 to i8* + %6 = bitcast %struct.point134* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, %struct.point135* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point135* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point135* %0 to i8* + %6 = bitcast %struct.point135* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, %struct.point136* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point136* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point136* %0 to i8* + %6 = bitcast %struct.point136* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, %struct.point137* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point137* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point137* %0 to i8* + %6 = bitcast %struct.point137* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, %struct.point138* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point138* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point138* %0 to i8* + %6 = bitcast %struct.point138* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, %struct.point143* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point143* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point143* %0 to i8* + %6 = bitcast %struct.point143* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, %struct.point148* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point148* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point148* %0 to i8* + %6 = bitcast %struct.point148* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, %struct.point149* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point149* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point149* %0 to i8* + %6 = bitcast %struct.point149* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, %struct.point150* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point150* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point150* %0 to i8* + %6 = bitcast %struct.point150* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, %struct.point151* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point151* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point151* %0 to i8* + %6 = bitcast %struct.point151* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, %struct.point152* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point152* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point152* %0 to i8* + %6 = bitcast %struct.point152* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, %struct.point153* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point153* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point153* %0 to i8* + %6 = bitcast %struct.point153* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, %struct.point154* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point154* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point154* %0 to i8* + %6 = bitcast %struct.point154* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, %struct.point155* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point155* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point155* %0 to i8* + %6 = bitcast %struct.point155* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, %struct.point156* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point156* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point156* %0 to i8* + %6 = bitcast %struct.point156* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, %struct.point157* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point157* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point157* %0 to i8* + %6 = bitcast %struct.point157* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, %struct.point158* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point158* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point158* %0 to i8* + %6 = bitcast %struct.point158* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, %struct.point159* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point159* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point159* %0 to i8* + %6 = bitcast %struct.point159* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, %struct.point164* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point164* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point164* %0 to i8* + %6 = bitcast %struct.point164* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, %struct.point169* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point169* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point169* %0 to i8* + %6 = bitcast %struct.point169* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, %struct.point170* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point170* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point170* %0 to i8* + %6 = bitcast %struct.point170* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, %struct.point171* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point171* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point171* %0 to i8* + %6 = bitcast %struct.point171* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, %struct.point172* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point172* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point172* %0 to i8* + %6 = bitcast %struct.point172* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, %struct.point175* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point175* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point175* %0 to i8* + %6 = bitcast %struct.point175* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, %struct.point176* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point176* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point176* %0 to i8* + %6 = bitcast %struct.point176* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, %struct.point177* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point177* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point177* %0 to i8* + %6 = bitcast %struct.point177* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, %struct.point180* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point180* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point180* %0 to i8* + %6 = bitcast %struct.point180* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, %struct.point185* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point185* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point185* %0 to i8* + %6 = bitcast %struct.point185* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, %struct.point190* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point190* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point190* %0 to i8* + %6 = bitcast %struct.point190* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, %struct.point191* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point191* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point191* %0 to i8* + %6 = bitcast %struct.point191* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, %struct.point192* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point192* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point192* %0 to i8* + %6 = bitcast %struct.point192* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, %struct.point193* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point193* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point193* %0 to i8* + %6 = bitcast %struct.point193* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, %struct.point196* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point196* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point196* %0 to i8* + %6 = bitcast %struct.point196* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, %struct.point197* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point197* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point197* %0 to i8* + %6 = bitcast %struct.point197* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, %struct.point198* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point198* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point198* %0 to i8* + %6 = bitcast %struct.point198* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, %struct.point201* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point201* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point201* %0 to i8* + %6 = bitcast %struct.point201* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, %struct.point206* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point206* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point206* %0 to i8* + %6 = bitcast %struct.point206* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, %struct.point211* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point211* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point211* %0 to i8* + %6 = bitcast %struct.point211* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, %struct.point212* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point212* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point212* %0 to i8* + %6 = bitcast %struct.point212* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, %struct.point213* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point213* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point213* %0 to i8* + %6 = bitcast %struct.point213* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, %struct.point214* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point214* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point214* %0 to i8* + %6 = bitcast %struct.point214* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, %struct.point215* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point215* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point215* %0 to i8* + %6 = bitcast %struct.point215* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, %struct.point216* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point216* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point216* %0 to i8* + %6 = bitcast %struct.point216* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, %struct.point217* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point217* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point217* %0 to i8* + %6 = bitcast %struct.point217* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, %struct.point218* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point218* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point218* %0 to i8* + %6 = bitcast %struct.point218* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, %struct.point219* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point219* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point219* %0 to i8* + %6 = bitcast %struct.point219* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, %struct.point220* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point220* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point220* %0 to i8* + %6 = bitcast %struct.point220* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, %struct.point221* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point221* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point221* %0 to i8* + %6 = bitcast %struct.point221* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, %struct.point222* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point222* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point222* %0 to i8* + %6 = bitcast %struct.point222* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, %struct.point227* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point227* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point227* %0 to i8* + %6 = bitcast %struct.point227* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, %struct.point232* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point232* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point232* %0 to i8* + %6 = bitcast %struct.point232* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, %struct.point233* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point233* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point233* %0 to i8* + %6 = bitcast %struct.point233* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, %struct.point234* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point234* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point234* %0 to i8* + %6 = bitcast %struct.point234* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, %struct.point235* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point235* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point235* %0 to i8* + %6 = bitcast %struct.point235* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, %struct.point236* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point236* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point236* %0 to i8* + %6 = bitcast %struct.point236* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, %struct.point237* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point237* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point237* %0 to i8* + %6 = bitcast %struct.point237* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, %struct.point238* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point238* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point238* %0 to i8* + %6 = bitcast %struct.point238* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, %struct.point239* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point239* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point239* %0 to i8* + %6 = bitcast %struct.point239* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, %struct.point240* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point240* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point240* %0 to i8* + %6 = bitcast %struct.point240* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, %struct.point241* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point241* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point241* %0 to i8* + %6 = bitcast %struct.point241* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, %struct.point242* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point242* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point242* %0 to i8* + %6 = bitcast %struct.point242* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, %struct.point243* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point243* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point243* %0 to i8* + %6 = bitcast %struct.point243* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, %struct.point248* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point248* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point248* %0 to i8* + %6 = bitcast %struct.point248* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, %struct.point253* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point253* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point253* %0 to i8* + %6 = bitcast %struct.point253* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, %struct.point254* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point254* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point254* %0 to i8* + %6 = bitcast %struct.point254* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, %struct.point255* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point255* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point255* %0 to i8* + %6 = bitcast %struct.point255* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, %struct.point256* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point256* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point256* %0 to i8* + %6 = bitcast %struct.point256* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, %struct.point259* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point259* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point259* %0 to i8* + %6 = bitcast %struct.point259* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, %struct.point260* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point260* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point260* %0 to i8* + %6 = bitcast %struct.point260* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, %struct.point261* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point261* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point261* %0 to i8* + %6 = bitcast %struct.point261* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, %struct.point264* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point264* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point264* %0 to i8* + %6 = bitcast %struct.point264* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, %struct.point269* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point269* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point269* %0 to i8* + %6 = bitcast %struct.point269* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, %struct.point274* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point274* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point274* %0 to i8* + %6 = bitcast %struct.point274* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, %struct.point275* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point275* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point275* %0 to i8* + %6 = bitcast %struct.point275* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, %struct.point276* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point276* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point276* %0 to i8* + %6 = bitcast %struct.point276* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, %struct.point277* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point277* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point277* %0 to i8* + %6 = bitcast %struct.point277* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, %struct.point280* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point280* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point280* %0 to i8* + %6 = bitcast %struct.point280* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, %struct.point281* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point281* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point281* %0 to i8* + %6 = bitcast %struct.point281* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, %struct.point282* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point282* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point282* %0 to i8* + %6 = bitcast %struct.point282* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, %struct.point285* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point285* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point285* %0 to i8* + %6 = bitcast %struct.point285* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, %struct.point290* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point290* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point290* %0 to i8* + %6 = bitcast %struct.point290* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo295(i32 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = bitcast %struct.point295* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point295* %2 to i8* + %6 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point295* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point298* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point298* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, %struct.point299* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point299* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point299* %0 to i8* + %6 = bitcast %struct.point299* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, %struct.point300* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point300* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point300* %0 to i8* + %6 = bitcast %struct.point300* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point302* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point302* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point303* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point303* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, %struct.point304* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point304* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point304* %0 to i8* + %6 = bitcast %struct.point304* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, %struct.point305* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point305* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point305* %0 to i8* + %6 = bitcast %struct.point305* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo306([2 x i32] %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point306* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, %struct.point307* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point307* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point307* %0 to i8* + %6 = bitcast %struct.point307* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, %struct.point308* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point308* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point308* %0 to i8* + %6 = bitcast %struct.point308* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, %struct.point309* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point309* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point309* %0 to i8* + %6 = bitcast %struct.point309* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, %struct.point310* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point310* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point310* %0 to i8* + %6 = bitcast %struct.point310* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo311([2 x i32] %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point311* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, %struct.point312* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point312* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point312* %0 to i8* + %6 = bitcast %struct.point312* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, %struct.point313* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point313* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point313* %0 to i8* + %6 = bitcast %struct.point313* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, %struct.point314* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point314* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point314* %0 to i8* + %6 = bitcast %struct.point314* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, %struct.point315* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point315* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point315* %0 to i8* + %6 = bitcast %struct.point315* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point317* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point317* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point318* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point318* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, %struct.point319* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point319* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point319* %0 to i8* + %6 = bitcast %struct.point319* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, %struct.point320* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point320* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point320* %0 to i8* + %6 = bitcast %struct.point320* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, %struct.point321* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point321* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point321* %0 to i8* + %6 = bitcast %struct.point321* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo322([2 x i32] %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point322* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, %struct.point323* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point323* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point323* %0 to i8* + %6 = bitcast %struct.point323* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, %struct.point324* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point324* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point324* %0 to i8* + %6 = bitcast %struct.point324* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, %struct.point325* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point325* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point325* %0 to i8* + %6 = bitcast %struct.point325* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, %struct.point326* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point326* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point326* %0 to i8* + %6 = bitcast %struct.point326* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, %struct.point327* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point327* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point327* %0 to i8* + %6 = bitcast %struct.point327* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, %struct.point328* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point328* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point328* %0 to i8* + %6 = bitcast %struct.point328* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, %struct.point329* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point329* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point329* %0 to i8* + %6 = bitcast %struct.point329* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, %struct.point330* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point330* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point330* %0 to i8* + %6 = bitcast %struct.point330* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, %struct.point331* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point331* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point331* %0 to i8* + %6 = bitcast %struct.point331* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, %struct.point332* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point332* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point332* %0 to i8* + %6 = bitcast %struct.point332* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, %struct.point333* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point333* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point333* %0 to i8* + %6 = bitcast %struct.point333* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, %struct.point334* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point334* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point334* %0 to i8* + %6 = bitcast %struct.point334* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, %struct.point335* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point335* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point335* %0 to i8* + %6 = bitcast %struct.point335* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, %struct.point336* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point336* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point336* %0 to i8* + %6 = bitcast %struct.point336* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo337([2 x i32] %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point337* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, %struct.point338* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point338* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point338* %0 to i8* + %6 = bitcast %struct.point338* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, %struct.point339* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point339* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point339* %0 to i8* + %6 = bitcast %struct.point339* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, %struct.point340* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point340* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point340* %0 to i8* + %6 = bitcast %struct.point340* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, %struct.point341* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point341* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point341* %0 to i8* + %6 = bitcast %struct.point341* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, %struct.point342* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point342* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point342* %0 to i8* + %6 = bitcast %struct.point342* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, %struct.point343* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point343* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point343* %0 to i8* + %6 = bitcast %struct.point343* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, %struct.point344* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point344* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point344* %0 to i8* + %6 = bitcast %struct.point344* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, %struct.point345* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point345* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point345* %0 to i8* + %6 = bitcast %struct.point345* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, %struct.point346* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point346* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point346* %0 to i8* + %6 = bitcast %struct.point346* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, %struct.point347* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point347* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point347* %0 to i8* + %6 = bitcast %struct.point347* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, %struct.point348* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point348* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point348* %0 to i8* + %6 = bitcast %struct.point348* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, %struct.point349* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point349* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point349* %0 to i8* + %6 = bitcast %struct.point349* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, %struct.point350* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point350* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point350* %0 to i8* + %6 = bitcast %struct.point350* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, %struct.point351* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point351* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point351* %0 to i8* + %6 = bitcast %struct.point351* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, %struct.point352* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point352* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point352* %0 to i8* + %6 = bitcast %struct.point352* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, %struct.point353* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point353* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point353* %0 to i8* + %6 = bitcast %struct.point353* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, %struct.point354* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point354* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point354* %0 to i8* + %6 = bitcast %struct.point354* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, %struct.point355* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point355* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point355* %0 to i8* + %6 = bitcast %struct.point355* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, %struct.point356* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point356* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point356* %0 to i8* + %6 = bitcast %struct.point356* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, %struct.point357* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point357* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point357* %0 to i8* + %6 = bitcast %struct.point357* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo358([2 x i32] %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point358* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, %struct.point359* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point359* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point359* %0 to i8* + %6 = bitcast %struct.point359* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, %struct.point360* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point360* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point360* %0 to i8* + %6 = bitcast %struct.point360* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, %struct.point361* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point361* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point361* %0 to i8* + %6 = bitcast %struct.point361* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, %struct.point362* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point362* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point362* %0 to i8* + %6 = bitcast %struct.point362* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, %struct.point363* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point363* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point363* %0 to i8* + %6 = bitcast %struct.point363* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, %struct.point364* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point364* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point364* %0 to i8* + %6 = bitcast %struct.point364* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, %struct.point365* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point365* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point365* %0 to i8* + %6 = bitcast %struct.point365* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, %struct.point366* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point366* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point366* %0 to i8* + %6 = bitcast %struct.point366* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, %struct.point367* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point367* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point367* %0 to i8* + %6 = bitcast %struct.point367* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, %struct.point368* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point368* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point368* %0 to i8* + %6 = bitcast %struct.point368* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, %struct.point369* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point369* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point369* %0 to i8* + %6 = bitcast %struct.point369* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, %struct.point370* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point370* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point370* %0 to i8* + %6 = bitcast %struct.point370* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, %struct.point371* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point371* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point371* %0 to i8* + %6 = bitcast %struct.point371* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, %struct.point372* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point372* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point372* %0 to i8* + %6 = bitcast %struct.point372* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, %struct.point373* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point373* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point373* %0 to i8* + %6 = bitcast %struct.point373* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, %struct.point374* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point374* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point374* %0 to i8* + %6 = bitcast %struct.point374* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, %struct.point375* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point375* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point375* %0 to i8* + %6 = bitcast %struct.point375* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, %struct.point376* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point376* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point376* %0 to i8* + %6 = bitcast %struct.point376* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, %struct.point377* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point377* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point377* %0 to i8* + %6 = bitcast %struct.point377* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, %struct.point378* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point378* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point378* %0 to i8* + %6 = bitcast %struct.point378* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, %struct.point379* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point379* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point379* %0 to i8* + %6 = bitcast %struct.point379* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, %struct.point380* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point380* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point380* %0 to i8* + %6 = bitcast %struct.point380* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, %struct.point381* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point381* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point381* %0 to i8* + %6 = bitcast %struct.point381* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, %struct.point382* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point382* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point382* %0 to i8* + %6 = bitcast %struct.point382* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, %struct.point383* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point383* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point383* %0 to i8* + %6 = bitcast %struct.point383* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, %struct.point384* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point384* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point384* %0 to i8* + %6 = bitcast %struct.point384* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, %struct.point385* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point385* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point385* %0 to i8* + %6 = bitcast %struct.point385* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, %struct.point386* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point386* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point386* %0 to i8* + %6 = bitcast %struct.point386* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, %struct.point387* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point387* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point387* %0 to i8* + %6 = bitcast %struct.point387* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, %struct.point388* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point388* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point388* %0 to i8* + %6 = bitcast %struct.point388* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, %struct.point389* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point389* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point389* %0 to i8* + %6 = bitcast %struct.point389* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, %struct.point390* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point390* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point390* %0 to i8* + %6 = bitcast %struct.point390* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, %struct.point395* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point395* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point395* %0 to i8* + %6 = bitcast %struct.point395* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, %struct.point400* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point400* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point400* %0 to i8* + %6 = bitcast %struct.point400* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, %struct.point401* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point401* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point401* %0 to i8* + %6 = bitcast %struct.point401* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, %struct.point402* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point402* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point402* %0 to i8* + %6 = bitcast %struct.point402* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, %struct.point403* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point403* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point403* %0 to i8* + %6 = bitcast %struct.point403* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, %struct.point404* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point404* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point404* %0 to i8* + %6 = bitcast %struct.point404* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, %struct.point405* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point405* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point405* %0 to i8* + %6 = bitcast %struct.point405* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, %struct.point406* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point406* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point406* %0 to i8* + %6 = bitcast %struct.point406* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, %struct.point407* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point407* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point407* %0 to i8* + %6 = bitcast %struct.point407* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, %struct.point408* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point408* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point408* %0 to i8* + %6 = bitcast %struct.point408* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, %struct.point409* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point409* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point409* %0 to i8* + %6 = bitcast %struct.point409* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, %struct.point410* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point410* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point410* %0 to i8* + %6 = bitcast %struct.point410* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, %struct.point411* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point411* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point411* %0 to i8* + %6 = bitcast %struct.point411* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, %struct.point416* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point416* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point416* %0 to i8* + %6 = bitcast %struct.point416* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, %struct.point421* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point421* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point421* %0 to i8* + %6 = bitcast %struct.point421* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, %struct.point422* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point422* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point422* %0 to i8* + %6 = bitcast %struct.point422* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, %struct.point423* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point423* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point423* %0 to i8* + %6 = bitcast %struct.point423* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, %struct.point424* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point424* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point424* %0 to i8* + %6 = bitcast %struct.point424* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, %struct.point427* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point427* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point427* %0 to i8* + %6 = bitcast %struct.point427* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, %struct.point428* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point428* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point428* %0 to i8* + %6 = bitcast %struct.point428* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, %struct.point429* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point429* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point429* %0 to i8* + %6 = bitcast %struct.point429* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, %struct.point432* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point432* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point432* %0 to i8* + %6 = bitcast %struct.point432* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, %struct.point437* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point437* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point437* %0 to i8* + %6 = bitcast %struct.point437* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, %struct.point442* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point442* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point442* %0 to i8* + %6 = bitcast %struct.point442* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, %struct.point443* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point443* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point443* %0 to i8* + %6 = bitcast %struct.point443* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, %struct.point444* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point444* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point444* %0 to i8* + %6 = bitcast %struct.point444* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, %struct.point445* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point445* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point445* %0 to i8* + %6 = bitcast %struct.point445* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, %struct.point448* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point448* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point448* %0 to i8* + %6 = bitcast %struct.point448* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, %struct.point449* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point449* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point449* %0 to i8* + %6 = bitcast %struct.point449* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, %struct.point450* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point450* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point450* %0 to i8* + %6 = bitcast %struct.point450* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, %struct.point453* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point453* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point453* %0 to i8* + %6 = bitcast %struct.point453* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, %struct.point458* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point458* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point458* %0 to i8* + %6 = bitcast %struct.point458* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, %struct.point463* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point463* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point463* %0 to i8* + %6 = bitcast %struct.point463* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, %struct.point464* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point464* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point464* %0 to i8* + %6 = bitcast %struct.point464* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, %struct.point465* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point465* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point465* %0 to i8* + %6 = bitcast %struct.point465* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, %struct.point466* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point466* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point466* %0 to i8* + %6 = bitcast %struct.point466* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, %struct.point467* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point467* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point467* %0 to i8* + %6 = bitcast %struct.point467* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, %struct.point468* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point468* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point468* %0 to i8* + %6 = bitcast %struct.point468* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, %struct.point469* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point469* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point469* %0 to i8* + %6 = bitcast %struct.point469* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, %struct.point470* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point470* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point470* %0 to i8* + %6 = bitcast %struct.point470* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, %struct.point471* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point471* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point471* %0 to i8* + %6 = bitcast %struct.point471* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, %struct.point472* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point472* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point472* %0 to i8* + %6 = bitcast %struct.point472* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, %struct.point473* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point473* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point473* %0 to i8* + %6 = bitcast %struct.point473* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, %struct.point474* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point474* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point474* %0 to i8* + %6 = bitcast %struct.point474* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, %struct.point479* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point479* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point479* %0 to i8* + %6 = bitcast %struct.point479* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, %struct.point484* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point484* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point484* %0 to i8* + %6 = bitcast %struct.point484* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, %struct.point485* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point485* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point485* %0 to i8* + %6 = bitcast %struct.point485* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, %struct.point486* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point486* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point486* %0 to i8* + %6 = bitcast %struct.point486* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, %struct.point487* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point487* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point487* %0 to i8* + %6 = bitcast %struct.point487* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, %struct.point488* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point488* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point488* %0 to i8* + %6 = bitcast %struct.point488* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, %struct.point489* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point489* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point489* %0 to i8* + %6 = bitcast %struct.point489* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, %struct.point490* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point490* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point490* %0 to i8* + %6 = bitcast %struct.point490* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, %struct.point491* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point491* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point491* %0 to i8* + %6 = bitcast %struct.point491* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, %struct.point492* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point492* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point492* %0 to i8* + %6 = bitcast %struct.point492* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, %struct.point493* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point493* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point493* %0 to i8* + %6 = bitcast %struct.point493* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, %struct.point494* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point494* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point494* %0 to i8* + %6 = bitcast %struct.point494* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, %struct.point495* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point495* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point495* %0 to i8* + %6 = bitcast %struct.point495* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, %struct.point500* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point500* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point500* %0 to i8* + %6 = bitcast %struct.point500* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, %struct.point505* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point505* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point505* %0 to i8* + %6 = bitcast %struct.point505* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, %struct.point506* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point506* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point506* %0 to i8* + %6 = bitcast %struct.point506* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, %struct.point507* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point507* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point507* %0 to i8* + %6 = bitcast %struct.point507* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, %struct.point508* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point508* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point508* %0 to i8* + %6 = bitcast %struct.point508* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, %struct.point511* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point511* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point511* %0 to i8* + %6 = bitcast %struct.point511* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, %struct.point512* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point512* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point512* %0 to i8* + %6 = bitcast %struct.point512* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, %struct.point513* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point513* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point513* %0 to i8* + %6 = bitcast %struct.point513* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, %struct.point516* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point516* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point516* %0 to i8* + %6 = bitcast %struct.point516* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, %struct.point521* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point521* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point521* %0 to i8* + %6 = bitcast %struct.point521* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, %struct.point526* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point526* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point526* %0 to i8* + %6 = bitcast %struct.point526* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, %struct.point527* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point527* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point527* %0 to i8* + %6 = bitcast %struct.point527* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, %struct.point528* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point528* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point528* %0 to i8* + %6 = bitcast %struct.point528* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, %struct.point529* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point529* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point529* %0 to i8* + %6 = bitcast %struct.point529* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, %struct.point532* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point532* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point532* %0 to i8* + %6 = bitcast %struct.point532* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, %struct.point533* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point533* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point533* %0 to i8* + %6 = bitcast %struct.point533* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, %struct.point534* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point534* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point534* %0 to i8* + %6 = bitcast %struct.point534* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, %struct.point537* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point537* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point537* %0 to i8* + %6 = bitcast %struct.point537* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, %struct.point542* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point542* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point542* %0 to i8* + %6 = bitcast %struct.point542* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo547([2 x i32] %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point547* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point548* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point548* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point549* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point549* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, %struct.point550* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point550* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point550* %0 to i8* + %6 = bitcast %struct.point550* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, %struct.point551* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point551* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point551* %0 to i8* + %6 = bitcast %struct.point551* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, %struct.point552* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point552* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point552* %0 to i8* + %6 = bitcast %struct.point552* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo553([2 x i32] %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point553* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, %struct.point554* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point554* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point554* %0 to i8* + %6 = bitcast %struct.point554* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, %struct.point555* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point555* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point555* %0 to i8* + %6 = bitcast %struct.point555* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, %struct.point556* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point556* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point556* %0 to i8* + %6 = bitcast %struct.point556* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, %struct.point557* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point557* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point557* %0 to i8* + %6 = bitcast %struct.point557* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, %struct.point558* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point558* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point558* %0 to i8* + %6 = bitcast %struct.point558* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, %struct.point559* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point559* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point559* %0 to i8* + %6 = bitcast %struct.point559* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, %struct.point560* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point560* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point560* %0 to i8* + %6 = bitcast %struct.point560* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, %struct.point561* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point561* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point561* %0 to i8* + %6 = bitcast %struct.point561* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, %struct.point562* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point562* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point562* %0 to i8* + %6 = bitcast %struct.point562* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, %struct.point563* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point563* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point563* %0 to i8* + %6 = bitcast %struct.point563* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, %struct.point564* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point564* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point564* %0 to i8* + %6 = bitcast %struct.point564* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, %struct.point565* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point565* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point565* %0 to i8* + %6 = bitcast %struct.point565* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, %struct.point566* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point566* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point566* %0 to i8* + %6 = bitcast %struct.point566* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, %struct.point567* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point567* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point567* %0 to i8* + %6 = bitcast %struct.point567* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo568([2 x i32] %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point568* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, %struct.point569* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point569* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point569* %0 to i8* + %6 = bitcast %struct.point569* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, %struct.point570* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point570* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point570* %0 to i8* + %6 = bitcast %struct.point570* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, %struct.point571* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point571* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point571* %0 to i8* + %6 = bitcast %struct.point571* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, %struct.point572* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point572* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point572* %0 to i8* + %6 = bitcast %struct.point572* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, %struct.point573* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point573* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point573* %0 to i8* + %6 = bitcast %struct.point573* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, %struct.point574* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point574* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point574* %0 to i8* + %6 = bitcast %struct.point574* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, %struct.point575* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point575* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point575* %0 to i8* + %6 = bitcast %struct.point575* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, %struct.point576* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point576* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point576* %0 to i8* + %6 = bitcast %struct.point576* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, %struct.point577* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point577* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point577* %0 to i8* + %6 = bitcast %struct.point577* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, %struct.point578* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point578* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point578* %0 to i8* + %6 = bitcast %struct.point578* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, %struct.point579* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point579* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point579* %0 to i8* + %6 = bitcast %struct.point579* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, %struct.point580* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point580* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point580* %0 to i8* + %6 = bitcast %struct.point580* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, %struct.point581* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point581* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point581* %0 to i8* + %6 = bitcast %struct.point581* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, %struct.point582* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point582* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point582* %0 to i8* + %6 = bitcast %struct.point582* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, %struct.point583* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point583* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point583* %0 to i8* + %6 = bitcast %struct.point583* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, %struct.point584* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point584* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point584* %0 to i8* + %6 = bitcast %struct.point584* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, %struct.point585* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point585* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point585* %0 to i8* + %6 = bitcast %struct.point585* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, %struct.point586* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point586* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point586* %0 to i8* + %6 = bitcast %struct.point586* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, %struct.point587* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point587* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point587* %0 to i8* + %6 = bitcast %struct.point587* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, %struct.point588* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point588* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point588* %0 to i8* + %6 = bitcast %struct.point588* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, %struct.point589* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point589* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point589* %0 to i8* + %6 = bitcast %struct.point589* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, %struct.point590* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point590* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point590* %0 to i8* + %6 = bitcast %struct.point590* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, %struct.point591* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point591* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point591* %0 to i8* + %6 = bitcast %struct.point591* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, %struct.point592* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point592* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point592* %0 to i8* + %6 = bitcast %struct.point592* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, %struct.point595* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point595* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point595* %0 to i8* + %6 = bitcast %struct.point595* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, %struct.point596* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point596* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point596* %0 to i8* + %6 = bitcast %struct.point596* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, %struct.point597* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point597* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point597* %0 to i8* + %6 = bitcast %struct.point597* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, %struct.point600* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point600* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point600* %0 to i8* + %6 = bitcast %struct.point600* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, %struct.point605* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point605* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point605* %0 to i8* + %6 = bitcast %struct.point605* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, %struct.point610* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point610* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point610* %0 to i8* + %6 = bitcast %struct.point610* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, %struct.point611* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point611* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point611* %0 to i8* + %6 = bitcast %struct.point611* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, %struct.point612* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point612* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point612* %0 to i8* + %6 = bitcast %struct.point612* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, %struct.point613* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point613* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point613* %0 to i8* + %6 = bitcast %struct.point613* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, %struct.point616* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point616* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point616* %0 to i8* + %6 = bitcast %struct.point616* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, %struct.point617* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point617* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point617* %0 to i8* + %6 = bitcast %struct.point617* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, %struct.point618* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point618* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point618* %0 to i8* + %6 = bitcast %struct.point618* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, %struct.point621* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point621* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point621* %0 to i8* + %6 = bitcast %struct.point621* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, %struct.point626* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point626* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point626* %0 to i8* + %6 = bitcast %struct.point626* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo631([2 x i32] %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point631* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point632* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point632* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, %struct.point633* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point633* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point633* %0 to i8* + %6 = bitcast %struct.point633* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, %struct.point634* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point634* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point634* %0 to i8* + %6 = bitcast %struct.point634* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, %struct.point635* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point635* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point635* %0 to i8* + %6 = bitcast %struct.point635* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, %struct.point636* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point636* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point636* %0 to i8* + %6 = bitcast %struct.point636* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, %struct.point637* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point637* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point637* %0 to i8* + %6 = bitcast %struct.point637* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, %struct.point638* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point638* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point638* %0 to i8* + %6 = bitcast %struct.point638* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, %struct.point639* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point639* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point639* %0 to i8* + %6 = bitcast %struct.point639* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, %struct.point640* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point640* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point640* %0 to i8* + %6 = bitcast %struct.point640* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, %struct.point641* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point641* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point641* %0 to i8* + %6 = bitcast %struct.point641* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, %struct.point642* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point642* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point642* %0 to i8* + %6 = bitcast %struct.point642* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, %struct.point643* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point643* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point643* %0 to i8* + %6 = bitcast %struct.point643* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, %struct.point644* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point644* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point644* %0 to i8* + %6 = bitcast %struct.point644* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, %struct.point645* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point645* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point645* %0 to i8* + %6 = bitcast %struct.point645* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, %struct.point646* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point646* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point646* %0 to i8* + %6 = bitcast %struct.point646* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, %struct.point647* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point647* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point647* %0 to i8* + %6 = bitcast %struct.point647* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, %struct.point648* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point648* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point648* %0 to i8* + %6 = bitcast %struct.point648* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, %struct.point649* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point649* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point649* %0 to i8* + %6 = bitcast %struct.point649* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, %struct.point650* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point650* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point650* %0 to i8* + %6 = bitcast %struct.point650* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, %struct.point651* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point651* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point651* %0 to i8* + %6 = bitcast %struct.point651* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo652([2 x i32] %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point652* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, %struct.point653* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point653* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point653* %0 to i8* + %6 = bitcast %struct.point653* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, %struct.point654* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point654* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point654* %0 to i8* + %6 = bitcast %struct.point654* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, %struct.point655* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point655* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point655* %0 to i8* + %6 = bitcast %struct.point655* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, %struct.point656* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point656* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point656* %0 to i8* + %6 = bitcast %struct.point656* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, %struct.point657* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point657* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point657* %0 to i8* + %6 = bitcast %struct.point657* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, %struct.point658* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point658* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point658* %0 to i8* + %6 = bitcast %struct.point658* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, %struct.point659* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point659* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point659* %0 to i8* + %6 = bitcast %struct.point659* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, %struct.point660* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point660* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point660* %0 to i8* + %6 = bitcast %struct.point660* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, %struct.point661* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point661* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point661* %0 to i8* + %6 = bitcast %struct.point661* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, %struct.point662* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point662* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point662* %0 to i8* + %6 = bitcast %struct.point662* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, %struct.point663* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point663* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point663* %0 to i8* + %6 = bitcast %struct.point663* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, %struct.point664* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point664* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point664* %0 to i8* + %6 = bitcast %struct.point664* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, %struct.point665* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point665* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point665* %0 to i8* + %6 = bitcast %struct.point665* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, %struct.point666* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point666* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point666* %0 to i8* + %6 = bitcast %struct.point666* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, %struct.point667* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point667* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point667* %0 to i8* + %6 = bitcast %struct.point667* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, %struct.point668* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point668* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point668* %0 to i8* + %6 = bitcast %struct.point668* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, %struct.point669* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point669* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point669* %0 to i8* + %6 = bitcast %struct.point669* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, %struct.point670* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point670* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point670* %0 to i8* + %6 = bitcast %struct.point670* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, %struct.point671* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point671* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point671* %0 to i8* + %6 = bitcast %struct.point671* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, %struct.point672* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point672* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point672* %0 to i8* + %6 = bitcast %struct.point672* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, %struct.point673* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point673* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point673* %0 to i8* + %6 = bitcast %struct.point673* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, %struct.point674* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point674* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point674* %0 to i8* + %6 = bitcast %struct.point674* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, %struct.point675* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point675* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point675* %0 to i8* + %6 = bitcast %struct.point675* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, %struct.point676* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point676* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point676* %0 to i8* + %6 = bitcast %struct.point676* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, %struct.point679* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point679* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point679* %0 to i8* + %6 = bitcast %struct.point679* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, %struct.point680* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point680* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point680* %0 to i8* + %6 = bitcast %struct.point680* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, %struct.point681* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point681* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point681* %0 to i8* + %6 = bitcast %struct.point681* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, %struct.point684* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point684* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point684* %0 to i8* + %6 = bitcast %struct.point684* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, %struct.point689* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point689* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point689* %0 to i8* + %6 = bitcast %struct.point689* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, %struct.point694* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point694* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point694* %0 to i8* + %6 = bitcast %struct.point694* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, %struct.point695* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point695* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point695* %0 to i8* + %6 = bitcast %struct.point695* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, %struct.point696* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point696* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point696* %0 to i8* + %6 = bitcast %struct.point696* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, %struct.point697* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point697* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point697* %0 to i8* + %6 = bitcast %struct.point697* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, %struct.point700* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point700* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point700* %0 to i8* + %6 = bitcast %struct.point700* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, %struct.point701* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point701* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point701* %0 to i8* + %6 = bitcast %struct.point701* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, %struct.point702* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point702* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point702* %0 to i8* + %6 = bitcast %struct.point702* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, %struct.point705* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point705* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point705* %0 to i8* + %6 = bitcast %struct.point705* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, %struct.point710* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point710* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point710* %0 to i8* + %6 = bitcast %struct.point710* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, %struct.point715* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point715* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point715* %0 to i8* + %6 = bitcast %struct.point715* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, %struct.point716* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point716* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point716* %0 to i8* + %6 = bitcast %struct.point716* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, %struct.point717* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point717* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point717* %0 to i8* + %6 = bitcast %struct.point717* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, %struct.point718* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point718* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point718* %0 to i8* + %6 = bitcast %struct.point718* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, %struct.point719* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point719* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point719* %0 to i8* + %6 = bitcast %struct.point719* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, %struct.point720* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point720* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point720* %0 to i8* + %6 = bitcast %struct.point720* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, %struct.point721* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point721* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point721* %0 to i8* + %6 = bitcast %struct.point721* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, %struct.point722* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point722* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point722* %0 to i8* + %6 = bitcast %struct.point722* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, %struct.point723* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point723* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point723* %0 to i8* + %6 = bitcast %struct.point723* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, %struct.point724* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point724* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point724* %0 to i8* + %6 = bitcast %struct.point724* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, %struct.point725* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point725* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point725* %0 to i8* + %6 = bitcast %struct.point725* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, %struct.point726* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point726* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point726* %0 to i8* + %6 = bitcast %struct.point726* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, %struct.point731* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point731* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point731* %0 to i8* + %6 = bitcast %struct.point731* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, %struct.point736* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point736* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point736* %0 to i8* + %6 = bitcast %struct.point736* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, %struct.point737* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point737* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point737* %0 to i8* + %6 = bitcast %struct.point737* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, %struct.point738* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point738* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point738* %0 to i8* + %6 = bitcast %struct.point738* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, %struct.point739* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point739* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point739* %0 to i8* + %6 = bitcast %struct.point739* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, %struct.point740* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point740* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point740* %0 to i8* + %6 = bitcast %struct.point740* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, %struct.point741* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point741* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point741* %0 to i8* + %6 = bitcast %struct.point741* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, %struct.point742* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point742* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point742* %0 to i8* + %6 = bitcast %struct.point742* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, %struct.point743* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point743* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point743* %0 to i8* + %6 = bitcast %struct.point743* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, %struct.point744* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point744* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point744* %0 to i8* + %6 = bitcast %struct.point744* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, %struct.point745* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point745* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point745* %0 to i8* + %6 = bitcast %struct.point745* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, %struct.point746* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point746* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point746* %0 to i8* + %6 = bitcast %struct.point746* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, %struct.point747* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point747* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point747* %0 to i8* + %6 = bitcast %struct.point747* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, %struct.point752* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point752* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point752* %0 to i8* + %6 = bitcast %struct.point752* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, %struct.point757* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point757* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point757* %0 to i8* + %6 = bitcast %struct.point757* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, %struct.point758* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point758* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point758* %0 to i8* + %6 = bitcast %struct.point758* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, %struct.point759* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point759* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point759* %0 to i8* + %6 = bitcast %struct.point759* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, %struct.point760* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point760* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point760* %0 to i8* + %6 = bitcast %struct.point760* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, %struct.point763* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point763* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point763* %0 to i8* + %6 = bitcast %struct.point763* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, %struct.point764* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point764* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point764* %0 to i8* + %6 = bitcast %struct.point764* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, %struct.point765* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point765* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point765* %0 to i8* + %6 = bitcast %struct.point765* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, %struct.point768* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point768* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point768* %0 to i8* + %6 = bitcast %struct.point768* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, %struct.point773* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point773* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point773* %0 to i8* + %6 = bitcast %struct.point773* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, %struct.point778* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point778* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point778* %0 to i8* + %6 = bitcast %struct.point778* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, %struct.point779* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point779* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point779* %0 to i8* + %6 = bitcast %struct.point779* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, %struct.point780* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point780* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point780* %0 to i8* + %6 = bitcast %struct.point780* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, %struct.point781* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point781* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point781* %0 to i8* + %6 = bitcast %struct.point781* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, %struct.point784* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point784* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point784* %0 to i8* + %6 = bitcast %struct.point784* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, %struct.point785* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point785* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point785* %0 to i8* + %6 = bitcast %struct.point785* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, %struct.point786* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point786* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point786* %0 to i8* + %6 = bitcast %struct.point786* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, %struct.point789* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point789* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point789* %0 to i8* + %6 = bitcast %struct.point789* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, %struct.point794* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point794* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point794* %0 to i8* + %6 = bitcast %struct.point794* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo799([2 x i32] %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point799* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point800* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point800* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point801* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point801* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, %struct.point802* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point802* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point802* %0 to i8* + %6 = bitcast %struct.point802* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, %struct.point803* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point803* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point803* %0 to i8* + %6 = bitcast %struct.point803* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, %struct.point804* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point804* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point804* %0 to i8* + %6 = bitcast %struct.point804* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo805([2 x i32] %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point805* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, %struct.point806* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point806* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point806* %0 to i8* + %6 = bitcast %struct.point806* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, %struct.point807* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point807* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point807* %0 to i8* + %6 = bitcast %struct.point807* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, %struct.point808* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point808* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point808* %0 to i8* + %6 = bitcast %struct.point808* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, %struct.point809* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point809* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point809* %0 to i8* + %6 = bitcast %struct.point809* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, %struct.point810* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point810* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point810* %0 to i8* + %6 = bitcast %struct.point810* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, %struct.point811* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point811* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point811* %0 to i8* + %6 = bitcast %struct.point811* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, %struct.point812* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point812* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point812* %0 to i8* + %6 = bitcast %struct.point812* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, %struct.point813* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point813* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point813* %0 to i8* + %6 = bitcast %struct.point813* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, %struct.point814* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point814* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point814* %0 to i8* + %6 = bitcast %struct.point814* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, %struct.point815* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point815* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point815* %0 to i8* + %6 = bitcast %struct.point815* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, %struct.point816* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point816* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point816* %0 to i8* + %6 = bitcast %struct.point816* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, %struct.point817* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point817* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point817* %0 to i8* + %6 = bitcast %struct.point817* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, %struct.point818* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point818* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point818* %0 to i8* + %6 = bitcast %struct.point818* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, %struct.point819* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point819* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point819* %0 to i8* + %6 = bitcast %struct.point819* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo820([2 x i32] %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point820* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, %struct.point821* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point821* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point821* %0 to i8* + %6 = bitcast %struct.point821* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, %struct.point822* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point822* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point822* %0 to i8* + %6 = bitcast %struct.point822* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, %struct.point823* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point823* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point823* %0 to i8* + %6 = bitcast %struct.point823* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, %struct.point824* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point824* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point824* %0 to i8* + %6 = bitcast %struct.point824* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, %struct.point825* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point825* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point825* %0 to i8* + %6 = bitcast %struct.point825* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, %struct.point826* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point826* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point826* %0 to i8* + %6 = bitcast %struct.point826* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, %struct.point827* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point827* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point827* %0 to i8* + %6 = bitcast %struct.point827* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, %struct.point828* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point828* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point828* %0 to i8* + %6 = bitcast %struct.point828* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, %struct.point829* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point829* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point829* %0 to i8* + %6 = bitcast %struct.point829* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, %struct.point830* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point830* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point830* %0 to i8* + %6 = bitcast %struct.point830* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, %struct.point831* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point831* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point831* %0 to i8* + %6 = bitcast %struct.point831* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, %struct.point832* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point832* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point832* %0 to i8* + %6 = bitcast %struct.point832* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, %struct.point833* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point833* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point833* %0 to i8* + %6 = bitcast %struct.point833* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, %struct.point834* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point834* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point834* %0 to i8* + %6 = bitcast %struct.point834* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, %struct.point835* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point835* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point835* %0 to i8* + %6 = bitcast %struct.point835* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, %struct.point836* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point836* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point836* %0 to i8* + %6 = bitcast %struct.point836* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, %struct.point837* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point837* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point837* %0 to i8* + %6 = bitcast %struct.point837* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, %struct.point838* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point838* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point838* %0 to i8* + %6 = bitcast %struct.point838* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, %struct.point839* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point839* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point839* %0 to i8* + %6 = bitcast %struct.point839* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, %struct.point840* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point840* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point840* %0 to i8* + %6 = bitcast %struct.point840* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, %struct.point841* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point841* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point841* %0 to i8* + %6 = bitcast %struct.point841* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, %struct.point842* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point842* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point842* %0 to i8* + %6 = bitcast %struct.point842* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, %struct.point843* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point843* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point843* %0 to i8* + %6 = bitcast %struct.point843* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, %struct.point844* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point844* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point844* %0 to i8* + %6 = bitcast %struct.point844* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, %struct.point847* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point847* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point847* %0 to i8* + %6 = bitcast %struct.point847* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, %struct.point848* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point848* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point848* %0 to i8* + %6 = bitcast %struct.point848* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, %struct.point849* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point849* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point849* %0 to i8* + %6 = bitcast %struct.point849* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, %struct.point852* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point852* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point852* %0 to i8* + %6 = bitcast %struct.point852* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, %struct.point857* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point857* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point857* %0 to i8* + %6 = bitcast %struct.point857* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, %struct.point862* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point862* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point862* %0 to i8* + %6 = bitcast %struct.point862* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, %struct.point863* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point863* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point863* %0 to i8* + %6 = bitcast %struct.point863* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, %struct.point864* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point864* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point864* %0 to i8* + %6 = bitcast %struct.point864* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, %struct.point865* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point865* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point865* %0 to i8* + %6 = bitcast %struct.point865* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, %struct.point868* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point868* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point868* %0 to i8* + %6 = bitcast %struct.point868* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, %struct.point869* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point869* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point869* %0 to i8* + %6 = bitcast %struct.point869* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, %struct.point870* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point870* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point870* %0 to i8* + %6 = bitcast %struct.point870* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, %struct.point873* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point873* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point873* %0 to i8* + %6 = bitcast %struct.point873* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, %struct.point878* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point878* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point878* %0 to i8* + %6 = bitcast %struct.point878* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo883([2 x i32] %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point883* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point884* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point884* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, %struct.point885* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point885* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point885* %0 to i8* + %6 = bitcast %struct.point885* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, %struct.point886* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point886* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point886* %0 to i8* + %6 = bitcast %struct.point886* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, %struct.point887* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point887* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point887* %0 to i8* + %6 = bitcast %struct.point887* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, %struct.point888* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point888* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point888* %0 to i8* + %6 = bitcast %struct.point888* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, %struct.point889* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point889* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point889* %0 to i8* + %6 = bitcast %struct.point889* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, %struct.point890* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point890* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point890* %0 to i8* + %6 = bitcast %struct.point890* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, %struct.point891* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point891* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point891* %0 to i8* + %6 = bitcast %struct.point891* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, %struct.point892* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point892* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point892* %0 to i8* + %6 = bitcast %struct.point892* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, %struct.point893* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point893* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point893* %0 to i8* + %6 = bitcast %struct.point893* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, %struct.point894* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point894* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point894* %0 to i8* + %6 = bitcast %struct.point894* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, %struct.point895* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point895* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point895* %0 to i8* + %6 = bitcast %struct.point895* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, %struct.point896* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point896* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point896* %0 to i8* + %6 = bitcast %struct.point896* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, %struct.point897* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point897* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point897* %0 to i8* + %6 = bitcast %struct.point897* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, %struct.point898* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point898* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point898* %0 to i8* + %6 = bitcast %struct.point898* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, %struct.point899* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point899* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point899* %0 to i8* + %6 = bitcast %struct.point899* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, %struct.point900* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point900* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point900* %0 to i8* + %6 = bitcast %struct.point900* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, %struct.point901* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point901* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point901* %0 to i8* + %6 = bitcast %struct.point901* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, %struct.point902* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point902* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point902* %0 to i8* + %6 = bitcast %struct.point902* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, %struct.point903* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point903* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point903* %0 to i8* + %6 = bitcast %struct.point903* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo904([2 x i32] %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point904* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, %struct.point905* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point905* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point905* %0 to i8* + %6 = bitcast %struct.point905* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, %struct.point906* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point906* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point906* %0 to i8* + %6 = bitcast %struct.point906* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, %struct.point907* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point907* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point907* %0 to i8* + %6 = bitcast %struct.point907* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, %struct.point908* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point908* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point908* %0 to i8* + %6 = bitcast %struct.point908* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, %struct.point909* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point909* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point909* %0 to i8* + %6 = bitcast %struct.point909* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, %struct.point910* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point910* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point910* %0 to i8* + %6 = bitcast %struct.point910* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, %struct.point911* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point911* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point911* %0 to i8* + %6 = bitcast %struct.point911* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, %struct.point912* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point912* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point912* %0 to i8* + %6 = bitcast %struct.point912* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, %struct.point913* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point913* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point913* %0 to i8* + %6 = bitcast %struct.point913* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, %struct.point914* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point914* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point914* %0 to i8* + %6 = bitcast %struct.point914* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, %struct.point915* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point915* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point915* %0 to i8* + %6 = bitcast %struct.point915* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, %struct.point916* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point916* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point916* %0 to i8* + %6 = bitcast %struct.point916* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, %struct.point917* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point917* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point917* %0 to i8* + %6 = bitcast %struct.point917* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, %struct.point918* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point918* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point918* %0 to i8* + %6 = bitcast %struct.point918* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, %struct.point919* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point919* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point919* %0 to i8* + %6 = bitcast %struct.point919* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, %struct.point920* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point920* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point920* %0 to i8* + %6 = bitcast %struct.point920* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, %struct.point921* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point921* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point921* %0 to i8* + %6 = bitcast %struct.point921* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, %struct.point922* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point922* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point922* %0 to i8* + %6 = bitcast %struct.point922* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, %struct.point923* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point923* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point923* %0 to i8* + %6 = bitcast %struct.point923* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, %struct.point924* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point924* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point924* %0 to i8* + %6 = bitcast %struct.point924* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, %struct.point925* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point925* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point925* %0 to i8* + %6 = bitcast %struct.point925* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, %struct.point926* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point926* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point926* %0 to i8* + %6 = bitcast %struct.point926* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, %struct.point927* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point927* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point927* %0 to i8* + %6 = bitcast %struct.point927* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, %struct.point928* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point928* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point928* %0 to i8* + %6 = bitcast %struct.point928* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, %struct.point931* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point931* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point931* %0 to i8* + %6 = bitcast %struct.point931* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, %struct.point932* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point932* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point932* %0 to i8* + %6 = bitcast %struct.point932* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, %struct.point933* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point933* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point933* %0 to i8* + %6 = bitcast %struct.point933* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, %struct.point936* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point936* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point936* %0 to i8* + %6 = bitcast %struct.point936* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, %struct.point941* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point941* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point941* %0 to i8* + %6 = bitcast %struct.point941* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, %struct.point946* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point946* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point946* %0 to i8* + %6 = bitcast %struct.point946* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, %struct.point947* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point947* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point947* %0 to i8* + %6 = bitcast %struct.point947* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, %struct.point948* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point948* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point948* %0 to i8* + %6 = bitcast %struct.point948* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, %struct.point949* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point949* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point949* %0 to i8* + %6 = bitcast %struct.point949* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, %struct.point952* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point952* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point952* %0 to i8* + %6 = bitcast %struct.point952* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, %struct.point953* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point953* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point953* %0 to i8* + %6 = bitcast %struct.point953* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, %struct.point954* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point954* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point954* %0 to i8* + %6 = bitcast %struct.point954* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, %struct.point957* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point957* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point957* %0 to i8* + %6 = bitcast %struct.point957* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, %struct.point962* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point962* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point962* %0 to i8* + %6 = bitcast %struct.point962* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, %struct.point967* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point967* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point967* %0 to i8* + %6 = bitcast %struct.point967* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, %struct.point968* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point968* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point968* %0 to i8* + %6 = bitcast %struct.point968* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, %struct.point969* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point969* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point969* %0 to i8* + %6 = bitcast %struct.point969* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, %struct.point970* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point970* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point970* %0 to i8* + %6 = bitcast %struct.point970* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, %struct.point971* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point971* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point971* %0 to i8* + %6 = bitcast %struct.point971* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, %struct.point972* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point972* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point972* %0 to i8* + %6 = bitcast %struct.point972* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, %struct.point973* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point973* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point973* %0 to i8* + %6 = bitcast %struct.point973* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, %struct.point974* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point974* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point974* %0 to i8* + %6 = bitcast %struct.point974* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, %struct.point975* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point975* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point975* %0 to i8* + %6 = bitcast %struct.point975* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, %struct.point976* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point976* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point976* %0 to i8* + %6 = bitcast %struct.point976* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, %struct.point977* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point977* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point977* %0 to i8* + %6 = bitcast %struct.point977* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, %struct.point978* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point978* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point978* %0 to i8* + %6 = bitcast %struct.point978* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, %struct.point983* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point983* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point983* %0 to i8* + %6 = bitcast %struct.point983* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, %struct.point988* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point988* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point988* %0 to i8* + %6 = bitcast %struct.point988* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, %struct.point989* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point989* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point989* %0 to i8* + %6 = bitcast %struct.point989* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, %struct.point990* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point990* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point990* %0 to i8* + %6 = bitcast %struct.point990* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, %struct.point991* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point991* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point991* %0 to i8* + %6 = bitcast %struct.point991* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, %struct.point992* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point992* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point992* %0 to i8* + %6 = bitcast %struct.point992* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, %struct.point993* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point993* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point993* %0 to i8* + %6 = bitcast %struct.point993* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, %struct.point994* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point994* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point994* %0 to i8* + %6 = bitcast %struct.point994* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, %struct.point995* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point995* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point995* %0 to i8* + %6 = bitcast %struct.point995* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, %struct.point996* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point996* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point996* %0 to i8* + %6 = bitcast %struct.point996* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, %struct.point997* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point997* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point997* %0 to i8* + %6 = bitcast %struct.point997* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, %struct.point998* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point998* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point998* %0 to i8* + %6 = bitcast %struct.point998* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, %struct.point999* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point999* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point999* %0 to i8* + %6 = bitcast %struct.point999* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, %struct.point1004* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1004* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1004* %0 to i8* + %6 = bitcast %struct.point1004* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, %struct.point1009* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1009* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1009* %0 to i8* + %6 = bitcast %struct.point1009* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, %struct.point1010* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1010* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1010* %0 to i8* + %6 = bitcast %struct.point1010* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, %struct.point1011* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1011* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1011* %0 to i8* + %6 = bitcast %struct.point1011* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, %struct.point1012* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1012* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1012* %0 to i8* + %6 = bitcast %struct.point1012* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, %struct.point1015* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1015* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1015* %0 to i8* + %6 = bitcast %struct.point1015* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, %struct.point1016* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1016* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1016* %0 to i8* + %6 = bitcast %struct.point1016* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, %struct.point1017* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1017* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1017* %0 to i8* + %6 = bitcast %struct.point1017* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, %struct.point1020* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1020* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1020* %0 to i8* + %6 = bitcast %struct.point1020* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, %struct.point1025* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1025* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1025* %0 to i8* + %6 = bitcast %struct.point1025* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, %struct.point1030* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1030* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1030* %0 to i8* + %6 = bitcast %struct.point1030* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, %struct.point1031* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1031* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1031* %0 to i8* + %6 = bitcast %struct.point1031* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, %struct.point1032* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1032* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1032* %0 to i8* + %6 = bitcast %struct.point1032* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, %struct.point1033* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1033* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1033* %0 to i8* + %6 = bitcast %struct.point1033* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, %struct.point1036* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1036* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1036* %0 to i8* + %6 = bitcast %struct.point1036* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, %struct.point1037* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1037* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1037* %0 to i8* + %6 = bitcast %struct.point1037* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, %struct.point1038* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1038* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1038* %0 to i8* + %6 = bitcast %struct.point1038* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, %struct.point1041* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1041* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1041* %0 to i8* + %6 = bitcast %struct.point1041* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, %struct.point1046* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1046* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1046* %0 to i8* + %6 = bitcast %struct.point1046* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_pointer.ll b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_pointer.ll new file mode 100644 index 00000000..a511e6bc --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32d/struct_pointer.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i32 %0 to i8* + store i8* %5, i8** %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 4 + %10 = ptrtoint i8* %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float32.ll new file mode 100644 index 00000000..ae89a91b --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float32.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = bitcast %struct.array1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = bitcast %struct.array1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = alloca %struct.array2, align 4 + %5 = bitcast %struct.array2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.array2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float64.ll new file mode 100644 index 00000000..2caac8d1 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_float64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int16.ll new file mode 100644 index 00000000..9f0694ee --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int16.ll @@ -0,0 +1,292 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i16]* %4 to i32* + store i32 %0, i32* %5, align 2 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i16]* %8 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array3* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %9, i8* align 2 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 2 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 2 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int32.ll new file mode 100644 index 00000000..1eec40d1 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int32.ll @@ -0,0 +1,268 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i32]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i32]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define 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, %struct.array2* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int64.ll new file mode 100644 index 00000000..6f8b7c7a --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int8.ll new file mode 100644 index 00000000..000d8f40 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_int8.ll @@ -0,0 +1,336 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 1, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 2, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; 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 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 3, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to i32* + store i32 %0, i32* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array5* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 5, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array6* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 6, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array7* %3, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %4, align 4 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i32]* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 7, i1 false) + %14 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %14 +} + +; 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, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 1 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/array_pointer.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_pointer.ll new file mode 100644 index 00000000..e5925386 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/array_pointer.ll @@ -0,0 +1,270 @@ +; 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-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [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, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/basic.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/basic.ll new file mode 100644 index 00000000..ac7540c8 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/composite.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/composite.ll new file mode 100644 index 00000000..f085a8c1 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/composite.ll @@ -0,0 +1,148 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + %6 = bitcast [1 x i32]* %5 to i32* + store i32 %0, i32* %6, align 4 + %7 = bitcast %struct.array10* %2 to i8* + %8 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + %9 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %9, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_array11([2 x i32] %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.array11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point10* %2 to i8* + %7 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %8, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_point11([2 x i32] %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array20* %2 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %8, i32 0, i32 0 + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, %struct.array21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array21* %0 to i8* + %6 = bitcast %struct.array21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to [2 x i32]* + %10 = load [2 x i32], [2 x i32]* %9, align 4 + ret [2 x i32] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/empty.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/empty.ll new file mode 100644 index 00000000..fd9c2b60 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float32.ll new file mode 100644 index 00000000..6c2303b9 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float32.ll @@ -0,0 +1,276 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = bitcast %struct.point1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = bitcast %struct.point1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = alloca %struct.point2, align 4 + %5 = bitcast %struct.point2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float64.ll new file mode 100644 index 00000000..d42ff7a7 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_float64.ll @@ -0,0 +1,265 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = bitcast double* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int16.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int16.ll new file mode 100644 index 00000000..8e88954f --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int16.ll @@ -0,0 +1,280 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = bitcast %struct.point2* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point2* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int32.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int32.ll new file mode 100644 index 00000000..be568846 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int32.ll @@ -0,0 +1,266 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int64.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int64.ll new file mode 100644 index 00000000..db067594 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int64.ll @@ -0,0 +1,263 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int8.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int8.ll new file mode 100644 index 00000000..63aab613 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_int8.ll @@ -0,0 +1,316 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i32 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 2, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 2, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; 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 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 3, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 3, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = bitcast %struct.point4* %3 to i32* + store i32 %0, i32* %4, align 1 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 4, i1 false) + %7 = bitcast %struct.point4* %2 to i32* + %8 = load i32, i32* %7, align 1 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 5, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 5, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 7, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 7, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 1 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_mixed.ll new file mode 100644 index 00000000..f94543f0 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_mixed.ll @@ -0,0 +1,12896 @@ +; 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-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = bitcast %struct.point1* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point1* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, float } @demo4(i8 %0, float %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { i8, float }* + %6 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 4 + %7 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point4* %3 to { i8, float }* + %11 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i8, float } undef, i8 %12, 0 + %16 = insertvalue { i8, float } %15, float %14, 1 + ret { i8, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point6* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point7* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point7* %2 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point7* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, float } @demo10(i16 %0, float %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = alloca %struct.point10, align 4 + %5 = bitcast %struct.point10* %4 to { i16, float }* + %6 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 4 + %7 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point10* %3 to i8* + %9 = bitcast %struct.point10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point10* %3 to { i16, float }* + %11 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 4 + %13 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i16, float } undef, i16 %12, 0 + %16 = insertvalue { i16, float } %15, float %14, 1 + ret { i16, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point12* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point13* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point13* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point14* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point14* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, float } @demo16(i32 %0, float %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = alloca %struct.point16, align 4 + %5 = bitcast %struct.point16* %4 to { i32, float }* + %6 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 4 + %7 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point16* %3 to i8* + %9 = bitcast %struct.point16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point16* %3 to { i32, float }* + %11 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i32, float } undef, i32 %12, 0 + %16 = insertvalue { i32, float } %15, float %14, 1 + ret { i32, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, 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 + %4 = bitcast %struct.point18* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo21(%struct.point21* noalias sret(%struct.point21) align 8 %0, %struct.point21* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo22(%struct.point22* noalias sret(%struct.point22) align 8 %0, %struct.point22* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point22* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point22* %0 to i8* + %6 = bitcast %struct.point22* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo23(%struct.point23* noalias sret(%struct.point23) align 8 %0, %struct.point23* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point23* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point23* %0 to i8* + %6 = bitcast %struct.point23* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo24(%struct.point24* noalias sret(%struct.point24) align 8 %0, %struct.point24* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point24* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point24* %0 to i8* + %6 = bitcast %struct.point24* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i8 } @demo25(float %0, i8 %1) #0 { + %3 = alloca %struct.point25, align 4 + %4 = alloca %struct.point25, align 4 + %5 = bitcast %struct.point25* %4 to { float, i8 }* + %6 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 4 + %8 = bitcast %struct.point25* %3 to i8* + %9 = bitcast %struct.point25* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point25* %3 to { float, i8 }* + %11 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 4 + %15 = insertvalue { float, i8 } undef, float %12, 0 + %16 = insertvalue { float, i8 } %15, i8 %14, 1 + ret { float, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i16 } @demo26(float %0, i16 %1) #0 { + %3 = alloca %struct.point26, align 4 + %4 = alloca %struct.point26, align 4 + %5 = bitcast %struct.point26* %4 to { float, i16 }* + %6 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 4 + %8 = bitcast %struct.point26* %3 to i8* + %9 = bitcast %struct.point26* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point26* %3 to { float, i16 }* + %11 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 4 + %15 = insertvalue { float, i16 } undef, float %12, 0 + %16 = insertvalue { float, i16 } %15, i16 %14, 1 + ret { float, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i32 } @demo27(float %0, i32 %1) #0 { + %3 = alloca %struct.point27, align 4 + %4 = alloca %struct.point27, align 4 + %5 = bitcast %struct.point27* %4 to { float, i32 }* + %6 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 4 + %8 = bitcast %struct.point27* %3 to i8* + %9 = bitcast %struct.point27* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + %10 = bitcast %struct.point27* %3 to { float, i32 }* + %11 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = insertvalue { float, i32 } undef, float %12, 0 + %16 = insertvalue { float, i32 } %15, i32 %14, 1 + ret { float, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo28(%struct.point28* noalias sret(%struct.point28) align 8 %0, %struct.point28* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point28* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point28* %0 to i8* + %6 = bitcast %struct.point28* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo29(%struct.point29* noalias sret(%struct.point29) align 8 %0, %struct.point29* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point29* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point29* %0 to i8* + %6 = bitcast %struct.point29* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo30([2 x i32] %0) #0 { + %2 = alloca %struct.point30, align 4 + %3 = alloca %struct.point30, align 4 + %4 = bitcast %struct.point30* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo31(%struct.point31* noalias sret(%struct.point31) align 8 %0, %struct.point31* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point31* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point31* %0 to i8* + %6 = bitcast %struct.point31* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo32(%struct.point32* noalias sret(%struct.point32) align 8 %0, %struct.point32* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point32* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point32* %0 to i8* + %6 = bitcast %struct.point32* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo33(%struct.point33* noalias sret(%struct.point33) align 8 %0, %struct.point33* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point33* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point33* %0 to i8* + %6 = bitcast %struct.point33* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo34(%struct.point34* noalias sret(%struct.point34) align 8 %0, %struct.point34* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point34* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point34* %0 to i8* + %6 = bitcast %struct.point34* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo35(%struct.point35* noalias sret(%struct.point35) align 8 %0, %struct.point35* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point35* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point35* %0 to i8* + %6 = bitcast %struct.point35* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo36(%struct.point36* noalias sret(%struct.point36) align 8 %0, %struct.point36* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point36* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point36* %0 to i8* + %6 = bitcast %struct.point36* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo37([2 x i32] %0) #0 { + %2 = alloca %struct.point37, align 4 + %3 = alloca %struct.point37, align 4 + %4 = bitcast %struct.point37* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point38* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point39* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo40(%struct.point40* noalias sret(%struct.point40) align 8 %0, %struct.point40* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point40* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point40* %0 to i8* + %6 = bitcast %struct.point40* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo41([2 x i32] %0) #0 { + %2 = alloca %struct.point41, align 4 + %3 = alloca %struct.point41, align 4 + %4 = bitcast %struct.point41* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo42(%struct.point42* noalias sret(%struct.point42) align 8 %0, %struct.point42* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point42* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point42* %0 to i8* + %6 = bitcast %struct.point42* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point45* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point45* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point46* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point46* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, %struct.point47* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point47* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point47* %0 to i8* + %6 = bitcast %struct.point47* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, %struct.point48* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point48* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point48* %0 to i8* + %6 = bitcast %struct.point48* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo49([2 x i32] %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point49* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, %struct.point50* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point50* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point50* %0 to i8* + %6 = bitcast %struct.point50* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, %struct.point51* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point51* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point51* %0 to i8* + %6 = bitcast %struct.point51* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, %struct.point52* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point52* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point52* %0 to i8* + %6 = bitcast %struct.point52* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, %struct.point53* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point53* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point53* %0 to i8* + %6 = bitcast %struct.point53* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, %struct.point54* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point54* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point54* %0 to i8* + %6 = bitcast %struct.point54* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, %struct.point55* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point55* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point55* %0 to i8* + %6 = bitcast %struct.point55* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, %struct.point56* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point56* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point56* %0 to i8* + %6 = bitcast %struct.point56* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, %struct.point57* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point57* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point57* %0 to i8* + %6 = bitcast %struct.point57* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, %struct.point58* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point58* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point58* %0 to i8* + %6 = bitcast %struct.point58* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, %struct.point59* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point59* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point59* %0 to i8* + %6 = bitcast %struct.point59* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, %struct.point60* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point60* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point60* %0 to i8* + %6 = bitcast %struct.point60* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, %struct.point61* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point61* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point61* %0 to i8* + %6 = bitcast %struct.point61* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, %struct.point62* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point62* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point62* %0 to i8* + %6 = bitcast %struct.point62* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, %struct.point63* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point63* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point63* %0 to i8* + %6 = bitcast %struct.point63* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point65* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point65* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point66* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point66* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, %struct.point67* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point67* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point67* %0 to i8* + %6 = bitcast %struct.point67* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, %struct.point68* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point68* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point68* %0 to i8* + %6 = bitcast %struct.point68* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, %struct.point69* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point69* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point69* %0 to i8* + %6 = bitcast %struct.point69* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo70([2 x i32] %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point70* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, %struct.point71* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point71* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point71* %0 to i8* + %6 = bitcast %struct.point71* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, %struct.point72* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point72* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point72* %0 to i8* + %6 = bitcast %struct.point72* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, %struct.point73* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point73* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point73* %0 to i8* + %6 = bitcast %struct.point73* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, %struct.point74* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point74* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point74* %0 to i8* + %6 = bitcast %struct.point74* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, %struct.point75* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point75* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point75* %0 to i8* + %6 = bitcast %struct.point75* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, %struct.point76* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point76* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point76* %0 to i8* + %6 = bitcast %struct.point76* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, %struct.point77* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point77* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point77* %0 to i8* + %6 = bitcast %struct.point77* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, %struct.point78* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point78* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point78* %0 to i8* + %6 = bitcast %struct.point78* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, %struct.point79* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point79* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point79* %0 to i8* + %6 = bitcast %struct.point79* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, %struct.point80* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point80* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point80* %0 to i8* + %6 = bitcast %struct.point80* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, %struct.point81* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point81* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point81* %0 to i8* + %6 = bitcast %struct.point81* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, %struct.point82* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point82* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point82* %0 to i8* + %6 = bitcast %struct.point82* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, %struct.point83* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point83* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point83* %0 to i8* + %6 = bitcast %struct.point83* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, %struct.point84* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point84* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point84* %0 to i8* + %6 = bitcast %struct.point84* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo85([2 x i32] %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point85* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, %struct.point86* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point86* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point86* %0 to i8* + %6 = bitcast %struct.point86* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, %struct.point87* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point87* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point87* %0 to i8* + %6 = bitcast %struct.point87* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, %struct.point88* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point88* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point88* %0 to i8* + %6 = bitcast %struct.point88* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, %struct.point89* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point89* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point89* %0 to i8* + %6 = bitcast %struct.point89* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, %struct.point90* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point90* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point90* %0 to i8* + %6 = bitcast %struct.point90* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, %struct.point91* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point91* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point91* %0 to i8* + %6 = bitcast %struct.point91* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, %struct.point92* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point92* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point92* %0 to i8* + %6 = bitcast %struct.point92* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, %struct.point93* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point93* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point93* %0 to i8* + %6 = bitcast %struct.point93* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, %struct.point94* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point94* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point94* %0 to i8* + %6 = bitcast %struct.point94* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, %struct.point95* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point95* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point95* %0 to i8* + %6 = bitcast %struct.point95* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, %struct.point96* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point96* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point96* %0 to i8* + %6 = bitcast %struct.point96* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, %struct.point97* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point97* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point97* %0 to i8* + %6 = bitcast %struct.point97* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, %struct.point98* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point98* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point98* %0 to i8* + %6 = bitcast %struct.point98* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, %struct.point99* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point99* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point99* %0 to i8* + %6 = bitcast %struct.point99* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, %struct.point100* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point100* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point100* %0 to i8* + %6 = bitcast %struct.point100* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, %struct.point101* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point101* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point101* %0 to i8* + %6 = bitcast %struct.point101* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, %struct.point102* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point102* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point102* %0 to i8* + %6 = bitcast %struct.point102* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, %struct.point103* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point103* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point103* %0 to i8* + %6 = bitcast %struct.point103* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, %struct.point104* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point104* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point104* %0 to i8* + %6 = bitcast %struct.point104* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, %struct.point105* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point105* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point105* %0 to i8* + %6 = bitcast %struct.point105* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo106([2 x i32] %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point106* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, %struct.point107* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point107* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point107* %0 to i8* + %6 = bitcast %struct.point107* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, %struct.point108* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point108* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point108* %0 to i8* + %6 = bitcast %struct.point108* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, %struct.point109* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point109* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point109* %0 to i8* + %6 = bitcast %struct.point109* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, %struct.point110* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point110* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point110* %0 to i8* + %6 = bitcast %struct.point110* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, %struct.point111* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point111* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point111* %0 to i8* + %6 = bitcast %struct.point111* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, %struct.point112* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point112* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point112* %0 to i8* + %6 = bitcast %struct.point112* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, %struct.point113* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point113* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point113* %0 to i8* + %6 = bitcast %struct.point113* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, %struct.point114* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point114* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point114* %0 to i8* + %6 = bitcast %struct.point114* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, %struct.point115* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point115* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point115* %0 to i8* + %6 = bitcast %struct.point115* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, %struct.point116* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point116* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point116* %0 to i8* + %6 = bitcast %struct.point116* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, %struct.point117* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point117* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point117* %0 to i8* + %6 = bitcast %struct.point117* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, %struct.point118* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point118* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point118* %0 to i8* + %6 = bitcast %struct.point118* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, %struct.point119* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point119* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point119* %0 to i8* + %6 = bitcast %struct.point119* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, %struct.point120* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point120* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point120* %0 to i8* + %6 = bitcast %struct.point120* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, %struct.point121* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point121* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point121* %0 to i8* + %6 = bitcast %struct.point121* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, %struct.point122* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point122* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point122* %0 to i8* + %6 = bitcast %struct.point122* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, %struct.point123* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point123* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point123* %0 to i8* + %6 = bitcast %struct.point123* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, %struct.point124* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point124* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point124* %0 to i8* + %6 = bitcast %struct.point124* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, %struct.point125* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point125* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point125* %0 to i8* + %6 = bitcast %struct.point125* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, %struct.point126* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point126* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point126* %0 to i8* + %6 = bitcast %struct.point126* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, %struct.point127* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point127* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point127* %0 to i8* + %6 = bitcast %struct.point127* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, %struct.point128* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point128* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point128* %0 to i8* + %6 = bitcast %struct.point128* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, %struct.point129* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point129* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point129* %0 to i8* + %6 = bitcast %struct.point129* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, %struct.point130* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point130* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point130* %0 to i8* + %6 = bitcast %struct.point130* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, %struct.point131* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point131* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point131* %0 to i8* + %6 = bitcast %struct.point131* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, %struct.point132* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point132* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point132* %0 to i8* + %6 = bitcast %struct.point132* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, %struct.point133* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point133* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point133* %0 to i8* + %6 = bitcast %struct.point133* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, %struct.point134* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point134* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point134* %0 to i8* + %6 = bitcast %struct.point134* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, %struct.point135* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point135* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point135* %0 to i8* + %6 = bitcast %struct.point135* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, %struct.point136* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point136* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point136* %0 to i8* + %6 = bitcast %struct.point136* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, %struct.point137* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point137* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point137* %0 to i8* + %6 = bitcast %struct.point137* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, %struct.point138* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point138* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point138* %0 to i8* + %6 = bitcast %struct.point138* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, %struct.point143* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point143* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point143* %0 to i8* + %6 = bitcast %struct.point143* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, %struct.point148* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point148* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point148* %0 to i8* + %6 = bitcast %struct.point148* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, %struct.point149* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point149* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point149* %0 to i8* + %6 = bitcast %struct.point149* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, %struct.point150* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point150* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point150* %0 to i8* + %6 = bitcast %struct.point150* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, %struct.point151* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point151* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point151* %0 to i8* + %6 = bitcast %struct.point151* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, %struct.point152* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point152* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point152* %0 to i8* + %6 = bitcast %struct.point152* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, %struct.point153* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point153* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point153* %0 to i8* + %6 = bitcast %struct.point153* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, %struct.point154* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point154* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point154* %0 to i8* + %6 = bitcast %struct.point154* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, %struct.point155* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point155* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point155* %0 to i8* + %6 = bitcast %struct.point155* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, %struct.point156* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point156* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point156* %0 to i8* + %6 = bitcast %struct.point156* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, %struct.point157* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point157* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point157* %0 to i8* + %6 = bitcast %struct.point157* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, %struct.point158* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point158* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point158* %0 to i8* + %6 = bitcast %struct.point158* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, %struct.point159* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point159* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point159* %0 to i8* + %6 = bitcast %struct.point159* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, %struct.point164* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point164* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point164* %0 to i8* + %6 = bitcast %struct.point164* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, %struct.point169* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point169* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point169* %0 to i8* + %6 = bitcast %struct.point169* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, %struct.point170* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point170* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point170* %0 to i8* + %6 = bitcast %struct.point170* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, %struct.point171* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point171* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point171* %0 to i8* + %6 = bitcast %struct.point171* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, %struct.point172* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point172* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point172* %0 to i8* + %6 = bitcast %struct.point172* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, %struct.point175* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point175* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point175* %0 to i8* + %6 = bitcast %struct.point175* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, %struct.point176* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point176* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point176* %0 to i8* + %6 = bitcast %struct.point176* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, %struct.point177* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point177* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point177* %0 to i8* + %6 = bitcast %struct.point177* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, %struct.point180* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point180* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point180* %0 to i8* + %6 = bitcast %struct.point180* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, %struct.point185* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point185* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point185* %0 to i8* + %6 = bitcast %struct.point185* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, %struct.point190* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point190* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point190* %0 to i8* + %6 = bitcast %struct.point190* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, %struct.point191* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point191* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point191* %0 to i8* + %6 = bitcast %struct.point191* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, %struct.point192* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point192* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point192* %0 to i8* + %6 = bitcast %struct.point192* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, %struct.point193* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point193* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point193* %0 to i8* + %6 = bitcast %struct.point193* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, %struct.point196* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point196* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point196* %0 to i8* + %6 = bitcast %struct.point196* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, %struct.point197* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point197* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point197* %0 to i8* + %6 = bitcast %struct.point197* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, %struct.point198* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point198* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point198* %0 to i8* + %6 = bitcast %struct.point198* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, %struct.point201* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point201* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point201* %0 to i8* + %6 = bitcast %struct.point201* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, %struct.point206* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point206* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point206* %0 to i8* + %6 = bitcast %struct.point206* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, %struct.point211* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point211* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point211* %0 to i8* + %6 = bitcast %struct.point211* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, %struct.point212* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point212* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point212* %0 to i8* + %6 = bitcast %struct.point212* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, %struct.point213* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point213* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point213* %0 to i8* + %6 = bitcast %struct.point213* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, %struct.point214* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point214* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point214* %0 to i8* + %6 = bitcast %struct.point214* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, %struct.point215* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point215* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point215* %0 to i8* + %6 = bitcast %struct.point215* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, %struct.point216* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point216* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point216* %0 to i8* + %6 = bitcast %struct.point216* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, %struct.point217* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point217* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point217* %0 to i8* + %6 = bitcast %struct.point217* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, %struct.point218* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point218* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point218* %0 to i8* + %6 = bitcast %struct.point218* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, %struct.point219* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point219* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point219* %0 to i8* + %6 = bitcast %struct.point219* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, %struct.point220* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point220* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point220* %0 to i8* + %6 = bitcast %struct.point220* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, %struct.point221* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point221* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point221* %0 to i8* + %6 = bitcast %struct.point221* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, %struct.point222* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point222* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point222* %0 to i8* + %6 = bitcast %struct.point222* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, %struct.point227* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point227* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point227* %0 to i8* + %6 = bitcast %struct.point227* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, %struct.point232* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point232* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point232* %0 to i8* + %6 = bitcast %struct.point232* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, %struct.point233* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point233* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point233* %0 to i8* + %6 = bitcast %struct.point233* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, %struct.point234* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point234* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point234* %0 to i8* + %6 = bitcast %struct.point234* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, %struct.point235* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point235* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point235* %0 to i8* + %6 = bitcast %struct.point235* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, %struct.point236* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point236* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point236* %0 to i8* + %6 = bitcast %struct.point236* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, %struct.point237* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point237* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point237* %0 to i8* + %6 = bitcast %struct.point237* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, %struct.point238* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point238* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point238* %0 to i8* + %6 = bitcast %struct.point238* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, %struct.point239* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point239* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point239* %0 to i8* + %6 = bitcast %struct.point239* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, %struct.point240* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point240* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point240* %0 to i8* + %6 = bitcast %struct.point240* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, %struct.point241* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point241* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point241* %0 to i8* + %6 = bitcast %struct.point241* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, %struct.point242* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point242* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point242* %0 to i8* + %6 = bitcast %struct.point242* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, %struct.point243* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point243* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point243* %0 to i8* + %6 = bitcast %struct.point243* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, %struct.point248* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point248* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point248* %0 to i8* + %6 = bitcast %struct.point248* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, %struct.point253* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point253* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point253* %0 to i8* + %6 = bitcast %struct.point253* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, %struct.point254* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point254* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point254* %0 to i8* + %6 = bitcast %struct.point254* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, %struct.point255* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point255* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point255* %0 to i8* + %6 = bitcast %struct.point255* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, %struct.point256* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point256* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point256* %0 to i8* + %6 = bitcast %struct.point256* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, %struct.point259* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point259* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point259* %0 to i8* + %6 = bitcast %struct.point259* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, %struct.point260* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point260* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point260* %0 to i8* + %6 = bitcast %struct.point260* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, %struct.point261* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point261* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point261* %0 to i8* + %6 = bitcast %struct.point261* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, %struct.point264* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point264* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point264* %0 to i8* + %6 = bitcast %struct.point264* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, %struct.point269* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point269* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point269* %0 to i8* + %6 = bitcast %struct.point269* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, %struct.point274* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point274* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point274* %0 to i8* + %6 = bitcast %struct.point274* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, %struct.point275* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point275* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point275* %0 to i8* + %6 = bitcast %struct.point275* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, %struct.point276* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point276* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point276* %0 to i8* + %6 = bitcast %struct.point276* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, %struct.point277* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point277* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point277* %0 to i8* + %6 = bitcast %struct.point277* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, %struct.point280* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point280* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point280* %0 to i8* + %6 = bitcast %struct.point280* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, %struct.point281* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point281* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point281* %0 to i8* + %6 = bitcast %struct.point281* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, %struct.point282* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point282* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point282* %0 to i8* + %6 = bitcast %struct.point282* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, %struct.point285* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point285* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point285* %0 to i8* + %6 = bitcast %struct.point285* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, %struct.point290* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point290* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point290* %0 to i8* + %6 = bitcast %struct.point290* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo295(i32 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = bitcast %struct.point295* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point295* %2 to i8* + %6 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point295* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point298* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point298* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, %struct.point299* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point299* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point299* %0 to i8* + %6 = bitcast %struct.point299* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, %struct.point300* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point300* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point300* %0 to i8* + %6 = bitcast %struct.point300* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point302* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point302* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point303* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point303* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, %struct.point304* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point304* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point304* %0 to i8* + %6 = bitcast %struct.point304* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, %struct.point305* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point305* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point305* %0 to i8* + %6 = bitcast %struct.point305* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo306([2 x i32] %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point306* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, %struct.point307* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point307* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point307* %0 to i8* + %6 = bitcast %struct.point307* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, %struct.point308* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point308* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point308* %0 to i8* + %6 = bitcast %struct.point308* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, %struct.point309* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point309* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point309* %0 to i8* + %6 = bitcast %struct.point309* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, %struct.point310* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point310* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point310* %0 to i8* + %6 = bitcast %struct.point310* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo311([2 x i32] %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point311* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, %struct.point312* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point312* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point312* %0 to i8* + %6 = bitcast %struct.point312* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, %struct.point313* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point313* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point313* %0 to i8* + %6 = bitcast %struct.point313* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, %struct.point314* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point314* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point314* %0 to i8* + %6 = bitcast %struct.point314* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, %struct.point315* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point315* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point315* %0 to i8* + %6 = bitcast %struct.point315* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +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, [2 x i32]* %4, align 4 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + %10 = bitcast [2 x i32]* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 2 %11, i32 6, i1 false) + %12 = load [2 x i32], [2 x i32]* %5, align 4 + ret [2 x i32] %12 +} + +; 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 + %4 = bitcast %struct.point317* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point317* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point318* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point318* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, %struct.point319* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point319* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point319* %0 to i8* + %6 = bitcast %struct.point319* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, %struct.point320* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point320* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point320* %0 to i8* + %6 = bitcast %struct.point320* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, %struct.point321* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point321* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point321* %0 to i8* + %6 = bitcast %struct.point321* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo322([2 x i32] %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + %7 = bitcast %struct.point322* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 2 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, %struct.point323* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point323* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point323* %0 to i8* + %6 = bitcast %struct.point323* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, %struct.point324* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point324* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point324* %0 to i8* + %6 = bitcast %struct.point324* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, %struct.point325* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point325* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point325* %0 to i8* + %6 = bitcast %struct.point325* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, %struct.point326* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point326* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point326* %0 to i8* + %6 = bitcast %struct.point326* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, %struct.point327* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point327* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point327* %0 to i8* + %6 = bitcast %struct.point327* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, %struct.point328* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point328* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point328* %0 to i8* + %6 = bitcast %struct.point328* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, %struct.point329* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point329* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point329* %0 to i8* + %6 = bitcast %struct.point329* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, %struct.point330* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point330* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point330* %0 to i8* + %6 = bitcast %struct.point330* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, %struct.point331* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point331* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point331* %0 to i8* + %6 = bitcast %struct.point331* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, %struct.point332* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point332* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point332* %0 to i8* + %6 = bitcast %struct.point332* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, %struct.point333* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point333* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point333* %0 to i8* + %6 = bitcast %struct.point333* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, %struct.point334* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point334* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point334* %0 to i8* + %6 = bitcast %struct.point334* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, %struct.point335* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point335* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point335* %0 to i8* + %6 = bitcast %struct.point335* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, %struct.point336* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point336* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point336* %0 to i8* + %6 = bitcast %struct.point336* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo337([2 x i32] %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point337* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, %struct.point338* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point338* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point338* %0 to i8* + %6 = bitcast %struct.point338* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, %struct.point339* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point339* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point339* %0 to i8* + %6 = bitcast %struct.point339* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, %struct.point340* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point340* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point340* %0 to i8* + %6 = bitcast %struct.point340* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, %struct.point341* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point341* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point341* %0 to i8* + %6 = bitcast %struct.point341* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, %struct.point342* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point342* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point342* %0 to i8* + %6 = bitcast %struct.point342* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, %struct.point343* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point343* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point343* %0 to i8* + %6 = bitcast %struct.point343* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, %struct.point344* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point344* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point344* %0 to i8* + %6 = bitcast %struct.point344* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, %struct.point345* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point345* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point345* %0 to i8* + %6 = bitcast %struct.point345* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, %struct.point346* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point346* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point346* %0 to i8* + %6 = bitcast %struct.point346* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, %struct.point347* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point347* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point347* %0 to i8* + %6 = bitcast %struct.point347* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, %struct.point348* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point348* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point348* %0 to i8* + %6 = bitcast %struct.point348* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, %struct.point349* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point349* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point349* %0 to i8* + %6 = bitcast %struct.point349* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, %struct.point350* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point350* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point350* %0 to i8* + %6 = bitcast %struct.point350* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, %struct.point351* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point351* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point351* %0 to i8* + %6 = bitcast %struct.point351* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, %struct.point352* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point352* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point352* %0 to i8* + %6 = bitcast %struct.point352* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, %struct.point353* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point353* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point353* %0 to i8* + %6 = bitcast %struct.point353* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, %struct.point354* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point354* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point354* %0 to i8* + %6 = bitcast %struct.point354* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, %struct.point355* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point355* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point355* %0 to i8* + %6 = bitcast %struct.point355* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, %struct.point356* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point356* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point356* %0 to i8* + %6 = bitcast %struct.point356* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, %struct.point357* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point357* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point357* %0 to i8* + %6 = bitcast %struct.point357* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo358([2 x i32] %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point358* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, %struct.point359* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point359* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point359* %0 to i8* + %6 = bitcast %struct.point359* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, %struct.point360* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point360* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point360* %0 to i8* + %6 = bitcast %struct.point360* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, %struct.point361* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point361* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point361* %0 to i8* + %6 = bitcast %struct.point361* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, %struct.point362* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point362* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point362* %0 to i8* + %6 = bitcast %struct.point362* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, %struct.point363* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point363* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point363* %0 to i8* + %6 = bitcast %struct.point363* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, %struct.point364* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point364* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point364* %0 to i8* + %6 = bitcast %struct.point364* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, %struct.point365* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point365* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point365* %0 to i8* + %6 = bitcast %struct.point365* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, %struct.point366* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point366* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point366* %0 to i8* + %6 = bitcast %struct.point366* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, %struct.point367* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point367* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point367* %0 to i8* + %6 = bitcast %struct.point367* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, %struct.point368* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point368* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point368* %0 to i8* + %6 = bitcast %struct.point368* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, %struct.point369* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point369* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point369* %0 to i8* + %6 = bitcast %struct.point369* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, %struct.point370* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point370* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point370* %0 to i8* + %6 = bitcast %struct.point370* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, %struct.point371* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point371* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point371* %0 to i8* + %6 = bitcast %struct.point371* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, %struct.point372* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point372* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point372* %0 to i8* + %6 = bitcast %struct.point372* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, %struct.point373* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point373* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point373* %0 to i8* + %6 = bitcast %struct.point373* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, %struct.point374* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point374* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point374* %0 to i8* + %6 = bitcast %struct.point374* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, %struct.point375* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point375* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point375* %0 to i8* + %6 = bitcast %struct.point375* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, %struct.point376* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point376* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point376* %0 to i8* + %6 = bitcast %struct.point376* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, %struct.point377* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point377* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point377* %0 to i8* + %6 = bitcast %struct.point377* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, %struct.point378* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point378* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point378* %0 to i8* + %6 = bitcast %struct.point378* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, %struct.point379* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point379* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point379* %0 to i8* + %6 = bitcast %struct.point379* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, %struct.point380* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point380* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point380* %0 to i8* + %6 = bitcast %struct.point380* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, %struct.point381* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point381* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point381* %0 to i8* + %6 = bitcast %struct.point381* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, %struct.point382* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point382* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point382* %0 to i8* + %6 = bitcast %struct.point382* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, %struct.point383* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point383* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point383* %0 to i8* + %6 = bitcast %struct.point383* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, %struct.point384* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point384* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point384* %0 to i8* + %6 = bitcast %struct.point384* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, %struct.point385* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point385* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point385* %0 to i8* + %6 = bitcast %struct.point385* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, %struct.point386* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point386* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point386* %0 to i8* + %6 = bitcast %struct.point386* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, %struct.point387* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point387* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point387* %0 to i8* + %6 = bitcast %struct.point387* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, %struct.point388* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point388* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point388* %0 to i8* + %6 = bitcast %struct.point388* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, %struct.point389* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point389* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point389* %0 to i8* + %6 = bitcast %struct.point389* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, %struct.point390* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point390* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point390* %0 to i8* + %6 = bitcast %struct.point390* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, %struct.point395* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point395* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point395* %0 to i8* + %6 = bitcast %struct.point395* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, %struct.point400* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point400* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point400* %0 to i8* + %6 = bitcast %struct.point400* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, %struct.point401* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point401* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point401* %0 to i8* + %6 = bitcast %struct.point401* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, %struct.point402* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point402* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point402* %0 to i8* + %6 = bitcast %struct.point402* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, %struct.point403* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point403* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point403* %0 to i8* + %6 = bitcast %struct.point403* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, %struct.point404* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point404* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point404* %0 to i8* + %6 = bitcast %struct.point404* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, %struct.point405* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point405* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point405* %0 to i8* + %6 = bitcast %struct.point405* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, %struct.point406* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point406* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point406* %0 to i8* + %6 = bitcast %struct.point406* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, %struct.point407* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point407* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point407* %0 to i8* + %6 = bitcast %struct.point407* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, %struct.point408* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point408* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point408* %0 to i8* + %6 = bitcast %struct.point408* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, %struct.point409* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point409* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point409* %0 to i8* + %6 = bitcast %struct.point409* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, %struct.point410* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point410* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point410* %0 to i8* + %6 = bitcast %struct.point410* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, %struct.point411* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point411* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point411* %0 to i8* + %6 = bitcast %struct.point411* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, %struct.point416* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point416* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point416* %0 to i8* + %6 = bitcast %struct.point416* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, %struct.point421* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point421* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point421* %0 to i8* + %6 = bitcast %struct.point421* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, %struct.point422* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point422* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point422* %0 to i8* + %6 = bitcast %struct.point422* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, %struct.point423* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point423* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point423* %0 to i8* + %6 = bitcast %struct.point423* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, %struct.point424* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point424* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point424* %0 to i8* + %6 = bitcast %struct.point424* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, %struct.point427* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point427* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point427* %0 to i8* + %6 = bitcast %struct.point427* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, %struct.point428* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point428* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point428* %0 to i8* + %6 = bitcast %struct.point428* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, %struct.point429* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point429* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point429* %0 to i8* + %6 = bitcast %struct.point429* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, %struct.point432* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point432* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point432* %0 to i8* + %6 = bitcast %struct.point432* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, %struct.point437* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point437* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point437* %0 to i8* + %6 = bitcast %struct.point437* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, %struct.point442* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point442* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point442* %0 to i8* + %6 = bitcast %struct.point442* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, %struct.point443* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point443* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point443* %0 to i8* + %6 = bitcast %struct.point443* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, %struct.point444* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point444* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point444* %0 to i8* + %6 = bitcast %struct.point444* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, %struct.point445* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point445* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point445* %0 to i8* + %6 = bitcast %struct.point445* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, %struct.point448* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point448* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point448* %0 to i8* + %6 = bitcast %struct.point448* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, %struct.point449* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point449* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point449* %0 to i8* + %6 = bitcast %struct.point449* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, %struct.point450* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point450* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point450* %0 to i8* + %6 = bitcast %struct.point450* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, %struct.point453* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point453* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point453* %0 to i8* + %6 = bitcast %struct.point453* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, %struct.point458* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point458* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point458* %0 to i8* + %6 = bitcast %struct.point458* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, %struct.point463* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point463* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point463* %0 to i8* + %6 = bitcast %struct.point463* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, %struct.point464* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point464* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point464* %0 to i8* + %6 = bitcast %struct.point464* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, %struct.point465* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point465* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point465* %0 to i8* + %6 = bitcast %struct.point465* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, %struct.point466* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point466* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point466* %0 to i8* + %6 = bitcast %struct.point466* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, %struct.point467* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point467* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point467* %0 to i8* + %6 = bitcast %struct.point467* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, %struct.point468* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point468* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point468* %0 to i8* + %6 = bitcast %struct.point468* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, %struct.point469* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point469* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point469* %0 to i8* + %6 = bitcast %struct.point469* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, %struct.point470* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point470* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point470* %0 to i8* + %6 = bitcast %struct.point470* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, %struct.point471* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point471* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point471* %0 to i8* + %6 = bitcast %struct.point471* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, %struct.point472* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point472* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point472* %0 to i8* + %6 = bitcast %struct.point472* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, %struct.point473* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point473* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point473* %0 to i8* + %6 = bitcast %struct.point473* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, %struct.point474* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point474* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point474* %0 to i8* + %6 = bitcast %struct.point474* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, %struct.point479* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point479* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point479* %0 to i8* + %6 = bitcast %struct.point479* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, %struct.point484* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point484* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point484* %0 to i8* + %6 = bitcast %struct.point484* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, %struct.point485* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point485* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point485* %0 to i8* + %6 = bitcast %struct.point485* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, %struct.point486* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point486* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point486* %0 to i8* + %6 = bitcast %struct.point486* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, %struct.point487* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point487* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point487* %0 to i8* + %6 = bitcast %struct.point487* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, %struct.point488* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point488* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point488* %0 to i8* + %6 = bitcast %struct.point488* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, %struct.point489* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point489* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point489* %0 to i8* + %6 = bitcast %struct.point489* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, %struct.point490* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point490* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point490* %0 to i8* + %6 = bitcast %struct.point490* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, %struct.point491* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point491* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point491* %0 to i8* + %6 = bitcast %struct.point491* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, %struct.point492* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point492* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point492* %0 to i8* + %6 = bitcast %struct.point492* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, %struct.point493* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point493* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point493* %0 to i8* + %6 = bitcast %struct.point493* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, %struct.point494* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point494* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point494* %0 to i8* + %6 = bitcast %struct.point494* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, %struct.point495* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point495* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point495* %0 to i8* + %6 = bitcast %struct.point495* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, %struct.point500* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point500* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point500* %0 to i8* + %6 = bitcast %struct.point500* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, %struct.point505* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point505* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point505* %0 to i8* + %6 = bitcast %struct.point505* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, %struct.point506* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point506* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point506* %0 to i8* + %6 = bitcast %struct.point506* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, %struct.point507* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point507* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point507* %0 to i8* + %6 = bitcast %struct.point507* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, %struct.point508* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point508* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point508* %0 to i8* + %6 = bitcast %struct.point508* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, %struct.point511* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point511* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point511* %0 to i8* + %6 = bitcast %struct.point511* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, %struct.point512* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point512* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point512* %0 to i8* + %6 = bitcast %struct.point512* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, %struct.point513* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point513* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point513* %0 to i8* + %6 = bitcast %struct.point513* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, %struct.point516* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point516* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point516* %0 to i8* + %6 = bitcast %struct.point516* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, %struct.point521* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point521* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point521* %0 to i8* + %6 = bitcast %struct.point521* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, %struct.point526* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point526* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point526* %0 to i8* + %6 = bitcast %struct.point526* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, %struct.point527* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point527* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point527* %0 to i8* + %6 = bitcast %struct.point527* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, %struct.point528* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point528* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point528* %0 to i8* + %6 = bitcast %struct.point528* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, %struct.point529* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point529* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point529* %0 to i8* + %6 = bitcast %struct.point529* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, %struct.point532* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point532* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point532* %0 to i8* + %6 = bitcast %struct.point532* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, %struct.point533* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point533* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point533* %0 to i8* + %6 = bitcast %struct.point533* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, %struct.point534* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point534* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point534* %0 to i8* + %6 = bitcast %struct.point534* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, %struct.point537* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point537* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point537* %0 to i8* + %6 = bitcast %struct.point537* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, %struct.point542* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point542* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point542* %0 to i8* + %6 = bitcast %struct.point542* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo547([2 x i32] %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point547* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point548* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point548* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point549* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point549* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, %struct.point550* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point550* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point550* %0 to i8* + %6 = bitcast %struct.point550* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, %struct.point551* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point551* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point551* %0 to i8* + %6 = bitcast %struct.point551* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, %struct.point552* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point552* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point552* %0 to i8* + %6 = bitcast %struct.point552* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo553([2 x i32] %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point553* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, %struct.point554* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point554* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point554* %0 to i8* + %6 = bitcast %struct.point554* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, %struct.point555* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point555* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point555* %0 to i8* + %6 = bitcast %struct.point555* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, %struct.point556* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point556* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point556* %0 to i8* + %6 = bitcast %struct.point556* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, %struct.point557* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point557* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point557* %0 to i8* + %6 = bitcast %struct.point557* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, %struct.point558* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point558* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point558* %0 to i8* + %6 = bitcast %struct.point558* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, %struct.point559* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point559* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point559* %0 to i8* + %6 = bitcast %struct.point559* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, %struct.point560* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point560* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point560* %0 to i8* + %6 = bitcast %struct.point560* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, %struct.point561* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point561* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point561* %0 to i8* + %6 = bitcast %struct.point561* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, %struct.point562* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point562* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point562* %0 to i8* + %6 = bitcast %struct.point562* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, %struct.point563* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point563* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point563* %0 to i8* + %6 = bitcast %struct.point563* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, %struct.point564* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point564* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point564* %0 to i8* + %6 = bitcast %struct.point564* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, %struct.point565* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point565* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point565* %0 to i8* + %6 = bitcast %struct.point565* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, %struct.point566* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point566* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point566* %0 to i8* + %6 = bitcast %struct.point566* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, %struct.point567* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point567* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point567* %0 to i8* + %6 = bitcast %struct.point567* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo568([2 x i32] %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point568* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, %struct.point569* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point569* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point569* %0 to i8* + %6 = bitcast %struct.point569* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, %struct.point570* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point570* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point570* %0 to i8* + %6 = bitcast %struct.point570* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, %struct.point571* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point571* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point571* %0 to i8* + %6 = bitcast %struct.point571* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, %struct.point572* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point572* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point572* %0 to i8* + %6 = bitcast %struct.point572* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, %struct.point573* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point573* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point573* %0 to i8* + %6 = bitcast %struct.point573* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, %struct.point574* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point574* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point574* %0 to i8* + %6 = bitcast %struct.point574* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, %struct.point575* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point575* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point575* %0 to i8* + %6 = bitcast %struct.point575* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, %struct.point576* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point576* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point576* %0 to i8* + %6 = bitcast %struct.point576* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, %struct.point577* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point577* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point577* %0 to i8* + %6 = bitcast %struct.point577* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, %struct.point578* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point578* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point578* %0 to i8* + %6 = bitcast %struct.point578* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, %struct.point579* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point579* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point579* %0 to i8* + %6 = bitcast %struct.point579* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, %struct.point580* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point580* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point580* %0 to i8* + %6 = bitcast %struct.point580* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, %struct.point581* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point581* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point581* %0 to i8* + %6 = bitcast %struct.point581* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, %struct.point582* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point582* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point582* %0 to i8* + %6 = bitcast %struct.point582* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, %struct.point583* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point583* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point583* %0 to i8* + %6 = bitcast %struct.point583* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, %struct.point584* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point584* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point584* %0 to i8* + %6 = bitcast %struct.point584* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, %struct.point585* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point585* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point585* %0 to i8* + %6 = bitcast %struct.point585* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, %struct.point586* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point586* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point586* %0 to i8* + %6 = bitcast %struct.point586* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, %struct.point587* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point587* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point587* %0 to i8* + %6 = bitcast %struct.point587* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, %struct.point588* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point588* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point588* %0 to i8* + %6 = bitcast %struct.point588* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, %struct.point589* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point589* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point589* %0 to i8* + %6 = bitcast %struct.point589* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, %struct.point590* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point590* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point590* %0 to i8* + %6 = bitcast %struct.point590* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, %struct.point591* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point591* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point591* %0 to i8* + %6 = bitcast %struct.point591* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, %struct.point592* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point592* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point592* %0 to i8* + %6 = bitcast %struct.point592* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, %struct.point595* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point595* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point595* %0 to i8* + %6 = bitcast %struct.point595* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, %struct.point596* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point596* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point596* %0 to i8* + %6 = bitcast %struct.point596* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, %struct.point597* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point597* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point597* %0 to i8* + %6 = bitcast %struct.point597* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, %struct.point600* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point600* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point600* %0 to i8* + %6 = bitcast %struct.point600* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, %struct.point605* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point605* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point605* %0 to i8* + %6 = bitcast %struct.point605* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, %struct.point610* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point610* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point610* %0 to i8* + %6 = bitcast %struct.point610* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, %struct.point611* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point611* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point611* %0 to i8* + %6 = bitcast %struct.point611* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, %struct.point612* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point612* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point612* %0 to i8* + %6 = bitcast %struct.point612* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, %struct.point613* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point613* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point613* %0 to i8* + %6 = bitcast %struct.point613* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, %struct.point616* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point616* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point616* %0 to i8* + %6 = bitcast %struct.point616* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, %struct.point617* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point617* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point617* %0 to i8* + %6 = bitcast %struct.point617* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, %struct.point618* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point618* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point618* %0 to i8* + %6 = bitcast %struct.point618* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, %struct.point621* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point621* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point621* %0 to i8* + %6 = bitcast %struct.point621* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, %struct.point626* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point626* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point626* %0 to i8* + %6 = bitcast %struct.point626* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo631([2 x i32] %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point631* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point632* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point632* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, %struct.point633* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point633* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point633* %0 to i8* + %6 = bitcast %struct.point633* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, %struct.point634* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point634* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point634* %0 to i8* + %6 = bitcast %struct.point634* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, %struct.point635* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point635* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point635* %0 to i8* + %6 = bitcast %struct.point635* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, %struct.point636* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point636* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point636* %0 to i8* + %6 = bitcast %struct.point636* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, %struct.point637* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point637* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point637* %0 to i8* + %6 = bitcast %struct.point637* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, %struct.point638* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point638* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point638* %0 to i8* + %6 = bitcast %struct.point638* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, %struct.point639* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point639* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point639* %0 to i8* + %6 = bitcast %struct.point639* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, %struct.point640* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point640* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point640* %0 to i8* + %6 = bitcast %struct.point640* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, %struct.point641* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point641* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point641* %0 to i8* + %6 = bitcast %struct.point641* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, %struct.point642* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point642* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point642* %0 to i8* + %6 = bitcast %struct.point642* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, %struct.point643* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point643* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point643* %0 to i8* + %6 = bitcast %struct.point643* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, %struct.point644* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point644* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point644* %0 to i8* + %6 = bitcast %struct.point644* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, %struct.point645* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point645* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point645* %0 to i8* + %6 = bitcast %struct.point645* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, %struct.point646* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point646* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point646* %0 to i8* + %6 = bitcast %struct.point646* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, %struct.point647* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point647* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point647* %0 to i8* + %6 = bitcast %struct.point647* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, %struct.point648* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point648* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point648* %0 to i8* + %6 = bitcast %struct.point648* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, %struct.point649* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point649* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point649* %0 to i8* + %6 = bitcast %struct.point649* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, %struct.point650* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point650* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point650* %0 to i8* + %6 = bitcast %struct.point650* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, %struct.point651* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point651* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point651* %0 to i8* + %6 = bitcast %struct.point651* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo652([2 x i32] %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point652* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, %struct.point653* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point653* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point653* %0 to i8* + %6 = bitcast %struct.point653* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, %struct.point654* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point654* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point654* %0 to i8* + %6 = bitcast %struct.point654* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, %struct.point655* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point655* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point655* %0 to i8* + %6 = bitcast %struct.point655* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, %struct.point656* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point656* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point656* %0 to i8* + %6 = bitcast %struct.point656* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, %struct.point657* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point657* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point657* %0 to i8* + %6 = bitcast %struct.point657* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, %struct.point658* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point658* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point658* %0 to i8* + %6 = bitcast %struct.point658* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, %struct.point659* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point659* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point659* %0 to i8* + %6 = bitcast %struct.point659* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, %struct.point660* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point660* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point660* %0 to i8* + %6 = bitcast %struct.point660* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, %struct.point661* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point661* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point661* %0 to i8* + %6 = bitcast %struct.point661* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, %struct.point662* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point662* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point662* %0 to i8* + %6 = bitcast %struct.point662* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, %struct.point663* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point663* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point663* %0 to i8* + %6 = bitcast %struct.point663* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, %struct.point664* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point664* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point664* %0 to i8* + %6 = bitcast %struct.point664* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, %struct.point665* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point665* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point665* %0 to i8* + %6 = bitcast %struct.point665* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, %struct.point666* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point666* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point666* %0 to i8* + %6 = bitcast %struct.point666* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, %struct.point667* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point667* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point667* %0 to i8* + %6 = bitcast %struct.point667* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, %struct.point668* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point668* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point668* %0 to i8* + %6 = bitcast %struct.point668* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, %struct.point669* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point669* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point669* %0 to i8* + %6 = bitcast %struct.point669* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, %struct.point670* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point670* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point670* %0 to i8* + %6 = bitcast %struct.point670* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, %struct.point671* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point671* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point671* %0 to i8* + %6 = bitcast %struct.point671* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, %struct.point672* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point672* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point672* %0 to i8* + %6 = bitcast %struct.point672* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, %struct.point673* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point673* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point673* %0 to i8* + %6 = bitcast %struct.point673* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, %struct.point674* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point674* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point674* %0 to i8* + %6 = bitcast %struct.point674* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, %struct.point675* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point675* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point675* %0 to i8* + %6 = bitcast %struct.point675* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, %struct.point676* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point676* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point676* %0 to i8* + %6 = bitcast %struct.point676* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, %struct.point679* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point679* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point679* %0 to i8* + %6 = bitcast %struct.point679* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, %struct.point680* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point680* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point680* %0 to i8* + %6 = bitcast %struct.point680* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, %struct.point681* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point681* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point681* %0 to i8* + %6 = bitcast %struct.point681* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, %struct.point684* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point684* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point684* %0 to i8* + %6 = bitcast %struct.point684* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, %struct.point689* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point689* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point689* %0 to i8* + %6 = bitcast %struct.point689* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, %struct.point694* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point694* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point694* %0 to i8* + %6 = bitcast %struct.point694* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, %struct.point695* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point695* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point695* %0 to i8* + %6 = bitcast %struct.point695* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, %struct.point696* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point696* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point696* %0 to i8* + %6 = bitcast %struct.point696* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, %struct.point697* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point697* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point697* %0 to i8* + %6 = bitcast %struct.point697* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, %struct.point700* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point700* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point700* %0 to i8* + %6 = bitcast %struct.point700* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, %struct.point701* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point701* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point701* %0 to i8* + %6 = bitcast %struct.point701* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, %struct.point702* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point702* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point702* %0 to i8* + %6 = bitcast %struct.point702* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, %struct.point705* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point705* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point705* %0 to i8* + %6 = bitcast %struct.point705* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, %struct.point710* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point710* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point710* %0 to i8* + %6 = bitcast %struct.point710* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, %struct.point715* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point715* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point715* %0 to i8* + %6 = bitcast %struct.point715* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, %struct.point716* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point716* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point716* %0 to i8* + %6 = bitcast %struct.point716* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, %struct.point717* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point717* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point717* %0 to i8* + %6 = bitcast %struct.point717* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, %struct.point718* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point718* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point718* %0 to i8* + %6 = bitcast %struct.point718* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, %struct.point719* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point719* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point719* %0 to i8* + %6 = bitcast %struct.point719* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, %struct.point720* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point720* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point720* %0 to i8* + %6 = bitcast %struct.point720* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, %struct.point721* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point721* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point721* %0 to i8* + %6 = bitcast %struct.point721* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, %struct.point722* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point722* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point722* %0 to i8* + %6 = bitcast %struct.point722* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, %struct.point723* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point723* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point723* %0 to i8* + %6 = bitcast %struct.point723* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, %struct.point724* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point724* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point724* %0 to i8* + %6 = bitcast %struct.point724* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, %struct.point725* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point725* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point725* %0 to i8* + %6 = bitcast %struct.point725* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, %struct.point726* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point726* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point726* %0 to i8* + %6 = bitcast %struct.point726* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, %struct.point731* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point731* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point731* %0 to i8* + %6 = bitcast %struct.point731* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, %struct.point736* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point736* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point736* %0 to i8* + %6 = bitcast %struct.point736* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, %struct.point737* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point737* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point737* %0 to i8* + %6 = bitcast %struct.point737* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, %struct.point738* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point738* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point738* %0 to i8* + %6 = bitcast %struct.point738* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, %struct.point739* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point739* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point739* %0 to i8* + %6 = bitcast %struct.point739* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, %struct.point740* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point740* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point740* %0 to i8* + %6 = bitcast %struct.point740* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, %struct.point741* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point741* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point741* %0 to i8* + %6 = bitcast %struct.point741* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, %struct.point742* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point742* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point742* %0 to i8* + %6 = bitcast %struct.point742* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, %struct.point743* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point743* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point743* %0 to i8* + %6 = bitcast %struct.point743* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, %struct.point744* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point744* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point744* %0 to i8* + %6 = bitcast %struct.point744* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, %struct.point745* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point745* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point745* %0 to i8* + %6 = bitcast %struct.point745* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, %struct.point746* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point746* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point746* %0 to i8* + %6 = bitcast %struct.point746* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, %struct.point747* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point747* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point747* %0 to i8* + %6 = bitcast %struct.point747* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, %struct.point752* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point752* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point752* %0 to i8* + %6 = bitcast %struct.point752* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, %struct.point757* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point757* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point757* %0 to i8* + %6 = bitcast %struct.point757* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, %struct.point758* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point758* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point758* %0 to i8* + %6 = bitcast %struct.point758* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, %struct.point759* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point759* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point759* %0 to i8* + %6 = bitcast %struct.point759* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, %struct.point760* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point760* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point760* %0 to i8* + %6 = bitcast %struct.point760* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, %struct.point763* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point763* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point763* %0 to i8* + %6 = bitcast %struct.point763* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, %struct.point764* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point764* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point764* %0 to i8* + %6 = bitcast %struct.point764* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, %struct.point765* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point765* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point765* %0 to i8* + %6 = bitcast %struct.point765* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, %struct.point768* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point768* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point768* %0 to i8* + %6 = bitcast %struct.point768* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, %struct.point773* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point773* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point773* %0 to i8* + %6 = bitcast %struct.point773* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, %struct.point778* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point778* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point778* %0 to i8* + %6 = bitcast %struct.point778* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, %struct.point779* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point779* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point779* %0 to i8* + %6 = bitcast %struct.point779* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, %struct.point780* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point780* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point780* %0 to i8* + %6 = bitcast %struct.point780* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, %struct.point781* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point781* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point781* %0 to i8* + %6 = bitcast %struct.point781* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, %struct.point784* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point784* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point784* %0 to i8* + %6 = bitcast %struct.point784* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, %struct.point785* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point785* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point785* %0 to i8* + %6 = bitcast %struct.point785* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, %struct.point786* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point786* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point786* %0 to i8* + %6 = bitcast %struct.point786* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, %struct.point789* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point789* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point789* %0 to i8* + %6 = bitcast %struct.point789* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, %struct.point794* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point794* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point794* %0 to i8* + %6 = bitcast %struct.point794* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo799([2 x i32] %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point799* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point800* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point800* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point801* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point801* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, %struct.point802* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point802* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point802* %0 to i8* + %6 = bitcast %struct.point802* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, %struct.point803* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point803* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point803* %0 to i8* + %6 = bitcast %struct.point803* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, %struct.point804* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point804* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point804* %0 to i8* + %6 = bitcast %struct.point804* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo805([2 x i32] %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point805* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, %struct.point806* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point806* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point806* %0 to i8* + %6 = bitcast %struct.point806* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, %struct.point807* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point807* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point807* %0 to i8* + %6 = bitcast %struct.point807* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, %struct.point808* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point808* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point808* %0 to i8* + %6 = bitcast %struct.point808* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, %struct.point809* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point809* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point809* %0 to i8* + %6 = bitcast %struct.point809* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, %struct.point810* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point810* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point810* %0 to i8* + %6 = bitcast %struct.point810* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, %struct.point811* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point811* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point811* %0 to i8* + %6 = bitcast %struct.point811* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, %struct.point812* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point812* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point812* %0 to i8* + %6 = bitcast %struct.point812* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, %struct.point813* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point813* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point813* %0 to i8* + %6 = bitcast %struct.point813* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, %struct.point814* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point814* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point814* %0 to i8* + %6 = bitcast %struct.point814* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, %struct.point815* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point815* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point815* %0 to i8* + %6 = bitcast %struct.point815* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, %struct.point816* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point816* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point816* %0 to i8* + %6 = bitcast %struct.point816* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, %struct.point817* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point817* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point817* %0 to i8* + %6 = bitcast %struct.point817* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, %struct.point818* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point818* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point818* %0 to i8* + %6 = bitcast %struct.point818* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, %struct.point819* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point819* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point819* %0 to i8* + %6 = bitcast %struct.point819* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo820([2 x i32] %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point820* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, %struct.point821* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point821* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point821* %0 to i8* + %6 = bitcast %struct.point821* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, %struct.point822* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point822* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point822* %0 to i8* + %6 = bitcast %struct.point822* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, %struct.point823* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point823* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point823* %0 to i8* + %6 = bitcast %struct.point823* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, %struct.point824* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point824* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point824* %0 to i8* + %6 = bitcast %struct.point824* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, %struct.point825* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point825* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point825* %0 to i8* + %6 = bitcast %struct.point825* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, %struct.point826* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point826* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point826* %0 to i8* + %6 = bitcast %struct.point826* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, %struct.point827* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point827* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point827* %0 to i8* + %6 = bitcast %struct.point827* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, %struct.point828* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point828* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point828* %0 to i8* + %6 = bitcast %struct.point828* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, %struct.point829* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point829* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point829* %0 to i8* + %6 = bitcast %struct.point829* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, %struct.point830* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point830* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point830* %0 to i8* + %6 = bitcast %struct.point830* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, %struct.point831* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point831* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point831* %0 to i8* + %6 = bitcast %struct.point831* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, %struct.point832* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point832* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point832* %0 to i8* + %6 = bitcast %struct.point832* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, %struct.point833* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point833* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point833* %0 to i8* + %6 = bitcast %struct.point833* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, %struct.point834* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point834* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point834* %0 to i8* + %6 = bitcast %struct.point834* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, %struct.point835* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point835* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point835* %0 to i8* + %6 = bitcast %struct.point835* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, %struct.point836* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point836* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point836* %0 to i8* + %6 = bitcast %struct.point836* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, %struct.point837* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point837* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point837* %0 to i8* + %6 = bitcast %struct.point837* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, %struct.point838* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point838* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point838* %0 to i8* + %6 = bitcast %struct.point838* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, %struct.point839* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point839* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point839* %0 to i8* + %6 = bitcast %struct.point839* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, %struct.point840* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point840* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point840* %0 to i8* + %6 = bitcast %struct.point840* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, %struct.point841* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point841* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point841* %0 to i8* + %6 = bitcast %struct.point841* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, %struct.point842* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point842* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point842* %0 to i8* + %6 = bitcast %struct.point842* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, %struct.point843* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point843* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point843* %0 to i8* + %6 = bitcast %struct.point843* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, %struct.point844* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point844* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point844* %0 to i8* + %6 = bitcast %struct.point844* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, %struct.point847* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point847* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point847* %0 to i8* + %6 = bitcast %struct.point847* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, %struct.point848* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point848* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point848* %0 to i8* + %6 = bitcast %struct.point848* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, %struct.point849* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point849* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point849* %0 to i8* + %6 = bitcast %struct.point849* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, %struct.point852* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point852* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point852* %0 to i8* + %6 = bitcast %struct.point852* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, %struct.point857* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point857* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point857* %0 to i8* + %6 = bitcast %struct.point857* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, %struct.point862* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point862* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point862* %0 to i8* + %6 = bitcast %struct.point862* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, %struct.point863* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point863* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point863* %0 to i8* + %6 = bitcast %struct.point863* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, %struct.point864* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point864* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point864* %0 to i8* + %6 = bitcast %struct.point864* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, %struct.point865* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point865* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point865* %0 to i8* + %6 = bitcast %struct.point865* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, %struct.point868* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point868* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point868* %0 to i8* + %6 = bitcast %struct.point868* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, %struct.point869* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point869* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point869* %0 to i8* + %6 = bitcast %struct.point869* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, %struct.point870* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point870* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point870* %0 to i8* + %6 = bitcast %struct.point870* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, %struct.point873* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point873* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point873* %0 to i8* + %6 = bitcast %struct.point873* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, %struct.point878* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point878* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point878* %0 to i8* + %6 = bitcast %struct.point878* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo883([2 x i32] %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point883* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; 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 + %4 = bitcast %struct.point884* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point884* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, %struct.point885* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point885* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point885* %0 to i8* + %6 = bitcast %struct.point885* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, %struct.point886* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point886* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point886* %0 to i8* + %6 = bitcast %struct.point886* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, %struct.point887* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point887* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point887* %0 to i8* + %6 = bitcast %struct.point887* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, %struct.point888* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point888* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point888* %0 to i8* + %6 = bitcast %struct.point888* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, %struct.point889* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point889* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point889* %0 to i8* + %6 = bitcast %struct.point889* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, %struct.point890* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point890* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point890* %0 to i8* + %6 = bitcast %struct.point890* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, %struct.point891* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point891* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point891* %0 to i8* + %6 = bitcast %struct.point891* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, %struct.point892* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point892* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point892* %0 to i8* + %6 = bitcast %struct.point892* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, %struct.point893* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point893* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point893* %0 to i8* + %6 = bitcast %struct.point893* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, %struct.point894* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point894* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point894* %0 to i8* + %6 = bitcast %struct.point894* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, %struct.point895* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point895* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point895* %0 to i8* + %6 = bitcast %struct.point895* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, %struct.point896* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point896* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point896* %0 to i8* + %6 = bitcast %struct.point896* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, %struct.point897* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point897* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point897* %0 to i8* + %6 = bitcast %struct.point897* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, %struct.point898* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point898* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point898* %0 to i8* + %6 = bitcast %struct.point898* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, %struct.point899* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point899* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point899* %0 to i8* + %6 = bitcast %struct.point899* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, %struct.point900* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point900* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point900* %0 to i8* + %6 = bitcast %struct.point900* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, %struct.point901* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point901* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point901* %0 to i8* + %6 = bitcast %struct.point901* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, %struct.point902* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point902* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point902* %0 to i8* + %6 = bitcast %struct.point902* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, %struct.point903* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point903* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point903* %0 to i8* + %6 = bitcast %struct.point903* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo904([2 x i32] %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point904* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, %struct.point905* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point905* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point905* %0 to i8* + %6 = bitcast %struct.point905* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, %struct.point906* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point906* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point906* %0 to i8* + %6 = bitcast %struct.point906* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, %struct.point907* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point907* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point907* %0 to i8* + %6 = bitcast %struct.point907* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, %struct.point908* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point908* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point908* %0 to i8* + %6 = bitcast %struct.point908* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, %struct.point909* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point909* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point909* %0 to i8* + %6 = bitcast %struct.point909* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, %struct.point910* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point910* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point910* %0 to i8* + %6 = bitcast %struct.point910* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, %struct.point911* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point911* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point911* %0 to i8* + %6 = bitcast %struct.point911* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, %struct.point912* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point912* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point912* %0 to i8* + %6 = bitcast %struct.point912* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, %struct.point913* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point913* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point913* %0 to i8* + %6 = bitcast %struct.point913* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, %struct.point914* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point914* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point914* %0 to i8* + %6 = bitcast %struct.point914* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, %struct.point915* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point915* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point915* %0 to i8* + %6 = bitcast %struct.point915* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, %struct.point916* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point916* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point916* %0 to i8* + %6 = bitcast %struct.point916* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, %struct.point917* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point917* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point917* %0 to i8* + %6 = bitcast %struct.point917* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, %struct.point918* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point918* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point918* %0 to i8* + %6 = bitcast %struct.point918* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, %struct.point919* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point919* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point919* %0 to i8* + %6 = bitcast %struct.point919* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, %struct.point920* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point920* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point920* %0 to i8* + %6 = bitcast %struct.point920* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, %struct.point921* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point921* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point921* %0 to i8* + %6 = bitcast %struct.point921* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, %struct.point922* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point922* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point922* %0 to i8* + %6 = bitcast %struct.point922* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, %struct.point923* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point923* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point923* %0 to i8* + %6 = bitcast %struct.point923* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, %struct.point924* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point924* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point924* %0 to i8* + %6 = bitcast %struct.point924* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, %struct.point925* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point925* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point925* %0 to i8* + %6 = bitcast %struct.point925* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, %struct.point926* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point926* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point926* %0 to i8* + %6 = bitcast %struct.point926* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, %struct.point927* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point927* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point927* %0 to i8* + %6 = bitcast %struct.point927* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, %struct.point928* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point928* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point928* %0 to i8* + %6 = bitcast %struct.point928* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, %struct.point931* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point931* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point931* %0 to i8* + %6 = bitcast %struct.point931* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, %struct.point932* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point932* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point932* %0 to i8* + %6 = bitcast %struct.point932* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, %struct.point933* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point933* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point933* %0 to i8* + %6 = bitcast %struct.point933* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, %struct.point936* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point936* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point936* %0 to i8* + %6 = bitcast %struct.point936* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, %struct.point941* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point941* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point941* %0 to i8* + %6 = bitcast %struct.point941* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, %struct.point946* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point946* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point946* %0 to i8* + %6 = bitcast %struct.point946* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, %struct.point947* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point947* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point947* %0 to i8* + %6 = bitcast %struct.point947* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, %struct.point948* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point948* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point948* %0 to i8* + %6 = bitcast %struct.point948* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, %struct.point949* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point949* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point949* %0 to i8* + %6 = bitcast %struct.point949* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, %struct.point952* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point952* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point952* %0 to i8* + %6 = bitcast %struct.point952* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, %struct.point953* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point953* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point953* %0 to i8* + %6 = bitcast %struct.point953* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, %struct.point954* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point954* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point954* %0 to i8* + %6 = bitcast %struct.point954* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, %struct.point957* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point957* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point957* %0 to i8* + %6 = bitcast %struct.point957* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, %struct.point962* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point962* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point962* %0 to i8* + %6 = bitcast %struct.point962* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, %struct.point967* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point967* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point967* %0 to i8* + %6 = bitcast %struct.point967* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, %struct.point968* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point968* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point968* %0 to i8* + %6 = bitcast %struct.point968* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, %struct.point969* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point969* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point969* %0 to i8* + %6 = bitcast %struct.point969* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, %struct.point970* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point970* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point970* %0 to i8* + %6 = bitcast %struct.point970* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, %struct.point971* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point971* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point971* %0 to i8* + %6 = bitcast %struct.point971* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, %struct.point972* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point972* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point972* %0 to i8* + %6 = bitcast %struct.point972* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, %struct.point973* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point973* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point973* %0 to i8* + %6 = bitcast %struct.point973* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, %struct.point974* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point974* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point974* %0 to i8* + %6 = bitcast %struct.point974* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, %struct.point975* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point975* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point975* %0 to i8* + %6 = bitcast %struct.point975* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, %struct.point976* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point976* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point976* %0 to i8* + %6 = bitcast %struct.point976* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, %struct.point977* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point977* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point977* %0 to i8* + %6 = bitcast %struct.point977* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, %struct.point978* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point978* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point978* %0 to i8* + %6 = bitcast %struct.point978* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, %struct.point983* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point983* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point983* %0 to i8* + %6 = bitcast %struct.point983* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, %struct.point988* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point988* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point988* %0 to i8* + %6 = bitcast %struct.point988* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, %struct.point989* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point989* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point989* %0 to i8* + %6 = bitcast %struct.point989* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, %struct.point990* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point990* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point990* %0 to i8* + %6 = bitcast %struct.point990* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, %struct.point991* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point991* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point991* %0 to i8* + %6 = bitcast %struct.point991* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, %struct.point992* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point992* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point992* %0 to i8* + %6 = bitcast %struct.point992* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, %struct.point993* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point993* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point993* %0 to i8* + %6 = bitcast %struct.point993* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, %struct.point994* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point994* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point994* %0 to i8* + %6 = bitcast %struct.point994* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, %struct.point995* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point995* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point995* %0 to i8* + %6 = bitcast %struct.point995* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, %struct.point996* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point996* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point996* %0 to i8* + %6 = bitcast %struct.point996* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, %struct.point997* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point997* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point997* %0 to i8* + %6 = bitcast %struct.point997* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, %struct.point998* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point998* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point998* %0 to i8* + %6 = bitcast %struct.point998* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, %struct.point999* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point999* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point999* %0 to i8* + %6 = bitcast %struct.point999* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, %struct.point1004* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1004* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1004* %0 to i8* + %6 = bitcast %struct.point1004* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, %struct.point1009* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1009* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1009* %0 to i8* + %6 = bitcast %struct.point1009* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, %struct.point1010* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1010* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1010* %0 to i8* + %6 = bitcast %struct.point1010* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, %struct.point1011* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1011* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1011* %0 to i8* + %6 = bitcast %struct.point1011* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, %struct.point1012* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1012* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1012* %0 to i8* + %6 = bitcast %struct.point1012* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, %struct.point1015* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1015* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1015* %0 to i8* + %6 = bitcast %struct.point1015* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, %struct.point1016* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1016* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1016* %0 to i8* + %6 = bitcast %struct.point1016* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, %struct.point1017* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1017* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1017* %0 to i8* + %6 = bitcast %struct.point1017* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, %struct.point1020* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1020* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1020* %0 to i8* + %6 = bitcast %struct.point1020* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, %struct.point1025* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1025* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1025* %0 to i8* + %6 = bitcast %struct.point1025* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, %struct.point1030* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1030* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1030* %0 to i8* + %6 = bitcast %struct.point1030* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, %struct.point1031* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1031* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1031* %0 to i8* + %6 = bitcast %struct.point1031* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, %struct.point1032* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1032* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1032* %0 to i8* + %6 = bitcast %struct.point1032* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, %struct.point1033* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1033* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1033* %0 to i8* + %6 = bitcast %struct.point1033* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, %struct.point1036* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1036* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1036* %0 to i8* + %6 = bitcast %struct.point1036* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, %struct.point1037* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1037* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1037* %0 to i8* + %6 = bitcast %struct.point1037* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, %struct.point1038* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1038* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1038* %0 to i8* + %6 = bitcast %struct.point1038* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, %struct.point1041* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1041* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1041* %0 to i8* + %6 = bitcast %struct.point1041* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, %struct.point1046* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1046* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1046* %0 to i8* + %6 = bitcast %struct.point1046* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_pointer.ll b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_pointer.ll new file mode 100644 index 00000000..323bc249 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv32_ilp32f/struct_pointer.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i32 %0 to i8* + store i8* %5, i8** %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 4 + %10 = ptrtoint i8* %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %0, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i32]* + %8 = load [2 x i32], [2 x i32]* %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/basic.ll b/internal/cabi/_testdata/arch/riscv64/basic.ll index cb3f49d2..ca9121a5 100644 --- a/internal/cabi/_testdata/arch/riscv64/basic.ll +++ b/internal/cabi/_testdata/arch/riscv64/basic.ll @@ -52,7 +52,7 @@ define dso_local double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone -define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 8 store i8* %0, i8** %2, align 8 %3 = load i8*, i8** %2, align 8 diff --git a/internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll b/internal/cabi/_testdata/arch/riscv64/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll rename to internal/cabi/_testdata/arch/riscv64/struct_pointer.ll index 692bf23b..eae0686a 100644 --- a/internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/riscv64/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" target triple = "riscv64-unknown-unknown-elf" diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_float32.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_float32.ll new file mode 100644 index 00000000..52eaff88 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_float32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = bitcast %struct.array1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = bitcast %struct.array1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = alloca %struct.array2, align 4 + %5 = bitcast %struct.array2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.array2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x float]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x float]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x float]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x float]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_float64.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_float64.ll new file mode 100644 index 00000000..d2e635c2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_float64.ll @@ -0,0 +1,276 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = bitcast %struct.array1* %3 to { double }* + %5 = getelementptr inbounds { double }, { double }* %4, i32 0, i32 0 + store double %0, double* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = bitcast %struct.array1* %2 to { double }* + %9 = getelementptr inbounds { double }, { double }* %8, i32 0, i32 0 + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.array2* %3 to { double, double }* + %11 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { double, double } undef, double %12, 0 + %16 = insertvalue { double, double } %15, double %14, 1 + ret { double, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_int16.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int16.ll new file mode 100644 index 00000000..6e6ba5f0 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int16.ll @@ -0,0 +1,336 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to i64* + store i64 %0, i64* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to i64* + %10 = load i64, i64* %9, align 2 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.array5, align 2 + %3 = alloca %struct.array5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [5 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [5 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.array6, align 2 + %3 = alloca %struct.array6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [6 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [6 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.array7, align 2 + %3 = alloca %struct.array7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [7 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [7 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.array8, align 2 + %3 = alloca %struct.array8, align 2 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i16]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 2 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i16]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 2 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_int32.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int32.ll new file mode 100644 index 00000000..de720770 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i32]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i32]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i32]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x i32]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i32]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i32]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_int64.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int64.ll new file mode 100644 index 00000000..05e976de --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int64.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/array_int8.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int8.ll new file mode 100644 index 00000000..666a38be --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_int8.ll @@ -0,0 +1,424 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 1, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 3, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [4 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array4* %2 to i8* + %10 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [4 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 5, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 7, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.array9, align 1 + %3 = alloca %struct.array9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [9 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 9, i1 false) + %9 = bitcast %struct.array9* %2 to i8* + %10 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = getelementptr inbounds %struct.array9, %struct.array9* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [9 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 9, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.array10, align 1 + %3 = alloca %struct.array10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [10 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array10* %2 to i8* + %10 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [10 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.array11, align 1 + %3 = alloca %struct.array11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [11 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 11, i1 false) + %9 = bitcast %struct.array11* %2 to i8* + %10 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = getelementptr inbounds %struct.array11, %struct.array11* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [11 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 11, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.array12, align 1 + %3 = alloca %struct.array12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [12 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array12* %2 to i8* + %10 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array12, %struct.array12* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [12 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.array13, align 1 + %3 = alloca %struct.array13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [13 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 13, i1 false) + %9 = bitcast %struct.array13* %2 to i8* + %10 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = getelementptr inbounds %struct.array13, %struct.array13* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [13 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 13, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.array14, align 1 + %3 = alloca %struct.array14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [14 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array14* %2 to i8* + %10 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array14, %struct.array14* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [14 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.array15, align 1 + %3 = alloca %struct.array15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [15 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 15, i1 false) + %9 = bitcast %struct.array15* %2 to i8* + %10 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = getelementptr inbounds %struct.array15, %struct.array15* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [15 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 15, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.array16, align 1 + %3 = alloca %struct.array16, align 1 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 1 + %6 = bitcast %struct.array16* %2 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array16, %struct.array16* %2, i32 0, i32 0 + %9 = bitcast [16 x i8]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 1 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_uintptr.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/array_pointer.ll similarity index 98% rename from internal/cabi/_testdata/arch/riscv64/array_uintptr.ll rename to internal/cabi/_testdata/arch/riscv64_lp64d/array_pointer.ll index 38f3ec58..0e317e4b 100644 --- a/internal/cabi/_testdata/arch/riscv64/array_uintptr.ll +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/array_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" target triple = "riscv64-unknown-unknown-elf" @@ -257,14 +257,14 @@ define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) ali ret void } -attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } attributes #1 = { argmemonly nofree nounwind willreturn } !llvm.module.flags = !{!0, !1, !2, !3} !llvm.ident = !{!4} !0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{i32 1, !"target-abi", !"lp64"} +!1 = !{i32 1, !"target-abi", !"lp64d"} !2 = !{i32 7, !"frame-pointer", i32 2} !3 = !{i32 1, !"SmallDataLimit", i32 8} !4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/basic.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/basic.ll new file mode 100644 index 00000000..47e096ae --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @basic_int32(i32 noundef signext %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { + %2 = alloca i8*, align 8 + store i8* %0, i8** %2, align 8 + %3 = load i8*, i8** %2, align 8 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/composite.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/composite.ll new file mode 100644 index 00000000..52ec906f --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/composite.ll @@ -0,0 +1,176 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array10(i64 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %6, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %8 = bitcast [1 x i32]* %7 to i8* + %9 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 8 %9, i64 4, i1 false) + %10 = bitcast %struct.array10* %2 to i8* + %11 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 4, i1 false) + %12 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %13 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %12, i32 0, i32 0 + %14 = bitcast i64* %5 to i8* + %15 = bitcast [1 x i32]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 4 %15, i64 4, i1 false) + %16 = load i64, i64* %5, align 8 + ret i64 %16 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array11(i64 %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.array11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + %6 = trunc i64 %0 to i32 + store i32 %6, i32* %5, align 4 + %7 = bitcast %struct.point10* %2 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = zext i32 %11 to i64 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point11(i64 %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array20(i64 %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + %6 = bitcast [2 x i32]* %5 to i64* + store i64 %0, i64* %6, align 4 + %7 = bitcast %struct.array20* %2 to i8* + %8 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false) + %9 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %9, i32 0, i32 0 + %11 = bitcast [2 x i32]* %10 to i64* + %12 = load i64, i64* %11, align 4 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_array21([2 x i64] %0) #0 { + %2 = alloca %struct.array21, align 4 + %3 = alloca %struct.array21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.array21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.array21* %2 to i8* + %9 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.array21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point20(i64 %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_point21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 4 + %3 = alloca %struct.point21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point21* %2 to i8* + %9 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/empty.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/empty.ll new file mode 100644 index 00000000..84ee803d --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo2(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo3(i32 noundef signext %0, i32 noundef signext %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float32.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float32.ll new file mode 100644 index 00000000..73442d2a --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float32.ll @@ -0,0 +1,288 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = bitcast %struct.point1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = bitcast %struct.point1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = alloca %struct.point2, align 4 + %5 = bitcast %struct.point2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float64.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float64.ll new file mode 100644 index 00000000..509d420d --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_float64.ll @@ -0,0 +1,276 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = bitcast %struct.point1* %3 to { double }* + %5 = getelementptr inbounds { double }, { double }* %4, i32 0, i32 0 + store double %0, double* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = bitcast %struct.point1* %2 to { double }* + %9 = getelementptr inbounds { double }, { double }* %8, i32 0, i32 0 + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = alloca %struct.point2, align 8 + %5 = bitcast %struct.point2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point2* %3 to { double, double }* + %11 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { double, double } undef, double %12, 0 + %16 = insertvalue { double, double } %15, double %14, 1 + ret { double, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int16.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int16.ll new file mode 100644 index 00000000..04235d23 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int16.ll @@ -0,0 +1,316 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 2 + %3 = alloca %struct.point5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 2 + %3 = alloca %struct.point6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.point8, align 2 + %3 = alloca %struct.point8, align 2 + %4 = bitcast %struct.point8* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 2 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 16, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 2 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int32.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int32.ll new file mode 100644 index 00000000..33ae4ef7 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int32.ll @@ -0,0 +1,280 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = zext i32 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int64.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int64.ll new file mode 100644 index 00000000..6869126f --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int64.ll @@ -0,0 +1,266 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int8.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int8.ll new file mode 100644 index 00000000..73cd7b5c --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_int8.ll @@ -0,0 +1,388 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 2, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 2, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 3, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 3, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point4* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point4* %2 to i8* + %9 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point4* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 5, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 5, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 7, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 7, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 1 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 1 + %3 = alloca %struct.point9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point9* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 9, i1 false) + %8 = bitcast %struct.point9* %2 to i8* + %9 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 9, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point9* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 9, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.point10, align 1 + %3 = alloca %struct.point10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point10* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point10* %2 to i8* + %9 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point10* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 1 + %3 = alloca %struct.point11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point11* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 11, i1 false) + %8 = bitcast %struct.point11* %2 to i8* + %9 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 11, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point11* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 11, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 1 + %3 = alloca %struct.point12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point12* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point12* %2 to i8* + %9 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point12* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.point13, align 1 + %3 = alloca %struct.point13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point13* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 13, i1 false) + %8 = bitcast %struct.point13* %2 to i8* + %9 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 13, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point13* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 13, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.point14, align 1 + %3 = alloca %struct.point14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point14* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point14* %2 to i8* + %9 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point14* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 1 + %3 = alloca %struct.point15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point15* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 15, i1 false) + %8 = bitcast %struct.point15* %2 to i8* + %9 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 15, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point15* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 15, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.point16, align 1 + %3 = alloca %struct.point16, align 1 + %4 = bitcast %struct.point16* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 1 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 16, i1 false) + %7 = bitcast %struct.point16* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 1 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_mixed.ll new file mode 100644 index 00000000..26837b63 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_mixed.ll @@ -0,0 +1,16238 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point1* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point1* %2 to i8* + %9 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point1* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point3* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, float } @demo4(i8 %0, float %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { i8, float }* + %6 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 4 + %7 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point4* %3 to { i8, float }* + %11 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i8, float } undef, i8 %12, 0 + %16 = insertvalue { i8, float } %15, float %14, 1 + ret { i8, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, double } @demo5(i8 %0, double %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = alloca %struct.point5, align 8 + %5 = bitcast %struct.point5* %4 to { i8, double }* + %6 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point5* %3 to i8* + %9 = bitcast %struct.point5* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point5* %3 to { i8, double }* + %11 = getelementptr inbounds { i8, double }, { i8, double }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 8 + %13 = getelementptr inbounds { i8, double }, { i8, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i8, double } undef, i8 %12, 0 + %16 = insertvalue { i8, double } %15, double %14, 1 + ret { i8, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 8 + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 8 + %3 = alloca %struct.point9, align 8 + %4 = bitcast %struct.point9* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point9* %2 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point9* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, float } @demo10(i16 %0, float %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = alloca %struct.point10, align 4 + %5 = bitcast %struct.point10* %4 to { i16, float }* + %6 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 4 + %7 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point10* %3 to i8* + %9 = bitcast %struct.point10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point10* %3 to { i16, float }* + %11 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 4 + %13 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i16, float } undef, i16 %12, 0 + %16 = insertvalue { i16, float } %15, float %14, 1 + ret { i16, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, double } @demo11(i16 %0, double %1) #0 { + %3 = alloca %struct.point11, align 8 + %4 = alloca %struct.point11, align 8 + %5 = bitcast %struct.point11* %4 to { i16, double }* + %6 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 8 + %7 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point11* %3 to i8* + %9 = bitcast %struct.point11* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point11* %3 to { i16, double }* + %11 = getelementptr inbounds { i16, double }, { i16, double }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 8 + %13 = getelementptr inbounds { i16, double }, { i16, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i16, double } undef, i16 %12, 0 + %16 = insertvalue { i16, double } %15, double %14, 1 + ret { i16, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 8 + %3 = alloca %struct.point12, align 8 + %4 = bitcast %struct.point12* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo13(i64 %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point13* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo14(i64 %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point14* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 8 + %3 = alloca %struct.point15, align 8 + %4 = bitcast %struct.point15* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point15* %2 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point15* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, float } @demo16(i32 %0, float %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = alloca %struct.point16, align 4 + %5 = bitcast %struct.point16* %4 to { i32, float }* + %6 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 4 + %7 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point16* %3 to i8* + %9 = bitcast %struct.point16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point16* %3 to { i32, float }* + %11 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i32, float } undef, i32 %12, 0 + %16 = insertvalue { i32, float } %15, float %14, 1 + ret { i32, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, double } @demo17(i32 %0, double %1) #0 { + %3 = alloca %struct.point17, align 8 + %4 = alloca %struct.point17, align 8 + %5 = bitcast %struct.point17* %4 to { i32, double }* + %6 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point17* %3 to i8* + %9 = bitcast %struct.point17* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point17* %3 to { i32, double }* + %11 = getelementptr inbounds { i32, double }, { i32, double }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 8 + %13 = getelementptr inbounds { i32, double }, { i32, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i32, double } undef, i32 %12, 0 + %16 = insertvalue { i32, double } %15, double %14, 1 + ret { i32, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo18([2 x i64] %0) #0 { + %2 = alloca %struct.point18, align 8 + %3 = alloca %struct.point18, align 8 + %4 = bitcast %struct.point18* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo19([2 x i64] %0) #0 { + %2 = alloca %struct.point19, align 8 + %3 = alloca %struct.point19, align 8 + %4 = bitcast %struct.point19* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point19* %2 to i8* + %6 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point19* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo20([2 x i64] %0) #0 { + %2 = alloca %struct.point20, align 8 + %3 = alloca %struct.point20, align 8 + %4 = bitcast %struct.point20* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point20* %2 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point20* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 8 + %3 = alloca %struct.point21, align 8 + %4 = bitcast %struct.point21* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point21* %2 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point21* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i64, float } @demo22(i64 %0, float %1) #0 { + %3 = alloca %struct.point22, align 8 + %4 = alloca %struct.point22, align 8 + %5 = bitcast %struct.point22* %4 to { i64, float }* + %6 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point22* %3 to i8* + %9 = bitcast %struct.point22* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point22* %3 to { i64, float }* + %11 = getelementptr inbounds { i64, float }, { i64, float }* %10, i32 0, i32 0 + %12 = load i64, i64* %11, align 8 + %13 = getelementptr inbounds { i64, float }, { i64, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 8 + %15 = insertvalue { i64, float } undef, i64 %12, 0 + %16 = insertvalue { i64, float } %15, float %14, 1 + ret { i64, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i64, double } @demo23(i64 %0, double %1) #0 { + %3 = alloca %struct.point23, align 8 + %4 = alloca %struct.point23, align 8 + %5 = bitcast %struct.point23* %4 to { i64, double }* + %6 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point23* %3 to i8* + %9 = bitcast %struct.point23* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point23* %3 to { i64, double }* + %11 = getelementptr inbounds { i64, double }, { i64, double }* %10, i32 0, i32 0 + %12 = load i64, i64* %11, align 8 + %13 = getelementptr inbounds { i64, double }, { i64, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { i64, double } undef, i64 %12, 0 + %16 = insertvalue { i64, double } %15, double %14, 1 + ret { i64, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo24([2 x i64] %0) #0 { + %2 = alloca %struct.point24, align 8 + %3 = alloca %struct.point24, align 8 + %4 = bitcast %struct.point24* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point24* %2 to i8* + %6 = bitcast %struct.point24* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point24* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i8 } @demo25(float %0, i8 %1) #0 { + %3 = alloca %struct.point25, align 4 + %4 = alloca %struct.point25, align 4 + %5 = bitcast %struct.point25* %4 to { float, i8 }* + %6 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 4 + %8 = bitcast %struct.point25* %3 to i8* + %9 = bitcast %struct.point25* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point25* %3 to { float, i8 }* + %11 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 4 + %15 = insertvalue { float, i8 } undef, float %12, 0 + %16 = insertvalue { float, i8 } %15, i8 %14, 1 + ret { float, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i16 } @demo26(float %0, i16 %1) #0 { + %3 = alloca %struct.point26, align 4 + %4 = alloca %struct.point26, align 4 + %5 = bitcast %struct.point26* %4 to { float, i16 }* + %6 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 4 + %8 = bitcast %struct.point26* %3 to i8* + %9 = bitcast %struct.point26* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point26* %3 to { float, i16 }* + %11 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 4 + %15 = insertvalue { float, i16 } undef, float %12, 0 + %16 = insertvalue { float, i16 } %15, i16 %14, 1 + ret { float, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i32 } @demo27(float %0, i32 %1) #0 { + %3 = alloca %struct.point27, align 4 + %4 = alloca %struct.point27, align 4 + %5 = bitcast %struct.point27* %4 to { float, i32 }* + %6 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 4 + %8 = bitcast %struct.point27* %3 to i8* + %9 = bitcast %struct.point27* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point27* %3 to { float, i32 }* + %11 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = insertvalue { float, i32 } undef, float %12, 0 + %16 = insertvalue { float, i32 } %15, i32 %14, 1 + ret { float, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i64 } @demo28(float %0, i64 %1) #0 { + %3 = alloca %struct.point28, align 8 + %4 = alloca %struct.point28, align 8 + %5 = bitcast %struct.point28* %4 to { float, i64 }* + %6 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point28* %3 to i8* + %9 = bitcast %struct.point28* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point28* %3 to { float, i64 }* + %11 = getelementptr inbounds { float, i64 }, { float, i64 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 8 + %13 = getelementptr inbounds { float, i64 }, { float, i64 }* %10, i32 0, i32 1 + %14 = load i64, i64* %13, align 8 + %15 = insertvalue { float, i64 } undef, float %12, 0 + %16 = insertvalue { float, i64 } %15, i64 %14, 1 + ret { float, i64 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, double } @demo29(float %0, double %1) #0 { + %3 = alloca %struct.point29, align 8 + %4 = alloca %struct.point29, align 8 + %5 = bitcast %struct.point29* %4 to { float, double }* + %6 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point29* %3 to i8* + %9 = bitcast %struct.point29* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point29* %3 to { float, double }* + %11 = getelementptr inbounds { float, double }, { float, double }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 8 + %13 = getelementptr inbounds { float, double }, { float, double }* %10, i32 0, i32 1 + %14 = load double, double* %13, align 8 + %15 = insertvalue { float, double } undef, float %12, 0 + %16 = insertvalue { float, double } %15, double %14, 1 + ret { float, double } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo30([2 x i64] %0) #0 { + %2 = alloca %struct.point30, align 8 + %3 = alloca %struct.point30, align 8 + %4 = bitcast %struct.point30* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i8 } @demo31(double %0, i8 %1) #0 { + %3 = alloca %struct.point31, align 8 + %4 = alloca %struct.point31, align 8 + %5 = bitcast %struct.point31* %4 to { double, i8 }* + %6 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = bitcast %struct.point31* %3 to i8* + %9 = bitcast %struct.point31* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point31* %3 to { double, i8 }* + %11 = getelementptr inbounds { double, i8 }, { double, i8 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i8 }, { double, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 8 + %15 = insertvalue { double, i8 } undef, double %12, 0 + %16 = insertvalue { double, i8 } %15, i8 %14, 1 + ret { double, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i16 } @demo32(double %0, i16 %1) #0 { + %3 = alloca %struct.point32, align 8 + %4 = alloca %struct.point32, align 8 + %5 = bitcast %struct.point32* %4 to { double, i16 }* + %6 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 8 + %8 = bitcast %struct.point32* %3 to i8* + %9 = bitcast %struct.point32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point32* %3 to { double, i16 }* + %11 = getelementptr inbounds { double, i16 }, { double, i16 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i16 }, { double, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 8 + %15 = insertvalue { double, i16 } undef, double %12, 0 + %16 = insertvalue { double, i16 } %15, i16 %14, 1 + ret { double, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i32 } @demo33(double %0, i32 %1) #0 { + %3 = alloca %struct.point33, align 8 + %4 = alloca %struct.point33, align 8 + %5 = bitcast %struct.point33* %4 to { double, i32 }* + %6 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 8 + %8 = bitcast %struct.point33* %3 to i8* + %9 = bitcast %struct.point33* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point33* %3 to { double, i32 }* + %11 = getelementptr inbounds { double, i32 }, { double, i32 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i32 }, { double, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 8 + %15 = insertvalue { double, i32 } undef, double %12, 0 + %16 = insertvalue { double, i32 } %15, i32 %14, 1 + ret { double, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, i64 } @demo34(double %0, i64 %1) #0 { + %3 = alloca %struct.point34, align 8 + %4 = alloca %struct.point34, align 8 + %5 = bitcast %struct.point34* %4 to { double, i64 }* + %6 = getelementptr inbounds { double, i64 }, { double, i64 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i64 }, { double, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point34* %3 to i8* + %9 = bitcast %struct.point34* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point34* %3 to { double, i64 }* + %11 = getelementptr inbounds { double, i64 }, { double, i64 }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, i64 }, { double, i64 }* %10, i32 0, i32 1 + %14 = load i64, i64* %13, align 8 + %15 = insertvalue { double, i64 } undef, double %12, 0 + %16 = insertvalue { double, i64 } %15, i64 %14, 1 + ret { double, i64 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { double, float } @demo35(double %0, float %1) #0 { + %3 = alloca %struct.point35, align 8 + %4 = alloca %struct.point35, align 8 + %5 = bitcast %struct.point35* %4 to { double, float }* + %6 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point35* %3 to i8* + %9 = bitcast %struct.point35* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point35* %3 to { double, float }* + %11 = getelementptr inbounds { double, float }, { double, float }* %10, i32 0, i32 0 + %12 = load double, double* %11, align 8 + %13 = getelementptr inbounds { double, float }, { double, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 8 + %15 = insertvalue { double, float } undef, double %12, 0 + %16 = insertvalue { double, float } %15, float %14, 1 + ret { double, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo36([2 x i64] %0) #0 { + %2 = alloca %struct.point36, align 8 + %3 = alloca %struct.point36, align 8 + %4 = bitcast %struct.point36* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point36* %2 to i8* + %6 = bitcast %struct.point36* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point36* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo37([2 x i64] %0) #0 { + %2 = alloca %struct.point37, align 8 + %3 = alloca %struct.point37, align 8 + %4 = bitcast %struct.point37* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo38([2 x i64] %0) #0 { + %2 = alloca %struct.point38, align 8 + %3 = alloca %struct.point38, align 8 + %4 = bitcast %struct.point38* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo39([2 x i64] %0) #0 { + %2 = alloca %struct.point39, align 8 + %3 = alloca %struct.point39, align 8 + %4 = bitcast %struct.point39* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo40([2 x i64] %0) #0 { + %2 = alloca %struct.point40, align 8 + %3 = alloca %struct.point40, align 8 + %4 = bitcast %struct.point40* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point40* %2 to i8* + %6 = bitcast %struct.point40* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point40* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo41([2 x i64] %0) #0 { + %2 = alloca %struct.point41, align 8 + %3 = alloca %struct.point41, align 8 + %4 = bitcast %struct.point41* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo42([2 x i64] %0) #0 { + %2 = alloca %struct.point42, align 8 + %3 = alloca %struct.point42, align 8 + %4 = bitcast %struct.point42* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point42* %2 to i8* + %6 = bitcast %struct.point42* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point42* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo43(i64 %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo44(i64 %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo45(i64 %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point45* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo46(i64 %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point46* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo47([2 x i64] %0) #0 { + %2 = alloca %struct.point47, align 4 + %3 = alloca %struct.point47, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point47* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point47* %2 to i8* + %9 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point47* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo48([2 x i64] %0) #0 { + %2 = alloca %struct.point48, align 4 + %3 = alloca %struct.point48, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point48* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point48* %2 to i8* + %9 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point48* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo49(i64 %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point49* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo50([2 x i64] %0) #0 { + %2 = alloca %struct.point50, align 2 + %3 = alloca %struct.point50, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point50* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point50* %2 to i8* + %9 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point50* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo51([2 x i64] %0) #0 { + %2 = alloca %struct.point51, align 2 + %3 = alloca %struct.point51, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point51* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point51* %2 to i8* + %9 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point51* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo52([2 x i64] %0) #0 { + %2 = alloca %struct.point52, align 4 + %3 = alloca %struct.point52, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point52* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point52* %2 to i8* + %9 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point52* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo53([2 x i64] %0) #0 { + %2 = alloca %struct.point53, align 4 + %3 = alloca %struct.point53, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point53* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point53* %2 to i8* + %9 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point53* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo54([2 x i64] %0) #0 { + %2 = alloca %struct.point54, align 4 + %3 = alloca %struct.point54, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point54* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point54* %2 to i8* + %9 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point54* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo55([2 x i64] %0) #0 { + %2 = alloca %struct.point55, align 4 + %3 = alloca %struct.point55, align 4 + %4 = bitcast %struct.point55* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point55* %2 to i8* + %6 = bitcast %struct.point55* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point55* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo56([2 x i64] %0) #0 { + %2 = alloca %struct.point56, align 4 + %3 = alloca %struct.point56, align 4 + %4 = bitcast %struct.point56* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point56* %2 to i8* + %6 = bitcast %struct.point56* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point56* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo57([2 x i64] %0) #0 { + %2 = alloca %struct.point57, align 4 + %3 = alloca %struct.point57, align 4 + %4 = bitcast %struct.point57* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point57* %2 to i8* + %6 = bitcast %struct.point57* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point57* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo58([2 x i64] %0) #0 { + %2 = alloca %struct.point58, align 4 + %3 = alloca %struct.point58, align 4 + %4 = bitcast %struct.point58* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point58* %2 to i8* + %6 = bitcast %struct.point58* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point58* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo59([2 x i64] %0) #0 { + %2 = alloca %struct.point59, align 4 + %3 = alloca %struct.point59, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point59* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point59* %2 to i8* + %9 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point59* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo60([2 x i64] %0) #0 { + %2 = alloca %struct.point60, align 4 + %3 = alloca %struct.point60, align 4 + %4 = bitcast %struct.point60* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point60* %2 to i8* + %6 = bitcast %struct.point60* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point60* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo61([2 x i64] %0) #0 { + %2 = alloca %struct.point61, align 4 + %3 = alloca %struct.point61, align 4 + %4 = bitcast %struct.point61* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point61* %2 to i8* + %6 = bitcast %struct.point61* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point61* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo62([2 x i64] %0) #0 { + %2 = alloca %struct.point62, align 4 + %3 = alloca %struct.point62, align 4 + %4 = bitcast %struct.point62* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point62* %2 to i8* + %6 = bitcast %struct.point62* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point62* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo63([2 x i64] %0) #0 { + %2 = alloca %struct.point63, align 4 + %3 = alloca %struct.point63, align 4 + %4 = bitcast %struct.point63* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point63* %2 to i8* + %6 = bitcast %struct.point63* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point63* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo64(i64 %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo65(i64 %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point65* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo66(i64 %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point66* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo67([2 x i64] %0) #0 { + %2 = alloca %struct.point67, align 2 + %3 = alloca %struct.point67, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point67* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point67* %2 to i8* + %9 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point67* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo68([2 x i64] %0) #0 { + %2 = alloca %struct.point68, align 4 + %3 = alloca %struct.point68, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point68* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point68* %2 to i8* + %9 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point68* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo69([2 x i64] %0) #0 { + %2 = alloca %struct.point69, align 4 + %3 = alloca %struct.point69, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point69* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point69* %2 to i8* + %9 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point69* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo70(i64 %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point70* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo71([2 x i64] %0) #0 { + %2 = alloca %struct.point71, align 2 + %3 = alloca %struct.point71, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point71* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point71* %2 to i8* + %9 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point71* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo72([2 x i64] %0) #0 { + %2 = alloca %struct.point72, align 2 + %3 = alloca %struct.point72, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point72* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point72* %2 to i8* + %9 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point72* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo73([2 x i64] %0) #0 { + %2 = alloca %struct.point73, align 4 + %3 = alloca %struct.point73, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point73* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point73* %2 to i8* + %9 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point73* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo74([2 x i64] %0) #0 { + %2 = alloca %struct.point74, align 4 + %3 = alloca %struct.point74, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point74* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point74* %2 to i8* + %9 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point74* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo75([2 x i64] %0) #0 { + %2 = alloca %struct.point75, align 4 + %3 = alloca %struct.point75, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point75* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point75* %2 to i8* + %9 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point75* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo76([2 x i64] %0) #0 { + %2 = alloca %struct.point76, align 4 + %3 = alloca %struct.point76, align 4 + %4 = bitcast %struct.point76* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point76* %2 to i8* + %6 = bitcast %struct.point76* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point76* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo77([2 x i64] %0) #0 { + %2 = alloca %struct.point77, align 4 + %3 = alloca %struct.point77, align 4 + %4 = bitcast %struct.point77* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point77* %2 to i8* + %6 = bitcast %struct.point77* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point77* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo78([2 x i64] %0) #0 { + %2 = alloca %struct.point78, align 4 + %3 = alloca %struct.point78, align 4 + %4 = bitcast %struct.point78* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point78* %2 to i8* + %6 = bitcast %struct.point78* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point78* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo79([2 x i64] %0) #0 { + %2 = alloca %struct.point79, align 4 + %3 = alloca %struct.point79, align 4 + %4 = bitcast %struct.point79* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point79* %2 to i8* + %6 = bitcast %struct.point79* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point79* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo80([2 x i64] %0) #0 { + %2 = alloca %struct.point80, align 4 + %3 = alloca %struct.point80, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point80* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point80* %2 to i8* + %9 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point80* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo81([2 x i64] %0) #0 { + %2 = alloca %struct.point81, align 4 + %3 = alloca %struct.point81, align 4 + %4 = bitcast %struct.point81* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point81* %2 to i8* + %6 = bitcast %struct.point81* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point81* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo82([2 x i64] %0) #0 { + %2 = alloca %struct.point82, align 4 + %3 = alloca %struct.point82, align 4 + %4 = bitcast %struct.point82* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point82* %2 to i8* + %6 = bitcast %struct.point82* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point82* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo83([2 x i64] %0) #0 { + %2 = alloca %struct.point83, align 4 + %3 = alloca %struct.point83, align 4 + %4 = bitcast %struct.point83* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point83* %2 to i8* + %6 = bitcast %struct.point83* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point83* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo84([2 x i64] %0) #0 { + %2 = alloca %struct.point84, align 4 + %3 = alloca %struct.point84, align 4 + %4 = bitcast %struct.point84* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point84* %2 to i8* + %6 = bitcast %struct.point84* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point84* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo85(i64 %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point85* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo86([2 x i64] %0) #0 { + %2 = alloca %struct.point86, align 4 + %3 = alloca %struct.point86, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point86* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point86* %2 to i8* + %9 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point86* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo87([2 x i64] %0) #0 { + %2 = alloca %struct.point87, align 4 + %3 = alloca %struct.point87, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point87* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point87* %2 to i8* + %9 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point87* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo88([2 x i64] %0) #0 { + %2 = alloca %struct.point88, align 4 + %3 = alloca %struct.point88, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point88* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point88* %2 to i8* + %9 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point88* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo89([2 x i64] %0) #0 { + %2 = alloca %struct.point89, align 4 + %3 = alloca %struct.point89, align 4 + %4 = bitcast %struct.point89* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point89* %2 to i8* + %6 = bitcast %struct.point89* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point89* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo90([2 x i64] %0) #0 { + %2 = alloca %struct.point90, align 4 + %3 = alloca %struct.point90, align 4 + %4 = bitcast %struct.point90* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point90* %2 to i8* + %6 = bitcast %struct.point90* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point90* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo91([2 x i64] %0) #0 { + %2 = alloca %struct.point91, align 4 + %3 = alloca %struct.point91, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point91* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point91* %2 to i8* + %9 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point91* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo92([2 x i64] %0) #0 { + %2 = alloca %struct.point92, align 4 + %3 = alloca %struct.point92, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point92* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point92* %2 to i8* + %9 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point92* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo93([2 x i64] %0) #0 { + %2 = alloca %struct.point93, align 4 + %3 = alloca %struct.point93, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point93* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point93* %2 to i8* + %9 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point93* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo94([2 x i64] %0) #0 { + %2 = alloca %struct.point94, align 4 + %3 = alloca %struct.point94, align 4 + %4 = bitcast %struct.point94* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point94* %2 to i8* + %6 = bitcast %struct.point94* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point94* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo95([2 x i64] %0) #0 { + %2 = alloca %struct.point95, align 4 + %3 = alloca %struct.point95, align 4 + %4 = bitcast %struct.point95* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point95* %2 to i8* + %6 = bitcast %struct.point95* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point95* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo96([2 x i64] %0) #0 { + %2 = alloca %struct.point96, align 4 + %3 = alloca %struct.point96, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point96* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point96* %2 to i8* + %9 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point96* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo97([2 x i64] %0) #0 { + %2 = alloca %struct.point97, align 4 + %3 = alloca %struct.point97, align 4 + %4 = bitcast %struct.point97* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point97* %2 to i8* + %6 = bitcast %struct.point97* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point97* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo98([2 x i64] %0) #0 { + %2 = alloca %struct.point98, align 4 + %3 = alloca %struct.point98, align 4 + %4 = bitcast %struct.point98* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point98* %2 to i8* + %6 = bitcast %struct.point98* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point98* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo99([2 x i64] %0) #0 { + %2 = alloca %struct.point99, align 4 + %3 = alloca %struct.point99, align 4 + %4 = bitcast %struct.point99* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point99* %2 to i8* + %6 = bitcast %struct.point99* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point99* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo100([2 x i64] %0) #0 { + %2 = alloca %struct.point100, align 4 + %3 = alloca %struct.point100, align 4 + %4 = bitcast %struct.point100* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point100* %2 to i8* + %6 = bitcast %struct.point100* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point100* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo101([2 x i64] %0) #0 { + %2 = alloca %struct.point101, align 4 + %3 = alloca %struct.point101, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point101* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point101* %2 to i8* + %9 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point101* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo102([2 x i64] %0) #0 { + %2 = alloca %struct.point102, align 4 + %3 = alloca %struct.point102, align 4 + %4 = bitcast %struct.point102* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point102* %2 to i8* + %6 = bitcast %struct.point102* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point102* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo103([2 x i64] %0) #0 { + %2 = alloca %struct.point103, align 4 + %3 = alloca %struct.point103, align 4 + %4 = bitcast %struct.point103* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point103* %2 to i8* + %6 = bitcast %struct.point103* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point103* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo104([2 x i64] %0) #0 { + %2 = alloca %struct.point104, align 4 + %3 = alloca %struct.point104, align 4 + %4 = bitcast %struct.point104* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point104* %2 to i8* + %6 = bitcast %struct.point104* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point104* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo105([2 x i64] %0) #0 { + %2 = alloca %struct.point105, align 4 + %3 = alloca %struct.point105, align 4 + %4 = bitcast %struct.point105* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point105* %2 to i8* + %6 = bitcast %struct.point105* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point105* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo106(i64 %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point106* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo107([2 x i64] %0) #0 { + %2 = alloca %struct.point107, align 4 + %3 = alloca %struct.point107, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point107* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point107* %2 to i8* + %9 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point107* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo108([2 x i64] %0) #0 { + %2 = alloca %struct.point108, align 4 + %3 = alloca %struct.point108, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point108* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point108* %2 to i8* + %9 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point108* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo109([2 x i64] %0) #0 { + %2 = alloca %struct.point109, align 4 + %3 = alloca %struct.point109, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point109* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point109* %2 to i8* + %9 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point109* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo110([2 x i64] %0) #0 { + %2 = alloca %struct.point110, align 4 + %3 = alloca %struct.point110, align 4 + %4 = bitcast %struct.point110* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point110* %2 to i8* + %6 = bitcast %struct.point110* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point110* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo111([2 x i64] %0) #0 { + %2 = alloca %struct.point111, align 4 + %3 = alloca %struct.point111, align 4 + %4 = bitcast %struct.point111* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point111* %2 to i8* + %6 = bitcast %struct.point111* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point111* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo112([2 x i64] %0) #0 { + %2 = alloca %struct.point112, align 4 + %3 = alloca %struct.point112, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point112* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point112* %2 to i8* + %9 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point112* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo113([2 x i64] %0) #0 { + %2 = alloca %struct.point113, align 4 + %3 = alloca %struct.point113, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point113* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point113* %2 to i8* + %9 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point113* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo114([2 x i64] %0) #0 { + %2 = alloca %struct.point114, align 4 + %3 = alloca %struct.point114, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point114* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point114* %2 to i8* + %9 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point114* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo115([2 x i64] %0) #0 { + %2 = alloca %struct.point115, align 4 + %3 = alloca %struct.point115, align 4 + %4 = bitcast %struct.point115* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point115* %2 to i8* + %6 = bitcast %struct.point115* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point115* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo116([2 x i64] %0) #0 { + %2 = alloca %struct.point116, align 4 + %3 = alloca %struct.point116, align 4 + %4 = bitcast %struct.point116* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point116* %2 to i8* + %6 = bitcast %struct.point116* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point116* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo117([2 x i64] %0) #0 { + %2 = alloca %struct.point117, align 4 + %3 = alloca %struct.point117, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point117* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point117* %2 to i8* + %9 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point117* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo118([2 x i64] %0) #0 { + %2 = alloca %struct.point118, align 4 + %3 = alloca %struct.point118, align 4 + %4 = bitcast %struct.point118* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point118* %2 to i8* + %6 = bitcast %struct.point118* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point118* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo119([2 x i64] %0) #0 { + %2 = alloca %struct.point119, align 4 + %3 = alloca %struct.point119, align 4 + %4 = bitcast %struct.point119* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point119* %2 to i8* + %6 = bitcast %struct.point119* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point119* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo120([2 x i64] %0) #0 { + %2 = alloca %struct.point120, align 4 + %3 = alloca %struct.point120, align 4 + %4 = bitcast %struct.point120* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point120* %2 to i8* + %6 = bitcast %struct.point120* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point120* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo121([2 x i64] %0) #0 { + %2 = alloca %struct.point121, align 4 + %3 = alloca %struct.point121, align 4 + %4 = bitcast %struct.point121* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point121* %2 to i8* + %6 = bitcast %struct.point121* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point121* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo122([2 x i64] %0) #0 { + %2 = alloca %struct.point122, align 4 + %3 = alloca %struct.point122, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point122* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point122* %2 to i8* + %9 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point122* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo123([2 x i64] %0) #0 { + %2 = alloca %struct.point123, align 4 + %3 = alloca %struct.point123, align 4 + %4 = bitcast %struct.point123* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point123* %2 to i8* + %6 = bitcast %struct.point123* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point123* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo124([2 x i64] %0) #0 { + %2 = alloca %struct.point124, align 4 + %3 = alloca %struct.point124, align 4 + %4 = bitcast %struct.point124* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point124* %2 to i8* + %6 = bitcast %struct.point124* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point124* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo125([2 x i64] %0) #0 { + %2 = alloca %struct.point125, align 4 + %3 = alloca %struct.point125, align 4 + %4 = bitcast %struct.point125* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point125* %2 to i8* + %6 = bitcast %struct.point125* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point125* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo126([2 x i64] %0) #0 { + %2 = alloca %struct.point126, align 4 + %3 = alloca %struct.point126, align 4 + %4 = bitcast %struct.point126* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point126* %2 to i8* + %6 = bitcast %struct.point126* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point126* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo127([2 x i64] %0) #0 { + %2 = alloca %struct.point127, align 4 + %3 = alloca %struct.point127, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point127* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point127* %2 to i8* + %9 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point127* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo128([2 x i64] %0) #0 { + %2 = alloca %struct.point128, align 4 + %3 = alloca %struct.point128, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point128* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point128* %2 to i8* + %9 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point128* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo129([2 x i64] %0) #0 { + %2 = alloca %struct.point129, align 4 + %3 = alloca %struct.point129, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point129* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point129* %2 to i8* + %9 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point129* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo130([2 x i64] %0) #0 { + %2 = alloca %struct.point130, align 4 + %3 = alloca %struct.point130, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point130* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point130* %2 to i8* + %9 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point130* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo131([2 x i64] %0) #0 { + %2 = alloca %struct.point131, align 4 + %3 = alloca %struct.point131, align 4 + %4 = bitcast %struct.point131* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point131* %2 to i8* + %6 = bitcast %struct.point131* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point131* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo132([2 x i64] %0) #0 { + %2 = alloca %struct.point132, align 4 + %3 = alloca %struct.point132, align 4 + %4 = bitcast %struct.point132* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point132* %2 to i8* + %6 = bitcast %struct.point132* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point132* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo133([2 x i64] %0) #0 { + %2 = alloca %struct.point133, align 4 + %3 = alloca %struct.point133, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point133* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point133* %2 to i8* + %9 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point133* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo134([2 x i64] %0) #0 { + %2 = alloca %struct.point134, align 4 + %3 = alloca %struct.point134, align 4 + %4 = bitcast %struct.point134* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point134* %2 to i8* + %6 = bitcast %struct.point134* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point134* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo135([2 x i64] %0) #0 { + %2 = alloca %struct.point135, align 4 + %3 = alloca %struct.point135, align 4 + %4 = bitcast %struct.point135* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point135* %2 to i8* + %6 = bitcast %struct.point135* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point135* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo136([2 x i64] %0) #0 { + %2 = alloca %struct.point136, align 4 + %3 = alloca %struct.point136, align 4 + %4 = bitcast %struct.point136* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point136* %2 to i8* + %6 = bitcast %struct.point136* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point136* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo137([2 x i64] %0) #0 { + %2 = alloca %struct.point137, align 4 + %3 = alloca %struct.point137, align 4 + %4 = bitcast %struct.point137* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point137* %2 to i8* + %6 = bitcast %struct.point137* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point137* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo138([2 x i64] %0) #0 { + %2 = alloca %struct.point138, align 4 + %3 = alloca %struct.point138, align 4 + %4 = bitcast %struct.point138* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point138* %2 to i8* + %6 = bitcast %struct.point138* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point138* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo143([2 x i64] %0) #0 { + %2 = alloca %struct.point143, align 4 + %3 = alloca %struct.point143, align 4 + %4 = bitcast %struct.point143* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point143* %2 to i8* + %6 = bitcast %struct.point143* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point143* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo148([2 x i64] %0) #0 { + %2 = alloca %struct.point148, align 4 + %3 = alloca %struct.point148, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point148* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point148* %2 to i8* + %9 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point148* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo149([2 x i64] %0) #0 { + %2 = alloca %struct.point149, align 4 + %3 = alloca %struct.point149, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point149* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point149* %2 to i8* + %9 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point149* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo150([2 x i64] %0) #0 { + %2 = alloca %struct.point150, align 4 + %3 = alloca %struct.point150, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point150* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point150* %2 to i8* + %9 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point150* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo151([2 x i64] %0) #0 { + %2 = alloca %struct.point151, align 4 + %3 = alloca %struct.point151, align 4 + %4 = bitcast %struct.point151* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point151* %2 to i8* + %6 = bitcast %struct.point151* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point151* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo152([2 x i64] %0) #0 { + %2 = alloca %struct.point152, align 4 + %3 = alloca %struct.point152, align 4 + %4 = bitcast %struct.point152* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point152* %2 to i8* + %6 = bitcast %struct.point152* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point152* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo153([2 x i64] %0) #0 { + %2 = alloca %struct.point153, align 4 + %3 = alloca %struct.point153, align 4 + %4 = bitcast %struct.point153* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point153* %2 to i8* + %6 = bitcast %struct.point153* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point153* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo154([2 x i64] %0) #0 { + %2 = alloca %struct.point154, align 4 + %3 = alloca %struct.point154, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point154* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point154* %2 to i8* + %9 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point154* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo155([2 x i64] %0) #0 { + %2 = alloca %struct.point155, align 4 + %3 = alloca %struct.point155, align 4 + %4 = bitcast %struct.point155* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point155* %2 to i8* + %6 = bitcast %struct.point155* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point155* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo156([2 x i64] %0) #0 { + %2 = alloca %struct.point156, align 4 + %3 = alloca %struct.point156, align 4 + %4 = bitcast %struct.point156* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point156* %2 to i8* + %6 = bitcast %struct.point156* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point156* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo157([2 x i64] %0) #0 { + %2 = alloca %struct.point157, align 4 + %3 = alloca %struct.point157, align 4 + %4 = bitcast %struct.point157* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point157* %2 to i8* + %6 = bitcast %struct.point157* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point157* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo158([2 x i64] %0) #0 { + %2 = alloca %struct.point158, align 4 + %3 = alloca %struct.point158, align 4 + %4 = bitcast %struct.point158* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point158* %2 to i8* + %6 = bitcast %struct.point158* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point158* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo159([2 x i64] %0) #0 { + %2 = alloca %struct.point159, align 4 + %3 = alloca %struct.point159, align 4 + %4 = bitcast %struct.point159* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point159* %2 to i8* + %6 = bitcast %struct.point159* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point159* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo164([2 x i64] %0) #0 { + %2 = alloca %struct.point164, align 4 + %3 = alloca %struct.point164, align 4 + %4 = bitcast %struct.point164* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point164* %2 to i8* + %6 = bitcast %struct.point164* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point164* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo169([2 x i64] %0) #0 { + %2 = alloca %struct.point169, align 4 + %3 = alloca %struct.point169, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point169* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point169* %2 to i8* + %9 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point169* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo170([2 x i64] %0) #0 { + %2 = alloca %struct.point170, align 4 + %3 = alloca %struct.point170, align 4 + %4 = bitcast %struct.point170* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point170* %2 to i8* + %6 = bitcast %struct.point170* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point170* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo171([2 x i64] %0) #0 { + %2 = alloca %struct.point171, align 4 + %3 = alloca %struct.point171, align 4 + %4 = bitcast %struct.point171* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point171* %2 to i8* + %6 = bitcast %struct.point171* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point171* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo172([2 x i64] %0) #0 { + %2 = alloca %struct.point172, align 4 + %3 = alloca %struct.point172, align 4 + %4 = bitcast %struct.point172* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point172* %2 to i8* + %6 = bitcast %struct.point172* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point172* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo175([2 x i64] %0) #0 { + %2 = alloca %struct.point175, align 4 + %3 = alloca %struct.point175, align 4 + %4 = bitcast %struct.point175* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point175* %2 to i8* + %6 = bitcast %struct.point175* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point175* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo176([2 x i64] %0) #0 { + %2 = alloca %struct.point176, align 4 + %3 = alloca %struct.point176, align 4 + %4 = bitcast %struct.point176* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point176* %2 to i8* + %6 = bitcast %struct.point176* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point176* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo177([2 x i64] %0) #0 { + %2 = alloca %struct.point177, align 4 + %3 = alloca %struct.point177, align 4 + %4 = bitcast %struct.point177* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point177* %2 to i8* + %6 = bitcast %struct.point177* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point177* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo180([2 x i64] %0) #0 { + %2 = alloca %struct.point180, align 4 + %3 = alloca %struct.point180, align 4 + %4 = bitcast %struct.point180* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point180* %2 to i8* + %6 = bitcast %struct.point180* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point180* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo185([2 x i64] %0) #0 { + %2 = alloca %struct.point185, align 4 + %3 = alloca %struct.point185, align 4 + %4 = bitcast %struct.point185* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point185* %2 to i8* + %6 = bitcast %struct.point185* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point185* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo190([2 x i64] %0) #0 { + %2 = alloca %struct.point190, align 4 + %3 = alloca %struct.point190, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point190* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point190* %2 to i8* + %9 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point190* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo191([2 x i64] %0) #0 { + %2 = alloca %struct.point191, align 4 + %3 = alloca %struct.point191, align 4 + %4 = bitcast %struct.point191* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point191* %2 to i8* + %6 = bitcast %struct.point191* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point191* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo192([2 x i64] %0) #0 { + %2 = alloca %struct.point192, align 4 + %3 = alloca %struct.point192, align 4 + %4 = bitcast %struct.point192* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point192* %2 to i8* + %6 = bitcast %struct.point192* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point192* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo193([2 x i64] %0) #0 { + %2 = alloca %struct.point193, align 4 + %3 = alloca %struct.point193, align 4 + %4 = bitcast %struct.point193* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point193* %2 to i8* + %6 = bitcast %struct.point193* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point193* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo196([2 x i64] %0) #0 { + %2 = alloca %struct.point196, align 4 + %3 = alloca %struct.point196, align 4 + %4 = bitcast %struct.point196* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point196* %2 to i8* + %6 = bitcast %struct.point196* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point196* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo197([2 x i64] %0) #0 { + %2 = alloca %struct.point197, align 4 + %3 = alloca %struct.point197, align 4 + %4 = bitcast %struct.point197* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point197* %2 to i8* + %6 = bitcast %struct.point197* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point197* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo198([2 x i64] %0) #0 { + %2 = alloca %struct.point198, align 4 + %3 = alloca %struct.point198, align 4 + %4 = bitcast %struct.point198* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point198* %2 to i8* + %6 = bitcast %struct.point198* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point198* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo201([2 x i64] %0) #0 { + %2 = alloca %struct.point201, align 4 + %3 = alloca %struct.point201, align 4 + %4 = bitcast %struct.point201* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point201* %2 to i8* + %6 = bitcast %struct.point201* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point201* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo206([2 x i64] %0) #0 { + %2 = alloca %struct.point206, align 4 + %3 = alloca %struct.point206, align 4 + %4 = bitcast %struct.point206* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point206* %2 to i8* + %6 = bitcast %struct.point206* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point206* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo211([2 x i64] %0) #0 { + %2 = alloca %struct.point211, align 4 + %3 = alloca %struct.point211, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point211* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point211* %2 to i8* + %9 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point211* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo212([2 x i64] %0) #0 { + %2 = alloca %struct.point212, align 4 + %3 = alloca %struct.point212, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point212* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point212* %2 to i8* + %9 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point212* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo213([2 x i64] %0) #0 { + %2 = alloca %struct.point213, align 4 + %3 = alloca %struct.point213, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point213* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point213* %2 to i8* + %9 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point213* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo214([2 x i64] %0) #0 { + %2 = alloca %struct.point214, align 4 + %3 = alloca %struct.point214, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point214* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point214* %2 to i8* + %9 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point214* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo215([2 x i64] %0) #0 { + %2 = alloca %struct.point215, align 4 + %3 = alloca %struct.point215, align 4 + %4 = bitcast %struct.point215* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point215* %2 to i8* + %6 = bitcast %struct.point215* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point215* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo216([2 x i64] %0) #0 { + %2 = alloca %struct.point216, align 4 + %3 = alloca %struct.point216, align 4 + %4 = bitcast %struct.point216* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point216* %2 to i8* + %6 = bitcast %struct.point216* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point216* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo217([2 x i64] %0) #0 { + %2 = alloca %struct.point217, align 4 + %3 = alloca %struct.point217, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point217* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point217* %2 to i8* + %9 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point217* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo218([2 x i64] %0) #0 { + %2 = alloca %struct.point218, align 4 + %3 = alloca %struct.point218, align 4 + %4 = bitcast %struct.point218* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point218* %2 to i8* + %6 = bitcast %struct.point218* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point218* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo219([2 x i64] %0) #0 { + %2 = alloca %struct.point219, align 4 + %3 = alloca %struct.point219, align 4 + %4 = bitcast %struct.point219* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point219* %2 to i8* + %6 = bitcast %struct.point219* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point219* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo220([2 x i64] %0) #0 { + %2 = alloca %struct.point220, align 4 + %3 = alloca %struct.point220, align 4 + %4 = bitcast %struct.point220* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point220* %2 to i8* + %6 = bitcast %struct.point220* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point220* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo221([2 x i64] %0) #0 { + %2 = alloca %struct.point221, align 4 + %3 = alloca %struct.point221, align 4 + %4 = bitcast %struct.point221* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point221* %2 to i8* + %6 = bitcast %struct.point221* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point221* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo222([2 x i64] %0) #0 { + %2 = alloca %struct.point222, align 4 + %3 = alloca %struct.point222, align 4 + %4 = bitcast %struct.point222* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point222* %2 to i8* + %6 = bitcast %struct.point222* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point222* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo227([2 x i64] %0) #0 { + %2 = alloca %struct.point227, align 4 + %3 = alloca %struct.point227, align 4 + %4 = bitcast %struct.point227* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point227* %2 to i8* + %6 = bitcast %struct.point227* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point227* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo232([2 x i64] %0) #0 { + %2 = alloca %struct.point232, align 4 + %3 = alloca %struct.point232, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point232* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point232* %2 to i8* + %9 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point232* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo233([2 x i64] %0) #0 { + %2 = alloca %struct.point233, align 4 + %3 = alloca %struct.point233, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point233* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point233* %2 to i8* + %9 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point233* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo234([2 x i64] %0) #0 { + %2 = alloca %struct.point234, align 4 + %3 = alloca %struct.point234, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point234* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point234* %2 to i8* + %9 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point234* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo235([2 x i64] %0) #0 { + %2 = alloca %struct.point235, align 4 + %3 = alloca %struct.point235, align 4 + %4 = bitcast %struct.point235* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point235* %2 to i8* + %6 = bitcast %struct.point235* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point235* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo236([2 x i64] %0) #0 { + %2 = alloca %struct.point236, align 4 + %3 = alloca %struct.point236, align 4 + %4 = bitcast %struct.point236* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point236* %2 to i8* + %6 = bitcast %struct.point236* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point236* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo237([2 x i64] %0) #0 { + %2 = alloca %struct.point237, align 4 + %3 = alloca %struct.point237, align 4 + %4 = bitcast %struct.point237* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point237* %2 to i8* + %6 = bitcast %struct.point237* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point237* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo238([2 x i64] %0) #0 { + %2 = alloca %struct.point238, align 4 + %3 = alloca %struct.point238, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point238* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point238* %2 to i8* + %9 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point238* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo239([2 x i64] %0) #0 { + %2 = alloca %struct.point239, align 4 + %3 = alloca %struct.point239, align 4 + %4 = bitcast %struct.point239* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point239* %2 to i8* + %6 = bitcast %struct.point239* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point239* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo240([2 x i64] %0) #0 { + %2 = alloca %struct.point240, align 4 + %3 = alloca %struct.point240, align 4 + %4 = bitcast %struct.point240* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point240* %2 to i8* + %6 = bitcast %struct.point240* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point240* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo241([2 x i64] %0) #0 { + %2 = alloca %struct.point241, align 4 + %3 = alloca %struct.point241, align 4 + %4 = bitcast %struct.point241* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point241* %2 to i8* + %6 = bitcast %struct.point241* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point241* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo242([2 x i64] %0) #0 { + %2 = alloca %struct.point242, align 4 + %3 = alloca %struct.point242, align 4 + %4 = bitcast %struct.point242* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point242* %2 to i8* + %6 = bitcast %struct.point242* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point242* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo243([2 x i64] %0) #0 { + %2 = alloca %struct.point243, align 4 + %3 = alloca %struct.point243, align 4 + %4 = bitcast %struct.point243* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point243* %2 to i8* + %6 = bitcast %struct.point243* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point243* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo248([2 x i64] %0) #0 { + %2 = alloca %struct.point248, align 4 + %3 = alloca %struct.point248, align 4 + %4 = bitcast %struct.point248* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point248* %2 to i8* + %6 = bitcast %struct.point248* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point248* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo253([2 x i64] %0) #0 { + %2 = alloca %struct.point253, align 4 + %3 = alloca %struct.point253, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point253* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point253* %2 to i8* + %9 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point253* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo254([2 x i64] %0) #0 { + %2 = alloca %struct.point254, align 4 + %3 = alloca %struct.point254, align 4 + %4 = bitcast %struct.point254* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point254* %2 to i8* + %6 = bitcast %struct.point254* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point254* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo255([2 x i64] %0) #0 { + %2 = alloca %struct.point255, align 4 + %3 = alloca %struct.point255, align 4 + %4 = bitcast %struct.point255* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point255* %2 to i8* + %6 = bitcast %struct.point255* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point255* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo256([2 x i64] %0) #0 { + %2 = alloca %struct.point256, align 4 + %3 = alloca %struct.point256, align 4 + %4 = bitcast %struct.point256* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point256* %2 to i8* + %6 = bitcast %struct.point256* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point256* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo259([2 x i64] %0) #0 { + %2 = alloca %struct.point259, align 4 + %3 = alloca %struct.point259, align 4 + %4 = bitcast %struct.point259* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point259* %2 to i8* + %6 = bitcast %struct.point259* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point259* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo260([2 x i64] %0) #0 { + %2 = alloca %struct.point260, align 4 + %3 = alloca %struct.point260, align 4 + %4 = bitcast %struct.point260* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point260* %2 to i8* + %6 = bitcast %struct.point260* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point260* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo261([2 x i64] %0) #0 { + %2 = alloca %struct.point261, align 4 + %3 = alloca %struct.point261, align 4 + %4 = bitcast %struct.point261* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point261* %2 to i8* + %6 = bitcast %struct.point261* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point261* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo264([2 x i64] %0) #0 { + %2 = alloca %struct.point264, align 4 + %3 = alloca %struct.point264, align 4 + %4 = bitcast %struct.point264* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point264* %2 to i8* + %6 = bitcast %struct.point264* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point264* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo269([2 x i64] %0) #0 { + %2 = alloca %struct.point269, align 4 + %3 = alloca %struct.point269, align 4 + %4 = bitcast %struct.point269* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point269* %2 to i8* + %6 = bitcast %struct.point269* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point269* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo274([2 x i64] %0) #0 { + %2 = alloca %struct.point274, align 4 + %3 = alloca %struct.point274, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point274* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point274* %2 to i8* + %9 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point274* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo275([2 x i64] %0) #0 { + %2 = alloca %struct.point275, align 4 + %3 = alloca %struct.point275, align 4 + %4 = bitcast %struct.point275* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point275* %2 to i8* + %6 = bitcast %struct.point275* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point275* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo276([2 x i64] %0) #0 { + %2 = alloca %struct.point276, align 4 + %3 = alloca %struct.point276, align 4 + %4 = bitcast %struct.point276* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point276* %2 to i8* + %6 = bitcast %struct.point276* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point276* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo277([2 x i64] %0) #0 { + %2 = alloca %struct.point277, align 4 + %3 = alloca %struct.point277, align 4 + %4 = bitcast %struct.point277* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point277* %2 to i8* + %6 = bitcast %struct.point277* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point277* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo280([2 x i64] %0) #0 { + %2 = alloca %struct.point280, align 4 + %3 = alloca %struct.point280, align 4 + %4 = bitcast %struct.point280* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point280* %2 to i8* + %6 = bitcast %struct.point280* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point280* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo281([2 x i64] %0) #0 { + %2 = alloca %struct.point281, align 4 + %3 = alloca %struct.point281, align 4 + %4 = bitcast %struct.point281* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point281* %2 to i8* + %6 = bitcast %struct.point281* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point281* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo282([2 x i64] %0) #0 { + %2 = alloca %struct.point282, align 4 + %3 = alloca %struct.point282, align 4 + %4 = bitcast %struct.point282* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point282* %2 to i8* + %6 = bitcast %struct.point282* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point282* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo285([2 x i64] %0) #0 { + %2 = alloca %struct.point285, align 4 + %3 = alloca %struct.point285, align 4 + %4 = bitcast %struct.point285* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point285* %2 to i8* + %6 = bitcast %struct.point285* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point285* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo290([2 x i64] %0) #0 { + %2 = alloca %struct.point290, align 4 + %3 = alloca %struct.point290, align 4 + %4 = bitcast %struct.point290* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point290* %2 to i8* + %6 = bitcast %struct.point290* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point290* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo295(i64 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point295* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point295* %2 to i8* + %9 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point295* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo296(i64 %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo297(i64 %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo298(i64 %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point298* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo299([2 x i64] %0) #0 { + %2 = alloca %struct.point299, align 4 + %3 = alloca %struct.point299, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point299* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point299* %2 to i8* + %9 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point299* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo300([2 x i64] %0) #0 { + %2 = alloca %struct.point300, align 4 + %3 = alloca %struct.point300, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point300* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point300* %2 to i8* + %9 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point300* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo301(i64 %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo302(i64 %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point302* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo303(i64 %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point303* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo304([2 x i64] %0) #0 { + %2 = alloca %struct.point304, align 4 + %3 = alloca %struct.point304, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point304* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point304* %2 to i8* + %9 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point304* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo305([2 x i64] %0) #0 { + %2 = alloca %struct.point305, align 4 + %3 = alloca %struct.point305, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point305* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point305* %2 to i8* + %9 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point305* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo306(i64 %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point306* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo307([2 x i64] %0) #0 { + %2 = alloca %struct.point307, align 4 + %3 = alloca %struct.point307, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point307* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point307* %2 to i8* + %9 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point307* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo308([2 x i64] %0) #0 { + %2 = alloca %struct.point308, align 4 + %3 = alloca %struct.point308, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point308* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point308* %2 to i8* + %9 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point308* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo309([2 x i64] %0) #0 { + %2 = alloca %struct.point309, align 4 + %3 = alloca %struct.point309, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point309* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point309* %2 to i8* + %9 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point309* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo310([2 x i64] %0) #0 { + %2 = alloca %struct.point310, align 4 + %3 = alloca %struct.point310, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point310* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point310* %2 to i8* + %9 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point310* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo311(i64 %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point311* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo312([2 x i64] %0) #0 { + %2 = alloca %struct.point312, align 4 + %3 = alloca %struct.point312, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point312* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point312* %2 to i8* + %9 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point312* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo313([2 x i64] %0) #0 { + %2 = alloca %struct.point313, align 4 + %3 = alloca %struct.point313, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point313* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point313* %2 to i8* + %9 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point313* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo314([2 x i64] %0) #0 { + %2 = alloca %struct.point314, align 4 + %3 = alloca %struct.point314, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point314* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point314* %2 to i8* + %9 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point314* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo315([2 x i64] %0) #0 { + %2 = alloca %struct.point315, align 4 + %3 = alloca %struct.point315, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point315* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point315* %2 to i8* + %9 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point315* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo316(i64 %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo317(i64 %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point317* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo318(i64 %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point318* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo319([2 x i64] %0) #0 { + %2 = alloca %struct.point319, align 2 + %3 = alloca %struct.point319, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point319* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point319* %2 to i8* + %9 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point319* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo320([2 x i64] %0) #0 { + %2 = alloca %struct.point320, align 4 + %3 = alloca %struct.point320, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point320* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point320* %2 to i8* + %9 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point320* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo321([2 x i64] %0) #0 { + %2 = alloca %struct.point321, align 4 + %3 = alloca %struct.point321, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point321* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point321* %2 to i8* + %9 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point321* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo322(i64 %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point322* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo323([2 x i64] %0) #0 { + %2 = alloca %struct.point323, align 2 + %3 = alloca %struct.point323, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point323* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point323* %2 to i8* + %9 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point323* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo324([2 x i64] %0) #0 { + %2 = alloca %struct.point324, align 2 + %3 = alloca %struct.point324, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point324* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point324* %2 to i8* + %9 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point324* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo325([2 x i64] %0) #0 { + %2 = alloca %struct.point325, align 4 + %3 = alloca %struct.point325, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point325* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point325* %2 to i8* + %9 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point325* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo326([2 x i64] %0) #0 { + %2 = alloca %struct.point326, align 4 + %3 = alloca %struct.point326, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point326* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point326* %2 to i8* + %9 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point326* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo327([2 x i64] %0) #0 { + %2 = alloca %struct.point327, align 4 + %3 = alloca %struct.point327, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point327* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point327* %2 to i8* + %9 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point327* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo328([2 x i64] %0) #0 { + %2 = alloca %struct.point328, align 4 + %3 = alloca %struct.point328, align 4 + %4 = bitcast %struct.point328* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point328* %2 to i8* + %6 = bitcast %struct.point328* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point328* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo329([2 x i64] %0) #0 { + %2 = alloca %struct.point329, align 4 + %3 = alloca %struct.point329, align 4 + %4 = bitcast %struct.point329* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point329* %2 to i8* + %6 = bitcast %struct.point329* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point329* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo330([2 x i64] %0) #0 { + %2 = alloca %struct.point330, align 4 + %3 = alloca %struct.point330, align 4 + %4 = bitcast %struct.point330* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point330* %2 to i8* + %6 = bitcast %struct.point330* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point330* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo331([2 x i64] %0) #0 { + %2 = alloca %struct.point331, align 4 + %3 = alloca %struct.point331, align 4 + %4 = bitcast %struct.point331* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point331* %2 to i8* + %6 = bitcast %struct.point331* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point331* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo332([2 x i64] %0) #0 { + %2 = alloca %struct.point332, align 4 + %3 = alloca %struct.point332, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point332* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point332* %2 to i8* + %9 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point332* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo333([2 x i64] %0) #0 { + %2 = alloca %struct.point333, align 4 + %3 = alloca %struct.point333, align 4 + %4 = bitcast %struct.point333* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point333* %2 to i8* + %6 = bitcast %struct.point333* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point333* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo334([2 x i64] %0) #0 { + %2 = alloca %struct.point334, align 4 + %3 = alloca %struct.point334, align 4 + %4 = bitcast %struct.point334* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point334* %2 to i8* + %6 = bitcast %struct.point334* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point334* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo335([2 x i64] %0) #0 { + %2 = alloca %struct.point335, align 4 + %3 = alloca %struct.point335, align 4 + %4 = bitcast %struct.point335* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point335* %2 to i8* + %6 = bitcast %struct.point335* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point335* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo336([2 x i64] %0) #0 { + %2 = alloca %struct.point336, align 4 + %3 = alloca %struct.point336, align 4 + %4 = bitcast %struct.point336* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point336* %2 to i8* + %6 = bitcast %struct.point336* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point336* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo337(i64 %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point337* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo338([2 x i64] %0) #0 { + %2 = alloca %struct.point338, align 4 + %3 = alloca %struct.point338, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point338* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point338* %2 to i8* + %9 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point338* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo339([2 x i64] %0) #0 { + %2 = alloca %struct.point339, align 4 + %3 = alloca %struct.point339, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point339* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point339* %2 to i8* + %9 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point339* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo340([2 x i64] %0) #0 { + %2 = alloca %struct.point340, align 4 + %3 = alloca %struct.point340, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point340* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point340* %2 to i8* + %9 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point340* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo341([2 x i64] %0) #0 { + %2 = alloca %struct.point341, align 4 + %3 = alloca %struct.point341, align 4 + %4 = bitcast %struct.point341* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point341* %2 to i8* + %6 = bitcast %struct.point341* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point341* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo342([2 x i64] %0) #0 { + %2 = alloca %struct.point342, align 4 + %3 = alloca %struct.point342, align 4 + %4 = bitcast %struct.point342* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point342* %2 to i8* + %6 = bitcast %struct.point342* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point342* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo343([2 x i64] %0) #0 { + %2 = alloca %struct.point343, align 4 + %3 = alloca %struct.point343, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point343* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point343* %2 to i8* + %9 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point343* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo344([2 x i64] %0) #0 { + %2 = alloca %struct.point344, align 4 + %3 = alloca %struct.point344, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point344* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point344* %2 to i8* + %9 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point344* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo345([2 x i64] %0) #0 { + %2 = alloca %struct.point345, align 4 + %3 = alloca %struct.point345, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point345* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point345* %2 to i8* + %9 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point345* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo346([2 x i64] %0) #0 { + %2 = alloca %struct.point346, align 4 + %3 = alloca %struct.point346, align 4 + %4 = bitcast %struct.point346* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point346* %2 to i8* + %6 = bitcast %struct.point346* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point346* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo347([2 x i64] %0) #0 { + %2 = alloca %struct.point347, align 4 + %3 = alloca %struct.point347, align 4 + %4 = bitcast %struct.point347* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point347* %2 to i8* + %6 = bitcast %struct.point347* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point347* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo348([2 x i64] %0) #0 { + %2 = alloca %struct.point348, align 4 + %3 = alloca %struct.point348, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point348* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point348* %2 to i8* + %9 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point348* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo349([2 x i64] %0) #0 { + %2 = alloca %struct.point349, align 4 + %3 = alloca %struct.point349, align 4 + %4 = bitcast %struct.point349* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point349* %2 to i8* + %6 = bitcast %struct.point349* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point349* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo350([2 x i64] %0) #0 { + %2 = alloca %struct.point350, align 4 + %3 = alloca %struct.point350, align 4 + %4 = bitcast %struct.point350* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point350* %2 to i8* + %6 = bitcast %struct.point350* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point350* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo351([2 x i64] %0) #0 { + %2 = alloca %struct.point351, align 4 + %3 = alloca %struct.point351, align 4 + %4 = bitcast %struct.point351* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point351* %2 to i8* + %6 = bitcast %struct.point351* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point351* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo352([2 x i64] %0) #0 { + %2 = alloca %struct.point352, align 4 + %3 = alloca %struct.point352, align 4 + %4 = bitcast %struct.point352* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point352* %2 to i8* + %6 = bitcast %struct.point352* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point352* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo353([2 x i64] %0) #0 { + %2 = alloca %struct.point353, align 4 + %3 = alloca %struct.point353, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point353* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point353* %2 to i8* + %9 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point353* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo354([2 x i64] %0) #0 { + %2 = alloca %struct.point354, align 4 + %3 = alloca %struct.point354, align 4 + %4 = bitcast %struct.point354* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point354* %2 to i8* + %6 = bitcast %struct.point354* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point354* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo355([2 x i64] %0) #0 { + %2 = alloca %struct.point355, align 4 + %3 = alloca %struct.point355, align 4 + %4 = bitcast %struct.point355* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point355* %2 to i8* + %6 = bitcast %struct.point355* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point355* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo356([2 x i64] %0) #0 { + %2 = alloca %struct.point356, align 4 + %3 = alloca %struct.point356, align 4 + %4 = bitcast %struct.point356* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point356* %2 to i8* + %6 = bitcast %struct.point356* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point356* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo357([2 x i64] %0) #0 { + %2 = alloca %struct.point357, align 4 + %3 = alloca %struct.point357, align 4 + %4 = bitcast %struct.point357* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point357* %2 to i8* + %6 = bitcast %struct.point357* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point357* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo358(i64 %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point358* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo359([2 x i64] %0) #0 { + %2 = alloca %struct.point359, align 4 + %3 = alloca %struct.point359, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point359* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point359* %2 to i8* + %9 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point359* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo360([2 x i64] %0) #0 { + %2 = alloca %struct.point360, align 4 + %3 = alloca %struct.point360, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point360* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point360* %2 to i8* + %9 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point360* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo361([2 x i64] %0) #0 { + %2 = alloca %struct.point361, align 4 + %3 = alloca %struct.point361, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point361* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point361* %2 to i8* + %9 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point361* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo362([2 x i64] %0) #0 { + %2 = alloca %struct.point362, align 4 + %3 = alloca %struct.point362, align 4 + %4 = bitcast %struct.point362* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point362* %2 to i8* + %6 = bitcast %struct.point362* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point362* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo363([2 x i64] %0) #0 { + %2 = alloca %struct.point363, align 4 + %3 = alloca %struct.point363, align 4 + %4 = bitcast %struct.point363* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point363* %2 to i8* + %6 = bitcast %struct.point363* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point363* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo364([2 x i64] %0) #0 { + %2 = alloca %struct.point364, align 4 + %3 = alloca %struct.point364, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point364* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point364* %2 to i8* + %9 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point364* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo365([2 x i64] %0) #0 { + %2 = alloca %struct.point365, align 4 + %3 = alloca %struct.point365, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point365* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point365* %2 to i8* + %9 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point365* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo366([2 x i64] %0) #0 { + %2 = alloca %struct.point366, align 4 + %3 = alloca %struct.point366, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point366* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point366* %2 to i8* + %9 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point366* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo367([2 x i64] %0) #0 { + %2 = alloca %struct.point367, align 4 + %3 = alloca %struct.point367, align 4 + %4 = bitcast %struct.point367* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point367* %2 to i8* + %6 = bitcast %struct.point367* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point367* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo368([2 x i64] %0) #0 { + %2 = alloca %struct.point368, align 4 + %3 = alloca %struct.point368, align 4 + %4 = bitcast %struct.point368* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point368* %2 to i8* + %6 = bitcast %struct.point368* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point368* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo369([2 x i64] %0) #0 { + %2 = alloca %struct.point369, align 4 + %3 = alloca %struct.point369, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point369* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point369* %2 to i8* + %9 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point369* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo370([2 x i64] %0) #0 { + %2 = alloca %struct.point370, align 4 + %3 = alloca %struct.point370, align 4 + %4 = bitcast %struct.point370* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point370* %2 to i8* + %6 = bitcast %struct.point370* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point370* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo371([2 x i64] %0) #0 { + %2 = alloca %struct.point371, align 4 + %3 = alloca %struct.point371, align 4 + %4 = bitcast %struct.point371* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point371* %2 to i8* + %6 = bitcast %struct.point371* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point371* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo372([2 x i64] %0) #0 { + %2 = alloca %struct.point372, align 4 + %3 = alloca %struct.point372, align 4 + %4 = bitcast %struct.point372* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point372* %2 to i8* + %6 = bitcast %struct.point372* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point372* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo373([2 x i64] %0) #0 { + %2 = alloca %struct.point373, align 4 + %3 = alloca %struct.point373, align 4 + %4 = bitcast %struct.point373* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point373* %2 to i8* + %6 = bitcast %struct.point373* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point373* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo374([2 x i64] %0) #0 { + %2 = alloca %struct.point374, align 4 + %3 = alloca %struct.point374, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point374* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point374* %2 to i8* + %9 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point374* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo375([2 x i64] %0) #0 { + %2 = alloca %struct.point375, align 4 + %3 = alloca %struct.point375, align 4 + %4 = bitcast %struct.point375* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point375* %2 to i8* + %6 = bitcast %struct.point375* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point375* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo376([2 x i64] %0) #0 { + %2 = alloca %struct.point376, align 4 + %3 = alloca %struct.point376, align 4 + %4 = bitcast %struct.point376* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point376* %2 to i8* + %6 = bitcast %struct.point376* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point376* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo377([2 x i64] %0) #0 { + %2 = alloca %struct.point377, align 4 + %3 = alloca %struct.point377, align 4 + %4 = bitcast %struct.point377* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point377* %2 to i8* + %6 = bitcast %struct.point377* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point377* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo378([2 x i64] %0) #0 { + %2 = alloca %struct.point378, align 4 + %3 = alloca %struct.point378, align 4 + %4 = bitcast %struct.point378* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point378* %2 to i8* + %6 = bitcast %struct.point378* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point378* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo379([2 x i64] %0) #0 { + %2 = alloca %struct.point379, align 4 + %3 = alloca %struct.point379, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point379* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point379* %2 to i8* + %9 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point379* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo380([2 x i64] %0) #0 { + %2 = alloca %struct.point380, align 4 + %3 = alloca %struct.point380, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point380* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point380* %2 to i8* + %9 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point380* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo381([2 x i64] %0) #0 { + %2 = alloca %struct.point381, align 4 + %3 = alloca %struct.point381, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point381* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point381* %2 to i8* + %9 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point381* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo382([2 x i64] %0) #0 { + %2 = alloca %struct.point382, align 4 + %3 = alloca %struct.point382, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point382* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point382* %2 to i8* + %9 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point382* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo383([2 x i64] %0) #0 { + %2 = alloca %struct.point383, align 4 + %3 = alloca %struct.point383, align 4 + %4 = bitcast %struct.point383* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point383* %2 to i8* + %6 = bitcast %struct.point383* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point383* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo384([2 x i64] %0) #0 { + %2 = alloca %struct.point384, align 4 + %3 = alloca %struct.point384, align 4 + %4 = bitcast %struct.point384* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point384* %2 to i8* + %6 = bitcast %struct.point384* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point384* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo385([2 x i64] %0) #0 { + %2 = alloca %struct.point385, align 4 + %3 = alloca %struct.point385, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point385* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point385* %2 to i8* + %9 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point385* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo386([2 x i64] %0) #0 { + %2 = alloca %struct.point386, align 4 + %3 = alloca %struct.point386, align 4 + %4 = bitcast %struct.point386* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point386* %2 to i8* + %6 = bitcast %struct.point386* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point386* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo387([2 x i64] %0) #0 { + %2 = alloca %struct.point387, align 4 + %3 = alloca %struct.point387, align 4 + %4 = bitcast %struct.point387* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point387* %2 to i8* + %6 = bitcast %struct.point387* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point387* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo388([2 x i64] %0) #0 { + %2 = alloca %struct.point388, align 4 + %3 = alloca %struct.point388, align 4 + %4 = bitcast %struct.point388* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point388* %2 to i8* + %6 = bitcast %struct.point388* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point388* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo389([2 x i64] %0) #0 { + %2 = alloca %struct.point389, align 4 + %3 = alloca %struct.point389, align 4 + %4 = bitcast %struct.point389* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point389* %2 to i8* + %6 = bitcast %struct.point389* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point389* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo390([2 x i64] %0) #0 { + %2 = alloca %struct.point390, align 4 + %3 = alloca %struct.point390, align 4 + %4 = bitcast %struct.point390* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point390* %2 to i8* + %6 = bitcast %struct.point390* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point390* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo395([2 x i64] %0) #0 { + %2 = alloca %struct.point395, align 4 + %3 = alloca %struct.point395, align 4 + %4 = bitcast %struct.point395* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point395* %2 to i8* + %6 = bitcast %struct.point395* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point395* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo400([2 x i64] %0) #0 { + %2 = alloca %struct.point400, align 4 + %3 = alloca %struct.point400, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point400* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point400* %2 to i8* + %9 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point400* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo401([2 x i64] %0) #0 { + %2 = alloca %struct.point401, align 4 + %3 = alloca %struct.point401, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point401* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point401* %2 to i8* + %9 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point401* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo402([2 x i64] %0) #0 { + %2 = alloca %struct.point402, align 4 + %3 = alloca %struct.point402, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point402* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point402* %2 to i8* + %9 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point402* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo403([2 x i64] %0) #0 { + %2 = alloca %struct.point403, align 4 + %3 = alloca %struct.point403, align 4 + %4 = bitcast %struct.point403* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point403* %2 to i8* + %6 = bitcast %struct.point403* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point403* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo404([2 x i64] %0) #0 { + %2 = alloca %struct.point404, align 4 + %3 = alloca %struct.point404, align 4 + %4 = bitcast %struct.point404* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point404* %2 to i8* + %6 = bitcast %struct.point404* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point404* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo405([2 x i64] %0) #0 { + %2 = alloca %struct.point405, align 4 + %3 = alloca %struct.point405, align 4 + %4 = bitcast %struct.point405* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point405* %2 to i8* + %6 = bitcast %struct.point405* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point405* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo406([2 x i64] %0) #0 { + %2 = alloca %struct.point406, align 4 + %3 = alloca %struct.point406, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point406* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point406* %2 to i8* + %9 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point406* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo407([2 x i64] %0) #0 { + %2 = alloca %struct.point407, align 4 + %3 = alloca %struct.point407, align 4 + %4 = bitcast %struct.point407* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point407* %2 to i8* + %6 = bitcast %struct.point407* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point407* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo408([2 x i64] %0) #0 { + %2 = alloca %struct.point408, align 4 + %3 = alloca %struct.point408, align 4 + %4 = bitcast %struct.point408* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point408* %2 to i8* + %6 = bitcast %struct.point408* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point408* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo409([2 x i64] %0) #0 { + %2 = alloca %struct.point409, align 4 + %3 = alloca %struct.point409, align 4 + %4 = bitcast %struct.point409* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point409* %2 to i8* + %6 = bitcast %struct.point409* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point409* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo410([2 x i64] %0) #0 { + %2 = alloca %struct.point410, align 4 + %3 = alloca %struct.point410, align 4 + %4 = bitcast %struct.point410* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point410* %2 to i8* + %6 = bitcast %struct.point410* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point410* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo411([2 x i64] %0) #0 { + %2 = alloca %struct.point411, align 4 + %3 = alloca %struct.point411, align 4 + %4 = bitcast %struct.point411* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point411* %2 to i8* + %6 = bitcast %struct.point411* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point411* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo416([2 x i64] %0) #0 { + %2 = alloca %struct.point416, align 4 + %3 = alloca %struct.point416, align 4 + %4 = bitcast %struct.point416* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point416* %2 to i8* + %6 = bitcast %struct.point416* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point416* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo421([2 x i64] %0) #0 { + %2 = alloca %struct.point421, align 4 + %3 = alloca %struct.point421, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point421* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point421* %2 to i8* + %9 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point421* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo422([2 x i64] %0) #0 { + %2 = alloca %struct.point422, align 4 + %3 = alloca %struct.point422, align 4 + %4 = bitcast %struct.point422* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point422* %2 to i8* + %6 = bitcast %struct.point422* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point422* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo423([2 x i64] %0) #0 { + %2 = alloca %struct.point423, align 4 + %3 = alloca %struct.point423, align 4 + %4 = bitcast %struct.point423* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point423* %2 to i8* + %6 = bitcast %struct.point423* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point423* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo424([2 x i64] %0) #0 { + %2 = alloca %struct.point424, align 4 + %3 = alloca %struct.point424, align 4 + %4 = bitcast %struct.point424* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point424* %2 to i8* + %6 = bitcast %struct.point424* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point424* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo427([2 x i64] %0) #0 { + %2 = alloca %struct.point427, align 4 + %3 = alloca %struct.point427, align 4 + %4 = bitcast %struct.point427* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point427* %2 to i8* + %6 = bitcast %struct.point427* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point427* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo428([2 x i64] %0) #0 { + %2 = alloca %struct.point428, align 4 + %3 = alloca %struct.point428, align 4 + %4 = bitcast %struct.point428* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point428* %2 to i8* + %6 = bitcast %struct.point428* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point428* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo429([2 x i64] %0) #0 { + %2 = alloca %struct.point429, align 4 + %3 = alloca %struct.point429, align 4 + %4 = bitcast %struct.point429* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point429* %2 to i8* + %6 = bitcast %struct.point429* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point429* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo432([2 x i64] %0) #0 { + %2 = alloca %struct.point432, align 4 + %3 = alloca %struct.point432, align 4 + %4 = bitcast %struct.point432* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point432* %2 to i8* + %6 = bitcast %struct.point432* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point432* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo437([2 x i64] %0) #0 { + %2 = alloca %struct.point437, align 4 + %3 = alloca %struct.point437, align 4 + %4 = bitcast %struct.point437* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point437* %2 to i8* + %6 = bitcast %struct.point437* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point437* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo442([2 x i64] %0) #0 { + %2 = alloca %struct.point442, align 4 + %3 = alloca %struct.point442, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point442* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point442* %2 to i8* + %9 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point442* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo443([2 x i64] %0) #0 { + %2 = alloca %struct.point443, align 4 + %3 = alloca %struct.point443, align 4 + %4 = bitcast %struct.point443* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point443* %2 to i8* + %6 = bitcast %struct.point443* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point443* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo444([2 x i64] %0) #0 { + %2 = alloca %struct.point444, align 4 + %3 = alloca %struct.point444, align 4 + %4 = bitcast %struct.point444* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point444* %2 to i8* + %6 = bitcast %struct.point444* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point444* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo445([2 x i64] %0) #0 { + %2 = alloca %struct.point445, align 4 + %3 = alloca %struct.point445, align 4 + %4 = bitcast %struct.point445* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point445* %2 to i8* + %6 = bitcast %struct.point445* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point445* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo448([2 x i64] %0) #0 { + %2 = alloca %struct.point448, align 4 + %3 = alloca %struct.point448, align 4 + %4 = bitcast %struct.point448* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point448* %2 to i8* + %6 = bitcast %struct.point448* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point448* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo449([2 x i64] %0) #0 { + %2 = alloca %struct.point449, align 4 + %3 = alloca %struct.point449, align 4 + %4 = bitcast %struct.point449* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point449* %2 to i8* + %6 = bitcast %struct.point449* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point449* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo450([2 x i64] %0) #0 { + %2 = alloca %struct.point450, align 4 + %3 = alloca %struct.point450, align 4 + %4 = bitcast %struct.point450* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point450* %2 to i8* + %6 = bitcast %struct.point450* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point450* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo453([2 x i64] %0) #0 { + %2 = alloca %struct.point453, align 4 + %3 = alloca %struct.point453, align 4 + %4 = bitcast %struct.point453* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point453* %2 to i8* + %6 = bitcast %struct.point453* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point453* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo458([2 x i64] %0) #0 { + %2 = alloca %struct.point458, align 4 + %3 = alloca %struct.point458, align 4 + %4 = bitcast %struct.point458* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point458* %2 to i8* + %6 = bitcast %struct.point458* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point458* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo463([2 x i64] %0) #0 { + %2 = alloca %struct.point463, align 4 + %3 = alloca %struct.point463, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point463* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point463* %2 to i8* + %9 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point463* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo464([2 x i64] %0) #0 { + %2 = alloca %struct.point464, align 4 + %3 = alloca %struct.point464, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point464* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point464* %2 to i8* + %9 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point464* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo465([2 x i64] %0) #0 { + %2 = alloca %struct.point465, align 4 + %3 = alloca %struct.point465, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point465* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point465* %2 to i8* + %9 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point465* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo466([2 x i64] %0) #0 { + %2 = alloca %struct.point466, align 4 + %3 = alloca %struct.point466, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point466* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point466* %2 to i8* + %9 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point466* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo467([2 x i64] %0) #0 { + %2 = alloca %struct.point467, align 4 + %3 = alloca %struct.point467, align 4 + %4 = bitcast %struct.point467* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point467* %2 to i8* + %6 = bitcast %struct.point467* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point467* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo468([2 x i64] %0) #0 { + %2 = alloca %struct.point468, align 4 + %3 = alloca %struct.point468, align 4 + %4 = bitcast %struct.point468* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point468* %2 to i8* + %6 = bitcast %struct.point468* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point468* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo469([2 x i64] %0) #0 { + %2 = alloca %struct.point469, align 4 + %3 = alloca %struct.point469, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point469* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point469* %2 to i8* + %9 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point469* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo470([2 x i64] %0) #0 { + %2 = alloca %struct.point470, align 4 + %3 = alloca %struct.point470, align 4 + %4 = bitcast %struct.point470* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point470* %2 to i8* + %6 = bitcast %struct.point470* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point470* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo471([2 x i64] %0) #0 { + %2 = alloca %struct.point471, align 4 + %3 = alloca %struct.point471, align 4 + %4 = bitcast %struct.point471* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point471* %2 to i8* + %6 = bitcast %struct.point471* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point471* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo472([2 x i64] %0) #0 { + %2 = alloca %struct.point472, align 4 + %3 = alloca %struct.point472, align 4 + %4 = bitcast %struct.point472* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point472* %2 to i8* + %6 = bitcast %struct.point472* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point472* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo473([2 x i64] %0) #0 { + %2 = alloca %struct.point473, align 4 + %3 = alloca %struct.point473, align 4 + %4 = bitcast %struct.point473* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point473* %2 to i8* + %6 = bitcast %struct.point473* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point473* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo474([2 x i64] %0) #0 { + %2 = alloca %struct.point474, align 4 + %3 = alloca %struct.point474, align 4 + %4 = bitcast %struct.point474* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point474* %2 to i8* + %6 = bitcast %struct.point474* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point474* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo479([2 x i64] %0) #0 { + %2 = alloca %struct.point479, align 4 + %3 = alloca %struct.point479, align 4 + %4 = bitcast %struct.point479* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point479* %2 to i8* + %6 = bitcast %struct.point479* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point479* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo484([2 x i64] %0) #0 { + %2 = alloca %struct.point484, align 4 + %3 = alloca %struct.point484, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point484* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point484* %2 to i8* + %9 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point484* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo485([2 x i64] %0) #0 { + %2 = alloca %struct.point485, align 4 + %3 = alloca %struct.point485, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point485* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point485* %2 to i8* + %9 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point485* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo486([2 x i64] %0) #0 { + %2 = alloca %struct.point486, align 4 + %3 = alloca %struct.point486, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point486* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point486* %2 to i8* + %9 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point486* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo487([2 x i64] %0) #0 { + %2 = alloca %struct.point487, align 4 + %3 = alloca %struct.point487, align 4 + %4 = bitcast %struct.point487* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point487* %2 to i8* + %6 = bitcast %struct.point487* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point487* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo488([2 x i64] %0) #0 { + %2 = alloca %struct.point488, align 4 + %3 = alloca %struct.point488, align 4 + %4 = bitcast %struct.point488* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point488* %2 to i8* + %6 = bitcast %struct.point488* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point488* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo489([2 x i64] %0) #0 { + %2 = alloca %struct.point489, align 4 + %3 = alloca %struct.point489, align 4 + %4 = bitcast %struct.point489* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point489* %2 to i8* + %6 = bitcast %struct.point489* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point489* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo490([2 x i64] %0) #0 { + %2 = alloca %struct.point490, align 4 + %3 = alloca %struct.point490, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point490* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point490* %2 to i8* + %9 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point490* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo491([2 x i64] %0) #0 { + %2 = alloca %struct.point491, align 4 + %3 = alloca %struct.point491, align 4 + %4 = bitcast %struct.point491* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point491* %2 to i8* + %6 = bitcast %struct.point491* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point491* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo492([2 x i64] %0) #0 { + %2 = alloca %struct.point492, align 4 + %3 = alloca %struct.point492, align 4 + %4 = bitcast %struct.point492* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point492* %2 to i8* + %6 = bitcast %struct.point492* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point492* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo493([2 x i64] %0) #0 { + %2 = alloca %struct.point493, align 4 + %3 = alloca %struct.point493, align 4 + %4 = bitcast %struct.point493* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point493* %2 to i8* + %6 = bitcast %struct.point493* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point493* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo494([2 x i64] %0) #0 { + %2 = alloca %struct.point494, align 4 + %3 = alloca %struct.point494, align 4 + %4 = bitcast %struct.point494* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point494* %2 to i8* + %6 = bitcast %struct.point494* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point494* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo495([2 x i64] %0) #0 { + %2 = alloca %struct.point495, align 4 + %3 = alloca %struct.point495, align 4 + %4 = bitcast %struct.point495* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point495* %2 to i8* + %6 = bitcast %struct.point495* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point495* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo500([2 x i64] %0) #0 { + %2 = alloca %struct.point500, align 4 + %3 = alloca %struct.point500, align 4 + %4 = bitcast %struct.point500* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point500* %2 to i8* + %6 = bitcast %struct.point500* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point500* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo505([2 x i64] %0) #0 { + %2 = alloca %struct.point505, align 4 + %3 = alloca %struct.point505, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point505* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point505* %2 to i8* + %9 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point505* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo506([2 x i64] %0) #0 { + %2 = alloca %struct.point506, align 4 + %3 = alloca %struct.point506, align 4 + %4 = bitcast %struct.point506* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point506* %2 to i8* + %6 = bitcast %struct.point506* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point506* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo507([2 x i64] %0) #0 { + %2 = alloca %struct.point507, align 4 + %3 = alloca %struct.point507, align 4 + %4 = bitcast %struct.point507* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point507* %2 to i8* + %6 = bitcast %struct.point507* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point507* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo508([2 x i64] %0) #0 { + %2 = alloca %struct.point508, align 4 + %3 = alloca %struct.point508, align 4 + %4 = bitcast %struct.point508* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point508* %2 to i8* + %6 = bitcast %struct.point508* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point508* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo511([2 x i64] %0) #0 { + %2 = alloca %struct.point511, align 4 + %3 = alloca %struct.point511, align 4 + %4 = bitcast %struct.point511* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point511* %2 to i8* + %6 = bitcast %struct.point511* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point511* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo512([2 x i64] %0) #0 { + %2 = alloca %struct.point512, align 4 + %3 = alloca %struct.point512, align 4 + %4 = bitcast %struct.point512* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point512* %2 to i8* + %6 = bitcast %struct.point512* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point512* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo513([2 x i64] %0) #0 { + %2 = alloca %struct.point513, align 4 + %3 = alloca %struct.point513, align 4 + %4 = bitcast %struct.point513* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point513* %2 to i8* + %6 = bitcast %struct.point513* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point513* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo516([2 x i64] %0) #0 { + %2 = alloca %struct.point516, align 4 + %3 = alloca %struct.point516, align 4 + %4 = bitcast %struct.point516* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point516* %2 to i8* + %6 = bitcast %struct.point516* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point516* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo521([2 x i64] %0) #0 { + %2 = alloca %struct.point521, align 4 + %3 = alloca %struct.point521, align 4 + %4 = bitcast %struct.point521* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point521* %2 to i8* + %6 = bitcast %struct.point521* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point521* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo526([2 x i64] %0) #0 { + %2 = alloca %struct.point526, align 4 + %3 = alloca %struct.point526, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point526* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point526* %2 to i8* + %9 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point526* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo527([2 x i64] %0) #0 { + %2 = alloca %struct.point527, align 4 + %3 = alloca %struct.point527, align 4 + %4 = bitcast %struct.point527* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point527* %2 to i8* + %6 = bitcast %struct.point527* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point527* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo528([2 x i64] %0) #0 { + %2 = alloca %struct.point528, align 4 + %3 = alloca %struct.point528, align 4 + %4 = bitcast %struct.point528* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point528* %2 to i8* + %6 = bitcast %struct.point528* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point528* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo529([2 x i64] %0) #0 { + %2 = alloca %struct.point529, align 4 + %3 = alloca %struct.point529, align 4 + %4 = bitcast %struct.point529* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point529* %2 to i8* + %6 = bitcast %struct.point529* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point529* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo532([2 x i64] %0) #0 { + %2 = alloca %struct.point532, align 4 + %3 = alloca %struct.point532, align 4 + %4 = bitcast %struct.point532* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point532* %2 to i8* + %6 = bitcast %struct.point532* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point532* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo533([2 x i64] %0) #0 { + %2 = alloca %struct.point533, align 4 + %3 = alloca %struct.point533, align 4 + %4 = bitcast %struct.point533* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point533* %2 to i8* + %6 = bitcast %struct.point533* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point533* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo534([2 x i64] %0) #0 { + %2 = alloca %struct.point534, align 4 + %3 = alloca %struct.point534, align 4 + %4 = bitcast %struct.point534* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point534* %2 to i8* + %6 = bitcast %struct.point534* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point534* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo537([2 x i64] %0) #0 { + %2 = alloca %struct.point537, align 4 + %3 = alloca %struct.point537, align 4 + %4 = bitcast %struct.point537* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point537* %2 to i8* + %6 = bitcast %struct.point537* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point537* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo542([2 x i64] %0) #0 { + %2 = alloca %struct.point542, align 4 + %3 = alloca %struct.point542, align 4 + %4 = bitcast %struct.point542* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point542* %2 to i8* + %6 = bitcast %struct.point542* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point542* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo547(i64 %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point547* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo548(i64 %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point548* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo549(i64 %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point549* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo550([2 x i64] %0) #0 { + %2 = alloca %struct.point550, align 4 + %3 = alloca %struct.point550, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point550* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point550* %2 to i8* + %9 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point550* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo551([2 x i64] %0) #0 { + %2 = alloca %struct.point551, align 4 + %3 = alloca %struct.point551, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point551* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point551* %2 to i8* + %9 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point551* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo552([2 x i64] %0) #0 { + %2 = alloca %struct.point552, align 4 + %3 = alloca %struct.point552, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point552* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point552* %2 to i8* + %9 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point552* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo553(i64 %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point553* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo554([2 x i64] %0) #0 { + %2 = alloca %struct.point554, align 4 + %3 = alloca %struct.point554, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point554* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point554* %2 to i8* + %9 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point554* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo555([2 x i64] %0) #0 { + %2 = alloca %struct.point555, align 4 + %3 = alloca %struct.point555, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point555* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point555* %2 to i8* + %9 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point555* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo556([2 x i64] %0) #0 { + %2 = alloca %struct.point556, align 4 + %3 = alloca %struct.point556, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point556* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point556* %2 to i8* + %9 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point556* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo557([2 x i64] %0) #0 { + %2 = alloca %struct.point557, align 4 + %3 = alloca %struct.point557, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point557* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point557* %2 to i8* + %9 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point557* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo558([2 x i64] %0) #0 { + %2 = alloca %struct.point558, align 4 + %3 = alloca %struct.point558, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point558* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point558* %2 to i8* + %9 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point558* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo559([2 x i64] %0) #0 { + %2 = alloca %struct.point559, align 4 + %3 = alloca %struct.point559, align 4 + %4 = bitcast %struct.point559* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point559* %2 to i8* + %6 = bitcast %struct.point559* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point559* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo560([2 x i64] %0) #0 { + %2 = alloca %struct.point560, align 4 + %3 = alloca %struct.point560, align 4 + %4 = bitcast %struct.point560* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point560* %2 to i8* + %6 = bitcast %struct.point560* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point560* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo561([2 x i64] %0) #0 { + %2 = alloca %struct.point561, align 4 + %3 = alloca %struct.point561, align 4 + %4 = bitcast %struct.point561* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point561* %2 to i8* + %6 = bitcast %struct.point561* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point561* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo562([2 x i64] %0) #0 { + %2 = alloca %struct.point562, align 4 + %3 = alloca %struct.point562, align 4 + %4 = bitcast %struct.point562* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point562* %2 to i8* + %6 = bitcast %struct.point562* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point562* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo563([2 x i64] %0) #0 { + %2 = alloca %struct.point563, align 4 + %3 = alloca %struct.point563, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point563* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point563* %2 to i8* + %9 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point563* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo564([2 x i64] %0) #0 { + %2 = alloca %struct.point564, align 4 + %3 = alloca %struct.point564, align 4 + %4 = bitcast %struct.point564* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point564* %2 to i8* + %6 = bitcast %struct.point564* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point564* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo565([2 x i64] %0) #0 { + %2 = alloca %struct.point565, align 4 + %3 = alloca %struct.point565, align 4 + %4 = bitcast %struct.point565* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point565* %2 to i8* + %6 = bitcast %struct.point565* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point565* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo566([2 x i64] %0) #0 { + %2 = alloca %struct.point566, align 4 + %3 = alloca %struct.point566, align 4 + %4 = bitcast %struct.point566* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point566* %2 to i8* + %6 = bitcast %struct.point566* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point566* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo567([2 x i64] %0) #0 { + %2 = alloca %struct.point567, align 4 + %3 = alloca %struct.point567, align 4 + %4 = bitcast %struct.point567* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point567* %2 to i8* + %6 = bitcast %struct.point567* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point567* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo568(i64 %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point568* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo569([2 x i64] %0) #0 { + %2 = alloca %struct.point569, align 4 + %3 = alloca %struct.point569, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point569* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point569* %2 to i8* + %9 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point569* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo570([2 x i64] %0) #0 { + %2 = alloca %struct.point570, align 4 + %3 = alloca %struct.point570, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point570* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point570* %2 to i8* + %9 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point570* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo571([2 x i64] %0) #0 { + %2 = alloca %struct.point571, align 4 + %3 = alloca %struct.point571, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point571* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point571* %2 to i8* + %9 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point571* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo572([2 x i64] %0) #0 { + %2 = alloca %struct.point572, align 4 + %3 = alloca %struct.point572, align 4 + %4 = bitcast %struct.point572* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point572* %2 to i8* + %6 = bitcast %struct.point572* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point572* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo573([2 x i64] %0) #0 { + %2 = alloca %struct.point573, align 4 + %3 = alloca %struct.point573, align 4 + %4 = bitcast %struct.point573* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point573* %2 to i8* + %6 = bitcast %struct.point573* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point573* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo574([2 x i64] %0) #0 { + %2 = alloca %struct.point574, align 4 + %3 = alloca %struct.point574, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point574* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point574* %2 to i8* + %9 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point574* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo575([2 x i64] %0) #0 { + %2 = alloca %struct.point575, align 4 + %3 = alloca %struct.point575, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point575* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point575* %2 to i8* + %9 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point575* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo576([2 x i64] %0) #0 { + %2 = alloca %struct.point576, align 4 + %3 = alloca %struct.point576, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point576* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point576* %2 to i8* + %9 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point576* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo577([2 x i64] %0) #0 { + %2 = alloca %struct.point577, align 4 + %3 = alloca %struct.point577, align 4 + %4 = bitcast %struct.point577* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point577* %2 to i8* + %6 = bitcast %struct.point577* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point577* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo578([2 x i64] %0) #0 { + %2 = alloca %struct.point578, align 4 + %3 = alloca %struct.point578, align 4 + %4 = bitcast %struct.point578* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point578* %2 to i8* + %6 = bitcast %struct.point578* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point578* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo579([2 x i64] %0) #0 { + %2 = alloca %struct.point579, align 4 + %3 = alloca %struct.point579, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point579* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point579* %2 to i8* + %9 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point579* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo580([2 x i64] %0) #0 { + %2 = alloca %struct.point580, align 4 + %3 = alloca %struct.point580, align 4 + %4 = bitcast %struct.point580* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point580* %2 to i8* + %6 = bitcast %struct.point580* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point580* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo581([2 x i64] %0) #0 { + %2 = alloca %struct.point581, align 4 + %3 = alloca %struct.point581, align 4 + %4 = bitcast %struct.point581* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point581* %2 to i8* + %6 = bitcast %struct.point581* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point581* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo582([2 x i64] %0) #0 { + %2 = alloca %struct.point582, align 4 + %3 = alloca %struct.point582, align 4 + %4 = bitcast %struct.point582* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point582* %2 to i8* + %6 = bitcast %struct.point582* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point582* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo583([2 x i64] %0) #0 { + %2 = alloca %struct.point583, align 4 + %3 = alloca %struct.point583, align 4 + %4 = bitcast %struct.point583* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point583* %2 to i8* + %6 = bitcast %struct.point583* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point583* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo584([2 x i64] %0) #0 { + %2 = alloca %struct.point584, align 4 + %3 = alloca %struct.point584, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point584* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point584* %2 to i8* + %9 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point584* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo585([2 x i64] %0) #0 { + %2 = alloca %struct.point585, align 4 + %3 = alloca %struct.point585, align 4 + %4 = bitcast %struct.point585* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point585* %2 to i8* + %6 = bitcast %struct.point585* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point585* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo586([2 x i64] %0) #0 { + %2 = alloca %struct.point586, align 4 + %3 = alloca %struct.point586, align 4 + %4 = bitcast %struct.point586* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point586* %2 to i8* + %6 = bitcast %struct.point586* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point586* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo587([2 x i64] %0) #0 { + %2 = alloca %struct.point587, align 4 + %3 = alloca %struct.point587, align 4 + %4 = bitcast %struct.point587* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point587* %2 to i8* + %6 = bitcast %struct.point587* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point587* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo588([2 x i64] %0) #0 { + %2 = alloca %struct.point588, align 4 + %3 = alloca %struct.point588, align 4 + %4 = bitcast %struct.point588* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point588* %2 to i8* + %6 = bitcast %struct.point588* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point588* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo589([2 x i64] %0) #0 { + %2 = alloca %struct.point589, align 4 + %3 = alloca %struct.point589, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point589* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point589* %2 to i8* + %9 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point589* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo590([2 x i64] %0) #0 { + %2 = alloca %struct.point590, align 4 + %3 = alloca %struct.point590, align 4 + %4 = bitcast %struct.point590* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point590* %2 to i8* + %6 = bitcast %struct.point590* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point590* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo591([2 x i64] %0) #0 { + %2 = alloca %struct.point591, align 4 + %3 = alloca %struct.point591, align 4 + %4 = bitcast %struct.point591* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point591* %2 to i8* + %6 = bitcast %struct.point591* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point591* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo592([2 x i64] %0) #0 { + %2 = alloca %struct.point592, align 4 + %3 = alloca %struct.point592, align 4 + %4 = bitcast %struct.point592* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point592* %2 to i8* + %6 = bitcast %struct.point592* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point592* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo595([2 x i64] %0) #0 { + %2 = alloca %struct.point595, align 4 + %3 = alloca %struct.point595, align 4 + %4 = bitcast %struct.point595* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point595* %2 to i8* + %6 = bitcast %struct.point595* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point595* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo596([2 x i64] %0) #0 { + %2 = alloca %struct.point596, align 4 + %3 = alloca %struct.point596, align 4 + %4 = bitcast %struct.point596* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point596* %2 to i8* + %6 = bitcast %struct.point596* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point596* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo597([2 x i64] %0) #0 { + %2 = alloca %struct.point597, align 4 + %3 = alloca %struct.point597, align 4 + %4 = bitcast %struct.point597* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point597* %2 to i8* + %6 = bitcast %struct.point597* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point597* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo600([2 x i64] %0) #0 { + %2 = alloca %struct.point600, align 4 + %3 = alloca %struct.point600, align 4 + %4 = bitcast %struct.point600* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point600* %2 to i8* + %6 = bitcast %struct.point600* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point600* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo605([2 x i64] %0) #0 { + %2 = alloca %struct.point605, align 4 + %3 = alloca %struct.point605, align 4 + %4 = bitcast %struct.point605* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point605* %2 to i8* + %6 = bitcast %struct.point605* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point605* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo610([2 x i64] %0) #0 { + %2 = alloca %struct.point610, align 4 + %3 = alloca %struct.point610, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point610* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point610* %2 to i8* + %9 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point610* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo611([2 x i64] %0) #0 { + %2 = alloca %struct.point611, align 4 + %3 = alloca %struct.point611, align 4 + %4 = bitcast %struct.point611* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point611* %2 to i8* + %6 = bitcast %struct.point611* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point611* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo612([2 x i64] %0) #0 { + %2 = alloca %struct.point612, align 4 + %3 = alloca %struct.point612, align 4 + %4 = bitcast %struct.point612* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point612* %2 to i8* + %6 = bitcast %struct.point612* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point612* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo613([2 x i64] %0) #0 { + %2 = alloca %struct.point613, align 4 + %3 = alloca %struct.point613, align 4 + %4 = bitcast %struct.point613* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point613* %2 to i8* + %6 = bitcast %struct.point613* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point613* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo616([2 x i64] %0) #0 { + %2 = alloca %struct.point616, align 4 + %3 = alloca %struct.point616, align 4 + %4 = bitcast %struct.point616* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point616* %2 to i8* + %6 = bitcast %struct.point616* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point616* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo617([2 x i64] %0) #0 { + %2 = alloca %struct.point617, align 4 + %3 = alloca %struct.point617, align 4 + %4 = bitcast %struct.point617* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point617* %2 to i8* + %6 = bitcast %struct.point617* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point617* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo618([2 x i64] %0) #0 { + %2 = alloca %struct.point618, align 4 + %3 = alloca %struct.point618, align 4 + %4 = bitcast %struct.point618* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point618* %2 to i8* + %6 = bitcast %struct.point618* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point618* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo621([2 x i64] %0) #0 { + %2 = alloca %struct.point621, align 4 + %3 = alloca %struct.point621, align 4 + %4 = bitcast %struct.point621* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point621* %2 to i8* + %6 = bitcast %struct.point621* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point621* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo626([2 x i64] %0) #0 { + %2 = alloca %struct.point626, align 4 + %3 = alloca %struct.point626, align 4 + %4 = bitcast %struct.point626* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point626* %2 to i8* + %6 = bitcast %struct.point626* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point626* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo631(i64 %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point631* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo632(i64 %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point632* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo633([2 x i64] %0) #0 { + %2 = alloca %struct.point633, align 4 + %3 = alloca %struct.point633, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point633* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point633* %2 to i8* + %9 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point633* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo634([2 x i64] %0) #0 { + %2 = alloca %struct.point634, align 4 + %3 = alloca %struct.point634, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point634* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point634* %2 to i8* + %9 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point634* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo635([2 x i64] %0) #0 { + %2 = alloca %struct.point635, align 4 + %3 = alloca %struct.point635, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point635* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point635* %2 to i8* + %9 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point635* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo636([2 x i64] %0) #0 { + %2 = alloca %struct.point636, align 4 + %3 = alloca %struct.point636, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point636* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point636* %2 to i8* + %9 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point636* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo637([2 x i64] %0) #0 { + %2 = alloca %struct.point637, align 4 + %3 = alloca %struct.point637, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point637* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point637* %2 to i8* + %9 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point637* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo638([2 x i64] %0) #0 { + %2 = alloca %struct.point638, align 4 + %3 = alloca %struct.point638, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point638* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point638* %2 to i8* + %9 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point638* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo639([2 x i64] %0) #0 { + %2 = alloca %struct.point639, align 4 + %3 = alloca %struct.point639, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point639* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point639* %2 to i8* + %9 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point639* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo640([2 x i64] %0) #0 { + %2 = alloca %struct.point640, align 4 + %3 = alloca %struct.point640, align 4 + %4 = bitcast %struct.point640* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point640* %2 to i8* + %6 = bitcast %struct.point640* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point640* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo641([2 x i64] %0) #0 { + %2 = alloca %struct.point641, align 4 + %3 = alloca %struct.point641, align 4 + %4 = bitcast %struct.point641* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point641* %2 to i8* + %6 = bitcast %struct.point641* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point641* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo642([2 x i64] %0) #0 { + %2 = alloca %struct.point642, align 4 + %3 = alloca %struct.point642, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point642* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point642* %2 to i8* + %9 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point642* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo643([2 x i64] %0) #0 { + %2 = alloca %struct.point643, align 4 + %3 = alloca %struct.point643, align 4 + %4 = bitcast %struct.point643* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point643* %2 to i8* + %6 = bitcast %struct.point643* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point643* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo644([2 x i64] %0) #0 { + %2 = alloca %struct.point644, align 4 + %3 = alloca %struct.point644, align 4 + %4 = bitcast %struct.point644* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point644* %2 to i8* + %6 = bitcast %struct.point644* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point644* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo645([2 x i64] %0) #0 { + %2 = alloca %struct.point645, align 4 + %3 = alloca %struct.point645, align 4 + %4 = bitcast %struct.point645* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point645* %2 to i8* + %6 = bitcast %struct.point645* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point645* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo646([2 x i64] %0) #0 { + %2 = alloca %struct.point646, align 4 + %3 = alloca %struct.point646, align 4 + %4 = bitcast %struct.point646* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point646* %2 to i8* + %6 = bitcast %struct.point646* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point646* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo647([2 x i64] %0) #0 { + %2 = alloca %struct.point647, align 4 + %3 = alloca %struct.point647, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point647* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point647* %2 to i8* + %9 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point647* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo648([2 x i64] %0) #0 { + %2 = alloca %struct.point648, align 4 + %3 = alloca %struct.point648, align 4 + %4 = bitcast %struct.point648* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point648* %2 to i8* + %6 = bitcast %struct.point648* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point648* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo649([2 x i64] %0) #0 { + %2 = alloca %struct.point649, align 4 + %3 = alloca %struct.point649, align 4 + %4 = bitcast %struct.point649* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point649* %2 to i8* + %6 = bitcast %struct.point649* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point649* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo650([2 x i64] %0) #0 { + %2 = alloca %struct.point650, align 4 + %3 = alloca %struct.point650, align 4 + %4 = bitcast %struct.point650* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point650* %2 to i8* + %6 = bitcast %struct.point650* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point650* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo651([2 x i64] %0) #0 { + %2 = alloca %struct.point651, align 4 + %3 = alloca %struct.point651, align 4 + %4 = bitcast %struct.point651* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point651* %2 to i8* + %6 = bitcast %struct.point651* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point651* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo652(i64 %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point652* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo653([2 x i64] %0) #0 { + %2 = alloca %struct.point653, align 4 + %3 = alloca %struct.point653, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point653* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point653* %2 to i8* + %9 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point653* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo654([2 x i64] %0) #0 { + %2 = alloca %struct.point654, align 4 + %3 = alloca %struct.point654, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point654* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point654* %2 to i8* + %9 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point654* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo655([2 x i64] %0) #0 { + %2 = alloca %struct.point655, align 4 + %3 = alloca %struct.point655, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point655* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point655* %2 to i8* + %9 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point655* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo656([2 x i64] %0) #0 { + %2 = alloca %struct.point656, align 4 + %3 = alloca %struct.point656, align 4 + %4 = bitcast %struct.point656* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point656* %2 to i8* + %6 = bitcast %struct.point656* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point656* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo657([2 x i64] %0) #0 { + %2 = alloca %struct.point657, align 4 + %3 = alloca %struct.point657, align 4 + %4 = bitcast %struct.point657* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point657* %2 to i8* + %6 = bitcast %struct.point657* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point657* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo658([2 x i64] %0) #0 { + %2 = alloca %struct.point658, align 4 + %3 = alloca %struct.point658, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point658* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point658* %2 to i8* + %9 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point658* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo659([2 x i64] %0) #0 { + %2 = alloca %struct.point659, align 4 + %3 = alloca %struct.point659, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point659* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point659* %2 to i8* + %9 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point659* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo660([2 x i64] %0) #0 { + %2 = alloca %struct.point660, align 4 + %3 = alloca %struct.point660, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point660* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point660* %2 to i8* + %9 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point660* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo661([2 x i64] %0) #0 { + %2 = alloca %struct.point661, align 4 + %3 = alloca %struct.point661, align 4 + %4 = bitcast %struct.point661* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point661* %2 to i8* + %6 = bitcast %struct.point661* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point661* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo662([2 x i64] %0) #0 { + %2 = alloca %struct.point662, align 4 + %3 = alloca %struct.point662, align 4 + %4 = bitcast %struct.point662* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point662* %2 to i8* + %6 = bitcast %struct.point662* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point662* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo663([2 x i64] %0) #0 { + %2 = alloca %struct.point663, align 4 + %3 = alloca %struct.point663, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point663* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point663* %2 to i8* + %9 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point663* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo664([2 x i64] %0) #0 { + %2 = alloca %struct.point664, align 4 + %3 = alloca %struct.point664, align 4 + %4 = bitcast %struct.point664* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point664* %2 to i8* + %6 = bitcast %struct.point664* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point664* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo665([2 x i64] %0) #0 { + %2 = alloca %struct.point665, align 4 + %3 = alloca %struct.point665, align 4 + %4 = bitcast %struct.point665* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point665* %2 to i8* + %6 = bitcast %struct.point665* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point665* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo666([2 x i64] %0) #0 { + %2 = alloca %struct.point666, align 4 + %3 = alloca %struct.point666, align 4 + %4 = bitcast %struct.point666* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point666* %2 to i8* + %6 = bitcast %struct.point666* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point666* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo667([2 x i64] %0) #0 { + %2 = alloca %struct.point667, align 4 + %3 = alloca %struct.point667, align 4 + %4 = bitcast %struct.point667* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point667* %2 to i8* + %6 = bitcast %struct.point667* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point667* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo668([2 x i64] %0) #0 { + %2 = alloca %struct.point668, align 4 + %3 = alloca %struct.point668, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point668* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point668* %2 to i8* + %9 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point668* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo669([2 x i64] %0) #0 { + %2 = alloca %struct.point669, align 4 + %3 = alloca %struct.point669, align 4 + %4 = bitcast %struct.point669* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point669* %2 to i8* + %6 = bitcast %struct.point669* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point669* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo670([2 x i64] %0) #0 { + %2 = alloca %struct.point670, align 4 + %3 = alloca %struct.point670, align 4 + %4 = bitcast %struct.point670* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point670* %2 to i8* + %6 = bitcast %struct.point670* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point670* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo671([2 x i64] %0) #0 { + %2 = alloca %struct.point671, align 4 + %3 = alloca %struct.point671, align 4 + %4 = bitcast %struct.point671* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point671* %2 to i8* + %6 = bitcast %struct.point671* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point671* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo672([2 x i64] %0) #0 { + %2 = alloca %struct.point672, align 4 + %3 = alloca %struct.point672, align 4 + %4 = bitcast %struct.point672* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point672* %2 to i8* + %6 = bitcast %struct.point672* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point672* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo673([2 x i64] %0) #0 { + %2 = alloca %struct.point673, align 4 + %3 = alloca %struct.point673, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point673* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point673* %2 to i8* + %9 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point673* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo674([2 x i64] %0) #0 { + %2 = alloca %struct.point674, align 4 + %3 = alloca %struct.point674, align 4 + %4 = bitcast %struct.point674* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point674* %2 to i8* + %6 = bitcast %struct.point674* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point674* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo675([2 x i64] %0) #0 { + %2 = alloca %struct.point675, align 4 + %3 = alloca %struct.point675, align 4 + %4 = bitcast %struct.point675* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point675* %2 to i8* + %6 = bitcast %struct.point675* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point675* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo676([2 x i64] %0) #0 { + %2 = alloca %struct.point676, align 4 + %3 = alloca %struct.point676, align 4 + %4 = bitcast %struct.point676* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point676* %2 to i8* + %6 = bitcast %struct.point676* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point676* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo679([2 x i64] %0) #0 { + %2 = alloca %struct.point679, align 4 + %3 = alloca %struct.point679, align 4 + %4 = bitcast %struct.point679* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point679* %2 to i8* + %6 = bitcast %struct.point679* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point679* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo680([2 x i64] %0) #0 { + %2 = alloca %struct.point680, align 4 + %3 = alloca %struct.point680, align 4 + %4 = bitcast %struct.point680* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point680* %2 to i8* + %6 = bitcast %struct.point680* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point680* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo681([2 x i64] %0) #0 { + %2 = alloca %struct.point681, align 4 + %3 = alloca %struct.point681, align 4 + %4 = bitcast %struct.point681* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point681* %2 to i8* + %6 = bitcast %struct.point681* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point681* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo684([2 x i64] %0) #0 { + %2 = alloca %struct.point684, align 4 + %3 = alloca %struct.point684, align 4 + %4 = bitcast %struct.point684* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point684* %2 to i8* + %6 = bitcast %struct.point684* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point684* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo689([2 x i64] %0) #0 { + %2 = alloca %struct.point689, align 4 + %3 = alloca %struct.point689, align 4 + %4 = bitcast %struct.point689* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point689* %2 to i8* + %6 = bitcast %struct.point689* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point689* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo694([2 x i64] %0) #0 { + %2 = alloca %struct.point694, align 4 + %3 = alloca %struct.point694, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point694* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point694* %2 to i8* + %9 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point694* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo695([2 x i64] %0) #0 { + %2 = alloca %struct.point695, align 4 + %3 = alloca %struct.point695, align 4 + %4 = bitcast %struct.point695* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point695* %2 to i8* + %6 = bitcast %struct.point695* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point695* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo696([2 x i64] %0) #0 { + %2 = alloca %struct.point696, align 4 + %3 = alloca %struct.point696, align 4 + %4 = bitcast %struct.point696* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point696* %2 to i8* + %6 = bitcast %struct.point696* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point696* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo697([2 x i64] %0) #0 { + %2 = alloca %struct.point697, align 4 + %3 = alloca %struct.point697, align 4 + %4 = bitcast %struct.point697* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point697* %2 to i8* + %6 = bitcast %struct.point697* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point697* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo700([2 x i64] %0) #0 { + %2 = alloca %struct.point700, align 4 + %3 = alloca %struct.point700, align 4 + %4 = bitcast %struct.point700* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point700* %2 to i8* + %6 = bitcast %struct.point700* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point700* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo701([2 x i64] %0) #0 { + %2 = alloca %struct.point701, align 4 + %3 = alloca %struct.point701, align 4 + %4 = bitcast %struct.point701* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point701* %2 to i8* + %6 = bitcast %struct.point701* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point701* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo702([2 x i64] %0) #0 { + %2 = alloca %struct.point702, align 4 + %3 = alloca %struct.point702, align 4 + %4 = bitcast %struct.point702* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point702* %2 to i8* + %6 = bitcast %struct.point702* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point702* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo705([2 x i64] %0) #0 { + %2 = alloca %struct.point705, align 4 + %3 = alloca %struct.point705, align 4 + %4 = bitcast %struct.point705* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point705* %2 to i8* + %6 = bitcast %struct.point705* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point705* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo710([2 x i64] %0) #0 { + %2 = alloca %struct.point710, align 4 + %3 = alloca %struct.point710, align 4 + %4 = bitcast %struct.point710* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point710* %2 to i8* + %6 = bitcast %struct.point710* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point710* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo715([2 x i64] %0) #0 { + %2 = alloca %struct.point715, align 4 + %3 = alloca %struct.point715, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point715* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point715* %2 to i8* + %9 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point715* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo716([2 x i64] %0) #0 { + %2 = alloca %struct.point716, align 4 + %3 = alloca %struct.point716, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point716* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point716* %2 to i8* + %9 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point716* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo717([2 x i64] %0) #0 { + %2 = alloca %struct.point717, align 4 + %3 = alloca %struct.point717, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point717* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point717* %2 to i8* + %9 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point717* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo718([2 x i64] %0) #0 { + %2 = alloca %struct.point718, align 4 + %3 = alloca %struct.point718, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point718* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point718* %2 to i8* + %9 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point718* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo719([2 x i64] %0) #0 { + %2 = alloca %struct.point719, align 4 + %3 = alloca %struct.point719, align 4 + %4 = bitcast %struct.point719* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point719* %2 to i8* + %6 = bitcast %struct.point719* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point719* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo720([2 x i64] %0) #0 { + %2 = alloca %struct.point720, align 4 + %3 = alloca %struct.point720, align 4 + %4 = bitcast %struct.point720* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point720* %2 to i8* + %6 = bitcast %struct.point720* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point720* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo721([2 x i64] %0) #0 { + %2 = alloca %struct.point721, align 4 + %3 = alloca %struct.point721, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point721* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point721* %2 to i8* + %9 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point721* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo722([2 x i64] %0) #0 { + %2 = alloca %struct.point722, align 4 + %3 = alloca %struct.point722, align 4 + %4 = bitcast %struct.point722* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point722* %2 to i8* + %6 = bitcast %struct.point722* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point722* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo723([2 x i64] %0) #0 { + %2 = alloca %struct.point723, align 4 + %3 = alloca %struct.point723, align 4 + %4 = bitcast %struct.point723* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point723* %2 to i8* + %6 = bitcast %struct.point723* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point723* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo724([2 x i64] %0) #0 { + %2 = alloca %struct.point724, align 4 + %3 = alloca %struct.point724, align 4 + %4 = bitcast %struct.point724* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point724* %2 to i8* + %6 = bitcast %struct.point724* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point724* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo725([2 x i64] %0) #0 { + %2 = alloca %struct.point725, align 4 + %3 = alloca %struct.point725, align 4 + %4 = bitcast %struct.point725* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point725* %2 to i8* + %6 = bitcast %struct.point725* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point725* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo726([2 x i64] %0) #0 { + %2 = alloca %struct.point726, align 4 + %3 = alloca %struct.point726, align 4 + %4 = bitcast %struct.point726* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point726* %2 to i8* + %6 = bitcast %struct.point726* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point726* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo731([2 x i64] %0) #0 { + %2 = alloca %struct.point731, align 4 + %3 = alloca %struct.point731, align 4 + %4 = bitcast %struct.point731* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point731* %2 to i8* + %6 = bitcast %struct.point731* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point731* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo736([2 x i64] %0) #0 { + %2 = alloca %struct.point736, align 4 + %3 = alloca %struct.point736, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point736* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point736* %2 to i8* + %9 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point736* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo737([2 x i64] %0) #0 { + %2 = alloca %struct.point737, align 4 + %3 = alloca %struct.point737, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point737* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point737* %2 to i8* + %9 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point737* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo738([2 x i64] %0) #0 { + %2 = alloca %struct.point738, align 4 + %3 = alloca %struct.point738, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point738* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point738* %2 to i8* + %9 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point738* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo739([2 x i64] %0) #0 { + %2 = alloca %struct.point739, align 4 + %3 = alloca %struct.point739, align 4 + %4 = bitcast %struct.point739* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point739* %2 to i8* + %6 = bitcast %struct.point739* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point739* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo740([2 x i64] %0) #0 { + %2 = alloca %struct.point740, align 4 + %3 = alloca %struct.point740, align 4 + %4 = bitcast %struct.point740* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point740* %2 to i8* + %6 = bitcast %struct.point740* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point740* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo741([2 x i64] %0) #0 { + %2 = alloca %struct.point741, align 4 + %3 = alloca %struct.point741, align 4 + %4 = bitcast %struct.point741* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point741* %2 to i8* + %6 = bitcast %struct.point741* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point741* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo742([2 x i64] %0) #0 { + %2 = alloca %struct.point742, align 4 + %3 = alloca %struct.point742, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point742* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point742* %2 to i8* + %9 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point742* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo743([2 x i64] %0) #0 { + %2 = alloca %struct.point743, align 4 + %3 = alloca %struct.point743, align 4 + %4 = bitcast %struct.point743* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point743* %2 to i8* + %6 = bitcast %struct.point743* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point743* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo744([2 x i64] %0) #0 { + %2 = alloca %struct.point744, align 4 + %3 = alloca %struct.point744, align 4 + %4 = bitcast %struct.point744* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point744* %2 to i8* + %6 = bitcast %struct.point744* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point744* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo745([2 x i64] %0) #0 { + %2 = alloca %struct.point745, align 4 + %3 = alloca %struct.point745, align 4 + %4 = bitcast %struct.point745* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point745* %2 to i8* + %6 = bitcast %struct.point745* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point745* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo746([2 x i64] %0) #0 { + %2 = alloca %struct.point746, align 4 + %3 = alloca %struct.point746, align 4 + %4 = bitcast %struct.point746* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point746* %2 to i8* + %6 = bitcast %struct.point746* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point746* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo747([2 x i64] %0) #0 { + %2 = alloca %struct.point747, align 4 + %3 = alloca %struct.point747, align 4 + %4 = bitcast %struct.point747* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point747* %2 to i8* + %6 = bitcast %struct.point747* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point747* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo752([2 x i64] %0) #0 { + %2 = alloca %struct.point752, align 4 + %3 = alloca %struct.point752, align 4 + %4 = bitcast %struct.point752* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point752* %2 to i8* + %6 = bitcast %struct.point752* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point752* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo757([2 x i64] %0) #0 { + %2 = alloca %struct.point757, align 4 + %3 = alloca %struct.point757, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point757* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point757* %2 to i8* + %9 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point757* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo758([2 x i64] %0) #0 { + %2 = alloca %struct.point758, align 4 + %3 = alloca %struct.point758, align 4 + %4 = bitcast %struct.point758* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point758* %2 to i8* + %6 = bitcast %struct.point758* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point758* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo759([2 x i64] %0) #0 { + %2 = alloca %struct.point759, align 4 + %3 = alloca %struct.point759, align 4 + %4 = bitcast %struct.point759* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point759* %2 to i8* + %6 = bitcast %struct.point759* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point759* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo760([2 x i64] %0) #0 { + %2 = alloca %struct.point760, align 4 + %3 = alloca %struct.point760, align 4 + %4 = bitcast %struct.point760* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point760* %2 to i8* + %6 = bitcast %struct.point760* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point760* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo763([2 x i64] %0) #0 { + %2 = alloca %struct.point763, align 4 + %3 = alloca %struct.point763, align 4 + %4 = bitcast %struct.point763* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point763* %2 to i8* + %6 = bitcast %struct.point763* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point763* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo764([2 x i64] %0) #0 { + %2 = alloca %struct.point764, align 4 + %3 = alloca %struct.point764, align 4 + %4 = bitcast %struct.point764* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point764* %2 to i8* + %6 = bitcast %struct.point764* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point764* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo765([2 x i64] %0) #0 { + %2 = alloca %struct.point765, align 4 + %3 = alloca %struct.point765, align 4 + %4 = bitcast %struct.point765* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point765* %2 to i8* + %6 = bitcast %struct.point765* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point765* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo768([2 x i64] %0) #0 { + %2 = alloca %struct.point768, align 4 + %3 = alloca %struct.point768, align 4 + %4 = bitcast %struct.point768* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point768* %2 to i8* + %6 = bitcast %struct.point768* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point768* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo773([2 x i64] %0) #0 { + %2 = alloca %struct.point773, align 4 + %3 = alloca %struct.point773, align 4 + %4 = bitcast %struct.point773* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point773* %2 to i8* + %6 = bitcast %struct.point773* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point773* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo778([2 x i64] %0) #0 { + %2 = alloca %struct.point778, align 4 + %3 = alloca %struct.point778, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point778* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point778* %2 to i8* + %9 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point778* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo779([2 x i64] %0) #0 { + %2 = alloca %struct.point779, align 4 + %3 = alloca %struct.point779, align 4 + %4 = bitcast %struct.point779* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point779* %2 to i8* + %6 = bitcast %struct.point779* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point779* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo780([2 x i64] %0) #0 { + %2 = alloca %struct.point780, align 4 + %3 = alloca %struct.point780, align 4 + %4 = bitcast %struct.point780* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point780* %2 to i8* + %6 = bitcast %struct.point780* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point780* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo781([2 x i64] %0) #0 { + %2 = alloca %struct.point781, align 4 + %3 = alloca %struct.point781, align 4 + %4 = bitcast %struct.point781* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point781* %2 to i8* + %6 = bitcast %struct.point781* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point781* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo784([2 x i64] %0) #0 { + %2 = alloca %struct.point784, align 4 + %3 = alloca %struct.point784, align 4 + %4 = bitcast %struct.point784* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point784* %2 to i8* + %6 = bitcast %struct.point784* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point784* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo785([2 x i64] %0) #0 { + %2 = alloca %struct.point785, align 4 + %3 = alloca %struct.point785, align 4 + %4 = bitcast %struct.point785* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point785* %2 to i8* + %6 = bitcast %struct.point785* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point785* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo786([2 x i64] %0) #0 { + %2 = alloca %struct.point786, align 4 + %3 = alloca %struct.point786, align 4 + %4 = bitcast %struct.point786* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point786* %2 to i8* + %6 = bitcast %struct.point786* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point786* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo789([2 x i64] %0) #0 { + %2 = alloca %struct.point789, align 4 + %3 = alloca %struct.point789, align 4 + %4 = bitcast %struct.point789* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point789* %2 to i8* + %6 = bitcast %struct.point789* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point789* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo794([2 x i64] %0) #0 { + %2 = alloca %struct.point794, align 4 + %3 = alloca %struct.point794, align 4 + %4 = bitcast %struct.point794* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point794* %2 to i8* + %6 = bitcast %struct.point794* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point794* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo799(i64 %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point799* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo800(i64 %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point800* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo801(i64 %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point801* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo802([2 x i64] %0) #0 { + %2 = alloca %struct.point802, align 4 + %3 = alloca %struct.point802, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point802* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point802* %2 to i8* + %9 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point802* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo803([2 x i64] %0) #0 { + %2 = alloca %struct.point803, align 4 + %3 = alloca %struct.point803, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point803* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point803* %2 to i8* + %9 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point803* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo804([2 x i64] %0) #0 { + %2 = alloca %struct.point804, align 4 + %3 = alloca %struct.point804, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point804* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point804* %2 to i8* + %9 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point804* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo805(i64 %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point805* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo806([2 x i64] %0) #0 { + %2 = alloca %struct.point806, align 4 + %3 = alloca %struct.point806, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point806* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point806* %2 to i8* + %9 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point806* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo807([2 x i64] %0) #0 { + %2 = alloca %struct.point807, align 4 + %3 = alloca %struct.point807, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point807* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point807* %2 to i8* + %9 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point807* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo808([2 x i64] %0) #0 { + %2 = alloca %struct.point808, align 4 + %3 = alloca %struct.point808, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point808* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point808* %2 to i8* + %9 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point808* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo809([2 x i64] %0) #0 { + %2 = alloca %struct.point809, align 4 + %3 = alloca %struct.point809, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point809* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point809* %2 to i8* + %9 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point809* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo810([2 x i64] %0) #0 { + %2 = alloca %struct.point810, align 4 + %3 = alloca %struct.point810, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point810* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point810* %2 to i8* + %9 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point810* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo811([2 x i64] %0) #0 { + %2 = alloca %struct.point811, align 4 + %3 = alloca %struct.point811, align 4 + %4 = bitcast %struct.point811* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point811* %2 to i8* + %6 = bitcast %struct.point811* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point811* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo812([2 x i64] %0) #0 { + %2 = alloca %struct.point812, align 4 + %3 = alloca %struct.point812, align 4 + %4 = bitcast %struct.point812* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point812* %2 to i8* + %6 = bitcast %struct.point812* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point812* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo813([2 x i64] %0) #0 { + %2 = alloca %struct.point813, align 4 + %3 = alloca %struct.point813, align 4 + %4 = bitcast %struct.point813* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point813* %2 to i8* + %6 = bitcast %struct.point813* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point813* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo814([2 x i64] %0) #0 { + %2 = alloca %struct.point814, align 4 + %3 = alloca %struct.point814, align 4 + %4 = bitcast %struct.point814* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point814* %2 to i8* + %6 = bitcast %struct.point814* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point814* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo815([2 x i64] %0) #0 { + %2 = alloca %struct.point815, align 4 + %3 = alloca %struct.point815, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point815* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point815* %2 to i8* + %9 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point815* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo816([2 x i64] %0) #0 { + %2 = alloca %struct.point816, align 4 + %3 = alloca %struct.point816, align 4 + %4 = bitcast %struct.point816* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point816* %2 to i8* + %6 = bitcast %struct.point816* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point816* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo817([2 x i64] %0) #0 { + %2 = alloca %struct.point817, align 4 + %3 = alloca %struct.point817, align 4 + %4 = bitcast %struct.point817* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point817* %2 to i8* + %6 = bitcast %struct.point817* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point817* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo818([2 x i64] %0) #0 { + %2 = alloca %struct.point818, align 4 + %3 = alloca %struct.point818, align 4 + %4 = bitcast %struct.point818* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point818* %2 to i8* + %6 = bitcast %struct.point818* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point818* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo819([2 x i64] %0) #0 { + %2 = alloca %struct.point819, align 4 + %3 = alloca %struct.point819, align 4 + %4 = bitcast %struct.point819* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point819* %2 to i8* + %6 = bitcast %struct.point819* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point819* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo820(i64 %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point820* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo821([2 x i64] %0) #0 { + %2 = alloca %struct.point821, align 4 + %3 = alloca %struct.point821, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point821* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point821* %2 to i8* + %9 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point821* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo822([2 x i64] %0) #0 { + %2 = alloca %struct.point822, align 4 + %3 = alloca %struct.point822, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point822* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point822* %2 to i8* + %9 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point822* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo823([2 x i64] %0) #0 { + %2 = alloca %struct.point823, align 4 + %3 = alloca %struct.point823, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point823* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point823* %2 to i8* + %9 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point823* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo824([2 x i64] %0) #0 { + %2 = alloca %struct.point824, align 4 + %3 = alloca %struct.point824, align 4 + %4 = bitcast %struct.point824* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point824* %2 to i8* + %6 = bitcast %struct.point824* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point824* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo825([2 x i64] %0) #0 { + %2 = alloca %struct.point825, align 4 + %3 = alloca %struct.point825, align 4 + %4 = bitcast %struct.point825* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point825* %2 to i8* + %6 = bitcast %struct.point825* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point825* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo826([2 x i64] %0) #0 { + %2 = alloca %struct.point826, align 4 + %3 = alloca %struct.point826, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point826* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point826* %2 to i8* + %9 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point826* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo827([2 x i64] %0) #0 { + %2 = alloca %struct.point827, align 4 + %3 = alloca %struct.point827, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point827* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point827* %2 to i8* + %9 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point827* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo828([2 x i64] %0) #0 { + %2 = alloca %struct.point828, align 4 + %3 = alloca %struct.point828, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point828* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point828* %2 to i8* + %9 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point828* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo829([2 x i64] %0) #0 { + %2 = alloca %struct.point829, align 4 + %3 = alloca %struct.point829, align 4 + %4 = bitcast %struct.point829* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point829* %2 to i8* + %6 = bitcast %struct.point829* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point829* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo830([2 x i64] %0) #0 { + %2 = alloca %struct.point830, align 4 + %3 = alloca %struct.point830, align 4 + %4 = bitcast %struct.point830* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point830* %2 to i8* + %6 = bitcast %struct.point830* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point830* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo831([2 x i64] %0) #0 { + %2 = alloca %struct.point831, align 4 + %3 = alloca %struct.point831, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point831* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point831* %2 to i8* + %9 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point831* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo832([2 x i64] %0) #0 { + %2 = alloca %struct.point832, align 4 + %3 = alloca %struct.point832, align 4 + %4 = bitcast %struct.point832* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point832* %2 to i8* + %6 = bitcast %struct.point832* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point832* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo833([2 x i64] %0) #0 { + %2 = alloca %struct.point833, align 4 + %3 = alloca %struct.point833, align 4 + %4 = bitcast %struct.point833* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point833* %2 to i8* + %6 = bitcast %struct.point833* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point833* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo834([2 x i64] %0) #0 { + %2 = alloca %struct.point834, align 4 + %3 = alloca %struct.point834, align 4 + %4 = bitcast %struct.point834* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point834* %2 to i8* + %6 = bitcast %struct.point834* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point834* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo835([2 x i64] %0) #0 { + %2 = alloca %struct.point835, align 4 + %3 = alloca %struct.point835, align 4 + %4 = bitcast %struct.point835* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point835* %2 to i8* + %6 = bitcast %struct.point835* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point835* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo836([2 x i64] %0) #0 { + %2 = alloca %struct.point836, align 4 + %3 = alloca %struct.point836, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point836* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point836* %2 to i8* + %9 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point836* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo837([2 x i64] %0) #0 { + %2 = alloca %struct.point837, align 4 + %3 = alloca %struct.point837, align 4 + %4 = bitcast %struct.point837* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point837* %2 to i8* + %6 = bitcast %struct.point837* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point837* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo838([2 x i64] %0) #0 { + %2 = alloca %struct.point838, align 4 + %3 = alloca %struct.point838, align 4 + %4 = bitcast %struct.point838* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point838* %2 to i8* + %6 = bitcast %struct.point838* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point838* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo839([2 x i64] %0) #0 { + %2 = alloca %struct.point839, align 4 + %3 = alloca %struct.point839, align 4 + %4 = bitcast %struct.point839* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point839* %2 to i8* + %6 = bitcast %struct.point839* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point839* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo840([2 x i64] %0) #0 { + %2 = alloca %struct.point840, align 4 + %3 = alloca %struct.point840, align 4 + %4 = bitcast %struct.point840* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point840* %2 to i8* + %6 = bitcast %struct.point840* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point840* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo841([2 x i64] %0) #0 { + %2 = alloca %struct.point841, align 4 + %3 = alloca %struct.point841, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point841* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point841* %2 to i8* + %9 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point841* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo842([2 x i64] %0) #0 { + %2 = alloca %struct.point842, align 4 + %3 = alloca %struct.point842, align 4 + %4 = bitcast %struct.point842* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point842* %2 to i8* + %6 = bitcast %struct.point842* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point842* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo843([2 x i64] %0) #0 { + %2 = alloca %struct.point843, align 4 + %3 = alloca %struct.point843, align 4 + %4 = bitcast %struct.point843* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point843* %2 to i8* + %6 = bitcast %struct.point843* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point843* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo844([2 x i64] %0) #0 { + %2 = alloca %struct.point844, align 4 + %3 = alloca %struct.point844, align 4 + %4 = bitcast %struct.point844* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point844* %2 to i8* + %6 = bitcast %struct.point844* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point844* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo847([2 x i64] %0) #0 { + %2 = alloca %struct.point847, align 4 + %3 = alloca %struct.point847, align 4 + %4 = bitcast %struct.point847* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point847* %2 to i8* + %6 = bitcast %struct.point847* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point847* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo848([2 x i64] %0) #0 { + %2 = alloca %struct.point848, align 4 + %3 = alloca %struct.point848, align 4 + %4 = bitcast %struct.point848* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point848* %2 to i8* + %6 = bitcast %struct.point848* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point848* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo849([2 x i64] %0) #0 { + %2 = alloca %struct.point849, align 4 + %3 = alloca %struct.point849, align 4 + %4 = bitcast %struct.point849* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point849* %2 to i8* + %6 = bitcast %struct.point849* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point849* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo852([2 x i64] %0) #0 { + %2 = alloca %struct.point852, align 4 + %3 = alloca %struct.point852, align 4 + %4 = bitcast %struct.point852* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point852* %2 to i8* + %6 = bitcast %struct.point852* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point852* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo857([2 x i64] %0) #0 { + %2 = alloca %struct.point857, align 4 + %3 = alloca %struct.point857, align 4 + %4 = bitcast %struct.point857* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point857* %2 to i8* + %6 = bitcast %struct.point857* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point857* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo862([2 x i64] %0) #0 { + %2 = alloca %struct.point862, align 4 + %3 = alloca %struct.point862, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point862* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point862* %2 to i8* + %9 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point862* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo863([2 x i64] %0) #0 { + %2 = alloca %struct.point863, align 4 + %3 = alloca %struct.point863, align 4 + %4 = bitcast %struct.point863* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point863* %2 to i8* + %6 = bitcast %struct.point863* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point863* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo864([2 x i64] %0) #0 { + %2 = alloca %struct.point864, align 4 + %3 = alloca %struct.point864, align 4 + %4 = bitcast %struct.point864* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point864* %2 to i8* + %6 = bitcast %struct.point864* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point864* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo865([2 x i64] %0) #0 { + %2 = alloca %struct.point865, align 4 + %3 = alloca %struct.point865, align 4 + %4 = bitcast %struct.point865* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point865* %2 to i8* + %6 = bitcast %struct.point865* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point865* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo868([2 x i64] %0) #0 { + %2 = alloca %struct.point868, align 4 + %3 = alloca %struct.point868, align 4 + %4 = bitcast %struct.point868* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point868* %2 to i8* + %6 = bitcast %struct.point868* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point868* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo869([2 x i64] %0) #0 { + %2 = alloca %struct.point869, align 4 + %3 = alloca %struct.point869, align 4 + %4 = bitcast %struct.point869* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point869* %2 to i8* + %6 = bitcast %struct.point869* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point869* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo870([2 x i64] %0) #0 { + %2 = alloca %struct.point870, align 4 + %3 = alloca %struct.point870, align 4 + %4 = bitcast %struct.point870* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point870* %2 to i8* + %6 = bitcast %struct.point870* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point870* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo873([2 x i64] %0) #0 { + %2 = alloca %struct.point873, align 4 + %3 = alloca %struct.point873, align 4 + %4 = bitcast %struct.point873* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point873* %2 to i8* + %6 = bitcast %struct.point873* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point873* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo878([2 x i64] %0) #0 { + %2 = alloca %struct.point878, align 4 + %3 = alloca %struct.point878, align 4 + %4 = bitcast %struct.point878* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point878* %2 to i8* + %6 = bitcast %struct.point878* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point878* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo883(i64 %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point883* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo884(i64 %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point884* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo885([2 x i64] %0) #0 { + %2 = alloca %struct.point885, align 4 + %3 = alloca %struct.point885, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point885* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point885* %2 to i8* + %9 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point885* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo886([2 x i64] %0) #0 { + %2 = alloca %struct.point886, align 4 + %3 = alloca %struct.point886, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point886* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point886* %2 to i8* + %9 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point886* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo887([2 x i64] %0) #0 { + %2 = alloca %struct.point887, align 4 + %3 = alloca %struct.point887, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point887* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point887* %2 to i8* + %9 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point887* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo888([2 x i64] %0) #0 { + %2 = alloca %struct.point888, align 4 + %3 = alloca %struct.point888, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point888* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point888* %2 to i8* + %9 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point888* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo889([2 x i64] %0) #0 { + %2 = alloca %struct.point889, align 4 + %3 = alloca %struct.point889, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point889* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point889* %2 to i8* + %9 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point889* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo890([2 x i64] %0) #0 { + %2 = alloca %struct.point890, align 4 + %3 = alloca %struct.point890, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point890* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point890* %2 to i8* + %9 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point890* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo891([2 x i64] %0) #0 { + %2 = alloca %struct.point891, align 4 + %3 = alloca %struct.point891, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point891* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point891* %2 to i8* + %9 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point891* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo892([2 x i64] %0) #0 { + %2 = alloca %struct.point892, align 4 + %3 = alloca %struct.point892, align 4 + %4 = bitcast %struct.point892* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point892* %2 to i8* + %6 = bitcast %struct.point892* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point892* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo893([2 x i64] %0) #0 { + %2 = alloca %struct.point893, align 4 + %3 = alloca %struct.point893, align 4 + %4 = bitcast %struct.point893* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point893* %2 to i8* + %6 = bitcast %struct.point893* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point893* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo894([2 x i64] %0) #0 { + %2 = alloca %struct.point894, align 4 + %3 = alloca %struct.point894, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point894* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point894* %2 to i8* + %9 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point894* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo895([2 x i64] %0) #0 { + %2 = alloca %struct.point895, align 4 + %3 = alloca %struct.point895, align 4 + %4 = bitcast %struct.point895* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point895* %2 to i8* + %6 = bitcast %struct.point895* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point895* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo896([2 x i64] %0) #0 { + %2 = alloca %struct.point896, align 4 + %3 = alloca %struct.point896, align 4 + %4 = bitcast %struct.point896* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point896* %2 to i8* + %6 = bitcast %struct.point896* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point896* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo897([2 x i64] %0) #0 { + %2 = alloca %struct.point897, align 4 + %3 = alloca %struct.point897, align 4 + %4 = bitcast %struct.point897* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point897* %2 to i8* + %6 = bitcast %struct.point897* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point897* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo898([2 x i64] %0) #0 { + %2 = alloca %struct.point898, align 4 + %3 = alloca %struct.point898, align 4 + %4 = bitcast %struct.point898* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point898* %2 to i8* + %6 = bitcast %struct.point898* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point898* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo899([2 x i64] %0) #0 { + %2 = alloca %struct.point899, align 4 + %3 = alloca %struct.point899, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point899* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point899* %2 to i8* + %9 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point899* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo900([2 x i64] %0) #0 { + %2 = alloca %struct.point900, align 4 + %3 = alloca %struct.point900, align 4 + %4 = bitcast %struct.point900* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point900* %2 to i8* + %6 = bitcast %struct.point900* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point900* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo901([2 x i64] %0) #0 { + %2 = alloca %struct.point901, align 4 + %3 = alloca %struct.point901, align 4 + %4 = bitcast %struct.point901* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point901* %2 to i8* + %6 = bitcast %struct.point901* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point901* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo902([2 x i64] %0) #0 { + %2 = alloca %struct.point902, align 4 + %3 = alloca %struct.point902, align 4 + %4 = bitcast %struct.point902* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point902* %2 to i8* + %6 = bitcast %struct.point902* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point902* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo903([2 x i64] %0) #0 { + %2 = alloca %struct.point903, align 4 + %3 = alloca %struct.point903, align 4 + %4 = bitcast %struct.point903* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point903* %2 to i8* + %6 = bitcast %struct.point903* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point903* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo904(i64 %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point904* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo905([2 x i64] %0) #0 { + %2 = alloca %struct.point905, align 4 + %3 = alloca %struct.point905, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point905* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point905* %2 to i8* + %9 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point905* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo906([2 x i64] %0) #0 { + %2 = alloca %struct.point906, align 4 + %3 = alloca %struct.point906, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point906* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point906* %2 to i8* + %9 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point906* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo907([2 x i64] %0) #0 { + %2 = alloca %struct.point907, align 4 + %3 = alloca %struct.point907, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point907* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point907* %2 to i8* + %9 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point907* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo908([2 x i64] %0) #0 { + %2 = alloca %struct.point908, align 4 + %3 = alloca %struct.point908, align 4 + %4 = bitcast %struct.point908* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point908* %2 to i8* + %6 = bitcast %struct.point908* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point908* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo909([2 x i64] %0) #0 { + %2 = alloca %struct.point909, align 4 + %3 = alloca %struct.point909, align 4 + %4 = bitcast %struct.point909* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point909* %2 to i8* + %6 = bitcast %struct.point909* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point909* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo910([2 x i64] %0) #0 { + %2 = alloca %struct.point910, align 4 + %3 = alloca %struct.point910, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point910* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point910* %2 to i8* + %9 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point910* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo911([2 x i64] %0) #0 { + %2 = alloca %struct.point911, align 4 + %3 = alloca %struct.point911, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point911* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point911* %2 to i8* + %9 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point911* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo912([2 x i64] %0) #0 { + %2 = alloca %struct.point912, align 4 + %3 = alloca %struct.point912, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point912* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point912* %2 to i8* + %9 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point912* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo913([2 x i64] %0) #0 { + %2 = alloca %struct.point913, align 4 + %3 = alloca %struct.point913, align 4 + %4 = bitcast %struct.point913* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point913* %2 to i8* + %6 = bitcast %struct.point913* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point913* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo914([2 x i64] %0) #0 { + %2 = alloca %struct.point914, align 4 + %3 = alloca %struct.point914, align 4 + %4 = bitcast %struct.point914* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point914* %2 to i8* + %6 = bitcast %struct.point914* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point914* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo915([2 x i64] %0) #0 { + %2 = alloca %struct.point915, align 4 + %3 = alloca %struct.point915, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point915* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point915* %2 to i8* + %9 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point915* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo916([2 x i64] %0) #0 { + %2 = alloca %struct.point916, align 4 + %3 = alloca %struct.point916, align 4 + %4 = bitcast %struct.point916* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point916* %2 to i8* + %6 = bitcast %struct.point916* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point916* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo917([2 x i64] %0) #0 { + %2 = alloca %struct.point917, align 4 + %3 = alloca %struct.point917, align 4 + %4 = bitcast %struct.point917* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point917* %2 to i8* + %6 = bitcast %struct.point917* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point917* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo918([2 x i64] %0) #0 { + %2 = alloca %struct.point918, align 4 + %3 = alloca %struct.point918, align 4 + %4 = bitcast %struct.point918* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point918* %2 to i8* + %6 = bitcast %struct.point918* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point918* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo919([2 x i64] %0) #0 { + %2 = alloca %struct.point919, align 4 + %3 = alloca %struct.point919, align 4 + %4 = bitcast %struct.point919* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point919* %2 to i8* + %6 = bitcast %struct.point919* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point919* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo920([2 x i64] %0) #0 { + %2 = alloca %struct.point920, align 4 + %3 = alloca %struct.point920, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point920* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point920* %2 to i8* + %9 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point920* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo921([2 x i64] %0) #0 { + %2 = alloca %struct.point921, align 4 + %3 = alloca %struct.point921, align 4 + %4 = bitcast %struct.point921* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point921* %2 to i8* + %6 = bitcast %struct.point921* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point921* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo922([2 x i64] %0) #0 { + %2 = alloca %struct.point922, align 4 + %3 = alloca %struct.point922, align 4 + %4 = bitcast %struct.point922* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point922* %2 to i8* + %6 = bitcast %struct.point922* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point922* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo923([2 x i64] %0) #0 { + %2 = alloca %struct.point923, align 4 + %3 = alloca %struct.point923, align 4 + %4 = bitcast %struct.point923* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point923* %2 to i8* + %6 = bitcast %struct.point923* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point923* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo924([2 x i64] %0) #0 { + %2 = alloca %struct.point924, align 4 + %3 = alloca %struct.point924, align 4 + %4 = bitcast %struct.point924* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point924* %2 to i8* + %6 = bitcast %struct.point924* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point924* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo925([2 x i64] %0) #0 { + %2 = alloca %struct.point925, align 4 + %3 = alloca %struct.point925, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point925* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point925* %2 to i8* + %9 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point925* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo926([2 x i64] %0) #0 { + %2 = alloca %struct.point926, align 4 + %3 = alloca %struct.point926, align 4 + %4 = bitcast %struct.point926* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point926* %2 to i8* + %6 = bitcast %struct.point926* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point926* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo927([2 x i64] %0) #0 { + %2 = alloca %struct.point927, align 4 + %3 = alloca %struct.point927, align 4 + %4 = bitcast %struct.point927* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point927* %2 to i8* + %6 = bitcast %struct.point927* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point927* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo928([2 x i64] %0) #0 { + %2 = alloca %struct.point928, align 4 + %3 = alloca %struct.point928, align 4 + %4 = bitcast %struct.point928* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point928* %2 to i8* + %6 = bitcast %struct.point928* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point928* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo931([2 x i64] %0) #0 { + %2 = alloca %struct.point931, align 4 + %3 = alloca %struct.point931, align 4 + %4 = bitcast %struct.point931* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point931* %2 to i8* + %6 = bitcast %struct.point931* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point931* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo932([2 x i64] %0) #0 { + %2 = alloca %struct.point932, align 4 + %3 = alloca %struct.point932, align 4 + %4 = bitcast %struct.point932* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point932* %2 to i8* + %6 = bitcast %struct.point932* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point932* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo933([2 x i64] %0) #0 { + %2 = alloca %struct.point933, align 4 + %3 = alloca %struct.point933, align 4 + %4 = bitcast %struct.point933* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point933* %2 to i8* + %6 = bitcast %struct.point933* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point933* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo936([2 x i64] %0) #0 { + %2 = alloca %struct.point936, align 4 + %3 = alloca %struct.point936, align 4 + %4 = bitcast %struct.point936* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point936* %2 to i8* + %6 = bitcast %struct.point936* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point936* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo941([2 x i64] %0) #0 { + %2 = alloca %struct.point941, align 4 + %3 = alloca %struct.point941, align 4 + %4 = bitcast %struct.point941* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point941* %2 to i8* + %6 = bitcast %struct.point941* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point941* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo946([2 x i64] %0) #0 { + %2 = alloca %struct.point946, align 4 + %3 = alloca %struct.point946, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point946* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point946* %2 to i8* + %9 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point946* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo947([2 x i64] %0) #0 { + %2 = alloca %struct.point947, align 4 + %3 = alloca %struct.point947, align 4 + %4 = bitcast %struct.point947* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point947* %2 to i8* + %6 = bitcast %struct.point947* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point947* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo948([2 x i64] %0) #0 { + %2 = alloca %struct.point948, align 4 + %3 = alloca %struct.point948, align 4 + %4 = bitcast %struct.point948* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point948* %2 to i8* + %6 = bitcast %struct.point948* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point948* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo949([2 x i64] %0) #0 { + %2 = alloca %struct.point949, align 4 + %3 = alloca %struct.point949, align 4 + %4 = bitcast %struct.point949* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point949* %2 to i8* + %6 = bitcast %struct.point949* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point949* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo952([2 x i64] %0) #0 { + %2 = alloca %struct.point952, align 4 + %3 = alloca %struct.point952, align 4 + %4 = bitcast %struct.point952* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point952* %2 to i8* + %6 = bitcast %struct.point952* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point952* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo953([2 x i64] %0) #0 { + %2 = alloca %struct.point953, align 4 + %3 = alloca %struct.point953, align 4 + %4 = bitcast %struct.point953* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point953* %2 to i8* + %6 = bitcast %struct.point953* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point953* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo954([2 x i64] %0) #0 { + %2 = alloca %struct.point954, align 4 + %3 = alloca %struct.point954, align 4 + %4 = bitcast %struct.point954* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point954* %2 to i8* + %6 = bitcast %struct.point954* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point954* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo957([2 x i64] %0) #0 { + %2 = alloca %struct.point957, align 4 + %3 = alloca %struct.point957, align 4 + %4 = bitcast %struct.point957* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point957* %2 to i8* + %6 = bitcast %struct.point957* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point957* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo962([2 x i64] %0) #0 { + %2 = alloca %struct.point962, align 4 + %3 = alloca %struct.point962, align 4 + %4 = bitcast %struct.point962* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point962* %2 to i8* + %6 = bitcast %struct.point962* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point962* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo967([2 x i64] %0) #0 { + %2 = alloca %struct.point967, align 4 + %3 = alloca %struct.point967, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point967* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point967* %2 to i8* + %9 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point967* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo968([2 x i64] %0) #0 { + %2 = alloca %struct.point968, align 4 + %3 = alloca %struct.point968, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point968* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point968* %2 to i8* + %9 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point968* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo969([2 x i64] %0) #0 { + %2 = alloca %struct.point969, align 4 + %3 = alloca %struct.point969, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point969* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point969* %2 to i8* + %9 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point969* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo970([2 x i64] %0) #0 { + %2 = alloca %struct.point970, align 4 + %3 = alloca %struct.point970, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point970* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point970* %2 to i8* + %9 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point970* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo971([2 x i64] %0) #0 { + %2 = alloca %struct.point971, align 4 + %3 = alloca %struct.point971, align 4 + %4 = bitcast %struct.point971* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point971* %2 to i8* + %6 = bitcast %struct.point971* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point971* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo972([2 x i64] %0) #0 { + %2 = alloca %struct.point972, align 4 + %3 = alloca %struct.point972, align 4 + %4 = bitcast %struct.point972* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point972* %2 to i8* + %6 = bitcast %struct.point972* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point972* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo973([2 x i64] %0) #0 { + %2 = alloca %struct.point973, align 4 + %3 = alloca %struct.point973, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point973* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point973* %2 to i8* + %9 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point973* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo974([2 x i64] %0) #0 { + %2 = alloca %struct.point974, align 4 + %3 = alloca %struct.point974, align 4 + %4 = bitcast %struct.point974* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point974* %2 to i8* + %6 = bitcast %struct.point974* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point974* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo975([2 x i64] %0) #0 { + %2 = alloca %struct.point975, align 4 + %3 = alloca %struct.point975, align 4 + %4 = bitcast %struct.point975* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point975* %2 to i8* + %6 = bitcast %struct.point975* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point975* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo976([2 x i64] %0) #0 { + %2 = alloca %struct.point976, align 4 + %3 = alloca %struct.point976, align 4 + %4 = bitcast %struct.point976* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point976* %2 to i8* + %6 = bitcast %struct.point976* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point976* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo977([2 x i64] %0) #0 { + %2 = alloca %struct.point977, align 4 + %3 = alloca %struct.point977, align 4 + %4 = bitcast %struct.point977* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point977* %2 to i8* + %6 = bitcast %struct.point977* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point977* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo978([2 x i64] %0) #0 { + %2 = alloca %struct.point978, align 4 + %3 = alloca %struct.point978, align 4 + %4 = bitcast %struct.point978* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point978* %2 to i8* + %6 = bitcast %struct.point978* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point978* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo983([2 x i64] %0) #0 { + %2 = alloca %struct.point983, align 4 + %3 = alloca %struct.point983, align 4 + %4 = bitcast %struct.point983* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point983* %2 to i8* + %6 = bitcast %struct.point983* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point983* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo988([2 x i64] %0) #0 { + %2 = alloca %struct.point988, align 4 + %3 = alloca %struct.point988, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point988* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point988* %2 to i8* + %9 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point988* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo989([2 x i64] %0) #0 { + %2 = alloca %struct.point989, align 4 + %3 = alloca %struct.point989, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point989* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point989* %2 to i8* + %9 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point989* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo990([2 x i64] %0) #0 { + %2 = alloca %struct.point990, align 4 + %3 = alloca %struct.point990, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point990* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point990* %2 to i8* + %9 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point990* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo991([2 x i64] %0) #0 { + %2 = alloca %struct.point991, align 4 + %3 = alloca %struct.point991, align 4 + %4 = bitcast %struct.point991* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point991* %2 to i8* + %6 = bitcast %struct.point991* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point991* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo992([2 x i64] %0) #0 { + %2 = alloca %struct.point992, align 4 + %3 = alloca %struct.point992, align 4 + %4 = bitcast %struct.point992* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point992* %2 to i8* + %6 = bitcast %struct.point992* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point992* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo993([2 x i64] %0) #0 { + %2 = alloca %struct.point993, align 4 + %3 = alloca %struct.point993, align 4 + %4 = bitcast %struct.point993* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point993* %2 to i8* + %6 = bitcast %struct.point993* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point993* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo994([2 x i64] %0) #0 { + %2 = alloca %struct.point994, align 4 + %3 = alloca %struct.point994, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point994* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point994* %2 to i8* + %9 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point994* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo995([2 x i64] %0) #0 { + %2 = alloca %struct.point995, align 4 + %3 = alloca %struct.point995, align 4 + %4 = bitcast %struct.point995* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point995* %2 to i8* + %6 = bitcast %struct.point995* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point995* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo996([2 x i64] %0) #0 { + %2 = alloca %struct.point996, align 4 + %3 = alloca %struct.point996, align 4 + %4 = bitcast %struct.point996* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point996* %2 to i8* + %6 = bitcast %struct.point996* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point996* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo997([2 x i64] %0) #0 { + %2 = alloca %struct.point997, align 4 + %3 = alloca %struct.point997, align 4 + %4 = bitcast %struct.point997* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point997* %2 to i8* + %6 = bitcast %struct.point997* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point997* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo998([2 x i64] %0) #0 { + %2 = alloca %struct.point998, align 4 + %3 = alloca %struct.point998, align 4 + %4 = bitcast %struct.point998* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point998* %2 to i8* + %6 = bitcast %struct.point998* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point998* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo999([2 x i64] %0) #0 { + %2 = alloca %struct.point999, align 4 + %3 = alloca %struct.point999, align 4 + %4 = bitcast %struct.point999* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point999* %2 to i8* + %6 = bitcast %struct.point999* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point999* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1004([2 x i64] %0) #0 { + %2 = alloca %struct.point1004, align 4 + %3 = alloca %struct.point1004, align 4 + %4 = bitcast %struct.point1004* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1004* %2 to i8* + %6 = bitcast %struct.point1004* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1004* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1009([2 x i64] %0) #0 { + %2 = alloca %struct.point1009, align 4 + %3 = alloca %struct.point1009, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1009* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1009* %2 to i8* + %9 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1009* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1010([2 x i64] %0) #0 { + %2 = alloca %struct.point1010, align 4 + %3 = alloca %struct.point1010, align 4 + %4 = bitcast %struct.point1010* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1010* %2 to i8* + %6 = bitcast %struct.point1010* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1010* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1011([2 x i64] %0) #0 { + %2 = alloca %struct.point1011, align 4 + %3 = alloca %struct.point1011, align 4 + %4 = bitcast %struct.point1011* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1011* %2 to i8* + %6 = bitcast %struct.point1011* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1011* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1012([2 x i64] %0) #0 { + %2 = alloca %struct.point1012, align 4 + %3 = alloca %struct.point1012, align 4 + %4 = bitcast %struct.point1012* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1012* %2 to i8* + %6 = bitcast %struct.point1012* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1012* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1015([2 x i64] %0) #0 { + %2 = alloca %struct.point1015, align 4 + %3 = alloca %struct.point1015, align 4 + %4 = bitcast %struct.point1015* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1015* %2 to i8* + %6 = bitcast %struct.point1015* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1015* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1016([2 x i64] %0) #0 { + %2 = alloca %struct.point1016, align 4 + %3 = alloca %struct.point1016, align 4 + %4 = bitcast %struct.point1016* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1016* %2 to i8* + %6 = bitcast %struct.point1016* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1016* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1017([2 x i64] %0) #0 { + %2 = alloca %struct.point1017, align 4 + %3 = alloca %struct.point1017, align 4 + %4 = bitcast %struct.point1017* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1017* %2 to i8* + %6 = bitcast %struct.point1017* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1017* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1020([2 x i64] %0) #0 { + %2 = alloca %struct.point1020, align 4 + %3 = alloca %struct.point1020, align 4 + %4 = bitcast %struct.point1020* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1020* %2 to i8* + %6 = bitcast %struct.point1020* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1020* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1025([2 x i64] %0) #0 { + %2 = alloca %struct.point1025, align 4 + %3 = alloca %struct.point1025, align 4 + %4 = bitcast %struct.point1025* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1025* %2 to i8* + %6 = bitcast %struct.point1025* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1025* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1030([2 x i64] %0) #0 { + %2 = alloca %struct.point1030, align 4 + %3 = alloca %struct.point1030, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1030* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1030* %2 to i8* + %9 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1030* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1031([2 x i64] %0) #0 { + %2 = alloca %struct.point1031, align 4 + %3 = alloca %struct.point1031, align 4 + %4 = bitcast %struct.point1031* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1031* %2 to i8* + %6 = bitcast %struct.point1031* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1031* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1032([2 x i64] %0) #0 { + %2 = alloca %struct.point1032, align 4 + %3 = alloca %struct.point1032, align 4 + %4 = bitcast %struct.point1032* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1032* %2 to i8* + %6 = bitcast %struct.point1032* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1032* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1033([2 x i64] %0) #0 { + %2 = alloca %struct.point1033, align 4 + %3 = alloca %struct.point1033, align 4 + %4 = bitcast %struct.point1033* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1033* %2 to i8* + %6 = bitcast %struct.point1033* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1033* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1036([2 x i64] %0) #0 { + %2 = alloca %struct.point1036, align 4 + %3 = alloca %struct.point1036, align 4 + %4 = bitcast %struct.point1036* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1036* %2 to i8* + %6 = bitcast %struct.point1036* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1036* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1037([2 x i64] %0) #0 { + %2 = alloca %struct.point1037, align 4 + %3 = alloca %struct.point1037, align 4 + %4 = bitcast %struct.point1037* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1037* %2 to i8* + %6 = bitcast %struct.point1037* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1037* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1038([2 x i64] %0) #0 { + %2 = alloca %struct.point1038, align 4 + %3 = alloca %struct.point1038, align 4 + %4 = bitcast %struct.point1038* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1038* %2 to i8* + %6 = bitcast %struct.point1038* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1038* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1041([2 x i64] %0) #0 { + %2 = alloca %struct.point1041, align 4 + %3 = alloca %struct.point1041, align 4 + %4 = bitcast %struct.point1041* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1041* %2 to i8* + %6 = bitcast %struct.point1041* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1041* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1046([2 x i64] %0) #0 { + %2 = alloca %struct.point1046, align 4 + %3 = alloca %struct.point1046, align 4 + %4 = bitcast %struct.point1046* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1046* %2 to i8* + %6 = bitcast %struct.point1046* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1046* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64d/struct_pointer.ll b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_pointer.ll new file mode 100644 index 00000000..a9fc4179 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64d/struct_pointer.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i64 %0 to i8* + store i8* %5, i8** %4, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 8 + %10 = ptrtoint i8* %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64d"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_float32.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_float32.ll new file mode 100644 index 00000000..2cd583b6 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_float32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = bitcast %struct.array1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = bitcast %struct.array1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = alloca %struct.array2, align 4 + %5 = bitcast %struct.array2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.array2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x float]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x float]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x float]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x float]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_float64.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_float64.ll new file mode 100644 index 00000000..f0a850d3 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_float64.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x double]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x double]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_int16.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int16.ll new file mode 100644 index 00000000..389ebda5 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int16.ll @@ -0,0 +1,336 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to i64* + store i64 %0, i64* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to i64* + %10 = load i64, i64* %9, align 2 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.array5, align 2 + %3 = alloca %struct.array5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [5 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [5 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.array6, align 2 + %3 = alloca %struct.array6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [6 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [6 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.array7, align 2 + %3 = alloca %struct.array7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [7 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [7 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.array8, align 2 + %3 = alloca %struct.array8, align 2 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i16]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 2 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i16]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 2 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_int32.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int32.ll new file mode 100644 index 00000000..a3186c54 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i32]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i32]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i32]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x i32]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i32]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i32]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_int64.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int64.ll new file mode 100644 index 00000000..de1b5d90 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int64.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_int8.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int8.ll new file mode 100644 index 00000000..228a02b9 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_int8.ll @@ -0,0 +1,424 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 1, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 3, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [4 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array4* %2 to i8* + %10 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [4 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 5, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 7, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.array9, align 1 + %3 = alloca %struct.array9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [9 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 9, i1 false) + %9 = bitcast %struct.array9* %2 to i8* + %10 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = getelementptr inbounds %struct.array9, %struct.array9* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [9 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 9, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.array10, align 1 + %3 = alloca %struct.array10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [10 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array10* %2 to i8* + %10 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [10 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.array11, align 1 + %3 = alloca %struct.array11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [11 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 11, i1 false) + %9 = bitcast %struct.array11* %2 to i8* + %10 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = getelementptr inbounds %struct.array11, %struct.array11* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [11 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 11, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.array12, align 1 + %3 = alloca %struct.array12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [12 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array12* %2 to i8* + %10 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array12, %struct.array12* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [12 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.array13, align 1 + %3 = alloca %struct.array13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [13 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 13, i1 false) + %9 = bitcast %struct.array13* %2 to i8* + %10 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = getelementptr inbounds %struct.array13, %struct.array13* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [13 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 13, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.array14, align 1 + %3 = alloca %struct.array14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [14 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array14* %2 to i8* + %10 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array14, %struct.array14* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [14 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.array15, align 1 + %3 = alloca %struct.array15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [15 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 15, i1 false) + %9 = bitcast %struct.array15* %2 to i8* + %10 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = getelementptr inbounds %struct.array15, %struct.array15* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [15 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 15, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.array16, align 1 + %3 = alloca %struct.array16, align 1 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 1 + %6 = bitcast %struct.array16* %2 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array16, %struct.array16* %2, i32 0, i32 0 + %9 = bitcast [16 x i8]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 1 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/array_pointer.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/array_pointer.ll new file mode 100644 index 00000000..fc19e436 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/array_pointer.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/basic.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/basic.ll new file mode 100644 index 00000000..36c9aa01 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @basic_int32(i32 noundef signext %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_pointer(i8* noundef %0) #0 { + %2 = alloca i8*, align 8 + store i8* %0, i8** %2, align 8 + %3 = load i8*, i8** %2, align 8 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/composite.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/composite.ll new file mode 100644 index 00000000..900e5232 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/composite.ll @@ -0,0 +1,176 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array10(i64 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %6, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %8 = bitcast [1 x i32]* %7 to i8* + %9 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 8 %9, i64 4, i1 false) + %10 = bitcast %struct.array10* %2 to i8* + %11 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 4, i1 false) + %12 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %13 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %12, i32 0, i32 0 + %14 = bitcast i64* %5 to i8* + %15 = bitcast [1 x i32]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 4 %15, i64 4, i1 false) + %16 = load i64, i64* %5, align 8 + ret i64 %16 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array11(i64 %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.array11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + %6 = trunc i64 %0 to i32 + store i32 %6, i32* %5, align 4 + %7 = bitcast %struct.point10* %2 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = zext i32 %11 to i64 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point11(i64 %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array20(i64 %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + %6 = bitcast [2 x i32]* %5 to i64* + store i64 %0, i64* %6, align 4 + %7 = bitcast %struct.array20* %2 to i8* + %8 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false) + %9 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %9, i32 0, i32 0 + %11 = bitcast [2 x i32]* %10 to i64* + %12 = load i64, i64* %11, align 4 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_array21([2 x i64] %0) #0 { + %2 = alloca %struct.array21, align 4 + %3 = alloca %struct.array21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.array21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.array21* %2 to i8* + %9 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.array21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point20(i64 %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_point21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 4 + %3 = alloca %struct.point21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point21* %2 to i8* + %9 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/empty.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/empty.ll new file mode 100644 index 00000000..61b56db9 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo2(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo3(i32 noundef signext %0, i32 noundef signext %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float32.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float32.ll new file mode 100644 index 00000000..090d6b63 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float32.ll @@ -0,0 +1,288 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = bitcast %struct.point1* %3 to { float }* + %5 = getelementptr inbounds { float }, { float }* %4, i32 0, i32 0 + store float %0, float* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = bitcast %struct.point1* %2 to { float }* + %9 = getelementptr inbounds { float }, { float }* %8, i32 0, i32 0 + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local { float, float } @demo2(float %0, float %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = alloca %struct.point2, align 4 + %5 = bitcast %struct.point2* %4 to { float, float }* + %6 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, float }, { float, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point2* %3 to { float, float }* + %11 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, float }, { float, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { float, float } undef, float %12, 0 + %16 = insertvalue { float, float } %15, float %14, 1 + ret { float, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float64.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float64.ll new file mode 100644 index 00000000..6c9f6530 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_float64.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = bitcast double* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int16.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int16.ll new file mode 100644 index 00000000..07ee0403 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int16.ll @@ -0,0 +1,316 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 2 + %3 = alloca %struct.point5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 2 + %3 = alloca %struct.point6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.point8, align 2 + %3 = alloca %struct.point8, align 2 + %4 = bitcast %struct.point8* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 2 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 16, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 2 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int32.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int32.ll new file mode 100644 index 00000000..2b8352e0 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int32.ll @@ -0,0 +1,280 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = zext i32 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int64.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int64.ll new file mode 100644 index 00000000..cab9cb53 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int64.ll @@ -0,0 +1,266 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int8.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int8.ll new file mode 100644 index 00000000..b225e2ed --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_int8.ll @@ -0,0 +1,388 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 2, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 2, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 3, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 3, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point4* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point4* %2 to i8* + %9 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point4* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 5, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 5, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 7, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 7, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 1 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 1 + %3 = alloca %struct.point9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point9* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 9, i1 false) + %8 = bitcast %struct.point9* %2 to i8* + %9 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 9, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point9* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 9, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.point10, align 1 + %3 = alloca %struct.point10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point10* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point10* %2 to i8* + %9 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point10* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 1 + %3 = alloca %struct.point11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point11* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 11, i1 false) + %8 = bitcast %struct.point11* %2 to i8* + %9 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 11, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point11* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 11, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 1 + %3 = alloca %struct.point12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point12* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point12* %2 to i8* + %9 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point12* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.point13, align 1 + %3 = alloca %struct.point13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point13* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 13, i1 false) + %8 = bitcast %struct.point13* %2 to i8* + %9 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 13, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point13* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 13, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.point14, align 1 + %3 = alloca %struct.point14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point14* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point14* %2 to i8* + %9 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point14* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 1 + %3 = alloca %struct.point15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point15* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 15, i1 false) + %8 = bitcast %struct.point15* %2 to i8* + %9 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 15, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point15* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 15, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.point16, align 1 + %3 = alloca %struct.point16, align 1 + %4 = bitcast %struct.point16* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 1 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 16, i1 false) + %7 = bitcast %struct.point16* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 1 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_mixed.ll new file mode 100644 index 00000000..8f4a6ef7 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_mixed.ll @@ -0,0 +1,16158 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point1* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point1* %2 to i8* + %9 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point1* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point3* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i8, float } @demo4(i8 %0, float %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { i8, float }* + %6 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 4 + %7 = getelementptr inbounds { i8, float }, { i8, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point4* %3 to { i8, float }* + %11 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = getelementptr inbounds { i8, float }, { i8, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i8, float } undef, i8 %12, 0 + %16 = insertvalue { i8, float } %15, float %14, 1 + ret { i8, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 8 + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %2 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point5* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 8 + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 8 + %3 = alloca %struct.point9, align 8 + %4 = bitcast %struct.point9* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point9* %2 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point9* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i16, float } @demo10(i16 %0, float %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = alloca %struct.point10, align 4 + %5 = bitcast %struct.point10* %4 to { i16, float }* + %6 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 4 + %7 = getelementptr inbounds { i16, float }, { i16, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point10* %3 to i8* + %9 = bitcast %struct.point10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point10* %3 to { i16, float }* + %11 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 0 + %12 = load i16, i16* %11, align 4 + %13 = getelementptr inbounds { i16, float }, { i16, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i16, float } undef, i16 %12, 0 + %16 = insertvalue { i16, float } %15, float %14, 1 + ret { i16, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 8 + %3 = alloca %struct.point11, align 8 + %4 = bitcast %struct.point11* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 8 + %3 = alloca %struct.point12, align 8 + %4 = bitcast %struct.point12* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo13(i64 %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point13* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo14(i64 %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point14* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 8 + %3 = alloca %struct.point15, align 8 + %4 = bitcast %struct.point15* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point15* %2 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point15* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i32, float } @demo16(i32 %0, float %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = alloca %struct.point16, align 4 + %5 = bitcast %struct.point16* %4 to { i32, float }* + %6 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 4 + %7 = getelementptr inbounds { i32, float }, { i32, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 4 + %8 = bitcast %struct.point16* %3 to i8* + %9 = bitcast %struct.point16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point16* %3 to { i32, float }* + %11 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds { i32, float }, { i32, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = insertvalue { i32, float } undef, i32 %12, 0 + %16 = insertvalue { i32, float } %15, float %14, 1 + ret { i32, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo17([2 x i64] %0) #0 { + %2 = alloca %struct.point17, align 8 + %3 = alloca %struct.point17, align 8 + %4 = bitcast %struct.point17* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point17* %2 to i8* + %6 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point17* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo18([2 x i64] %0) #0 { + %2 = alloca %struct.point18, align 8 + %3 = alloca %struct.point18, align 8 + %4 = bitcast %struct.point18* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo19([2 x i64] %0) #0 { + %2 = alloca %struct.point19, align 8 + %3 = alloca %struct.point19, align 8 + %4 = bitcast %struct.point19* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point19* %2 to i8* + %6 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point19* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo20([2 x i64] %0) #0 { + %2 = alloca %struct.point20, align 8 + %3 = alloca %struct.point20, align 8 + %4 = bitcast %struct.point20* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point20* %2 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point20* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 8 + %3 = alloca %struct.point21, align 8 + %4 = bitcast %struct.point21* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point21* %2 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point21* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { i64, float } @demo22(i64 %0, float %1) #0 { + %3 = alloca %struct.point22, align 8 + %4 = alloca %struct.point22, align 8 + %5 = bitcast %struct.point22* %4 to { i64, float }* + %6 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point22* %3 to i8* + %9 = bitcast %struct.point22* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point22* %3 to { i64, float }* + %11 = getelementptr inbounds { i64, float }, { i64, float }* %10, i32 0, i32 0 + %12 = load i64, i64* %11, align 8 + %13 = getelementptr inbounds { i64, float }, { i64, float }* %10, i32 0, i32 1 + %14 = load float, float* %13, align 8 + %15 = insertvalue { i64, float } undef, i64 %12, 0 + %16 = insertvalue { i64, float } %15, float %14, 1 + ret { i64, float } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo23([2 x i64] %0) #0 { + %2 = alloca %struct.point23, align 8 + %3 = alloca %struct.point23, align 8 + %4 = bitcast %struct.point23* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point23* %2 to i8* + %6 = bitcast %struct.point23* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point23* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo24([2 x i64] %0) #0 { + %2 = alloca %struct.point24, align 8 + %3 = alloca %struct.point24, align 8 + %4 = bitcast %struct.point24* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point24* %2 to i8* + %6 = bitcast %struct.point24* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point24* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i8 } @demo25(float %0, i8 %1) #0 { + %3 = alloca %struct.point25, align 4 + %4 = alloca %struct.point25, align 4 + %5 = bitcast %struct.point25* %4 to { float, i8 }* + %6 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i8 }, { float, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 4 + %8 = bitcast %struct.point25* %3 to i8* + %9 = bitcast %struct.point25* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point25* %3 to { float, i8 }* + %11 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i8 }, { float, i8 }* %10, i32 0, i32 1 + %14 = load i8, i8* %13, align 4 + %15 = insertvalue { float, i8 } undef, float %12, 0 + %16 = insertvalue { float, i8 } %15, i8 %14, 1 + ret { float, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i16 } @demo26(float %0, i16 %1) #0 { + %3 = alloca %struct.point26, align 4 + %4 = alloca %struct.point26, align 4 + %5 = bitcast %struct.point26* %4 to { float, i16 }* + %6 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i16 }, { float, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 4 + %8 = bitcast %struct.point26* %3 to i8* + %9 = bitcast %struct.point26* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point26* %3 to { float, i16 }* + %11 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i16 }, { float, i16 }* %10, i32 0, i32 1 + %14 = load i16, i16* %13, align 4 + %15 = insertvalue { float, i16 } undef, float %12, 0 + %16 = insertvalue { float, i16 } %15, i16 %14, 1 + ret { float, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i32 } @demo27(float %0, i32 %1) #0 { + %3 = alloca %struct.point27, align 4 + %4 = alloca %struct.point27, align 4 + %5 = bitcast %struct.point27* %4 to { float, i32 }* + %6 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 0 + store float %0, float* %6, align 4 + %7 = getelementptr inbounds { float, i32 }, { float, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 4 + %8 = bitcast %struct.point27* %3 to i8* + %9 = bitcast %struct.point27* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 8, i1 false) + %10 = bitcast %struct.point27* %3 to { float, i32 }* + %11 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = getelementptr inbounds { float, i32 }, { float, i32 }* %10, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = insertvalue { float, i32 } undef, float %12, 0 + %16 = insertvalue { float, i32 } %15, i32 %14, 1 + ret { float, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local { float, i64 } @demo28(float %0, i64 %1) #0 { + %3 = alloca %struct.point28, align 8 + %4 = alloca %struct.point28, align 8 + %5 = bitcast %struct.point28* %4 to { float, i64 }* + %6 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point28* %3 to i8* + %9 = bitcast %struct.point28* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point28* %3 to { float, i64 }* + %11 = getelementptr inbounds { float, i64 }, { float, i64 }* %10, i32 0, i32 0 + %12 = load float, float* %11, align 8 + %13 = getelementptr inbounds { float, i64 }, { float, i64 }* %10, i32 0, i32 1 + %14 = load i64, i64* %13, align 8 + %15 = insertvalue { float, i64 } undef, float %12, 0 + %16 = insertvalue { float, i64 } %15, i64 %14, 1 + ret { float, i64 } %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo29([2 x i64] %0) #0 { + %2 = alloca %struct.point29, align 8 + %3 = alloca %struct.point29, align 8 + %4 = bitcast %struct.point29* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point29* %2 to i8* + %6 = bitcast %struct.point29* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point29* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo30([2 x i64] %0) #0 { + %2 = alloca %struct.point30, align 8 + %3 = alloca %struct.point30, align 8 + %4 = bitcast %struct.point30* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo31([2 x i64] %0) #0 { + %2 = alloca %struct.point31, align 8 + %3 = alloca %struct.point31, align 8 + %4 = bitcast %struct.point31* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point31* %2 to i8* + %6 = bitcast %struct.point31* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point31* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo32([2 x i64] %0) #0 { + %2 = alloca %struct.point32, align 8 + %3 = alloca %struct.point32, align 8 + %4 = bitcast %struct.point32* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point32* %2 to i8* + %6 = bitcast %struct.point32* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point32* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo33([2 x i64] %0) #0 { + %2 = alloca %struct.point33, align 8 + %3 = alloca %struct.point33, align 8 + %4 = bitcast %struct.point33* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point33* %2 to i8* + %6 = bitcast %struct.point33* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point33* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo34([2 x i64] %0) #0 { + %2 = alloca %struct.point34, align 8 + %3 = alloca %struct.point34, align 8 + %4 = bitcast %struct.point34* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point34* %2 to i8* + %6 = bitcast %struct.point34* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point34* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo35([2 x i64] %0) #0 { + %2 = alloca %struct.point35, align 8 + %3 = alloca %struct.point35, align 8 + %4 = bitcast %struct.point35* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point35* %2 to i8* + %6 = bitcast %struct.point35* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point35* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo36([2 x i64] %0) #0 { + %2 = alloca %struct.point36, align 8 + %3 = alloca %struct.point36, align 8 + %4 = bitcast %struct.point36* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point36* %2 to i8* + %6 = bitcast %struct.point36* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point36* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo37([2 x i64] %0) #0 { + %2 = alloca %struct.point37, align 8 + %3 = alloca %struct.point37, align 8 + %4 = bitcast %struct.point37* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo38([2 x i64] %0) #0 { + %2 = alloca %struct.point38, align 8 + %3 = alloca %struct.point38, align 8 + %4 = bitcast %struct.point38* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo39([2 x i64] %0) #0 { + %2 = alloca %struct.point39, align 8 + %3 = alloca %struct.point39, align 8 + %4 = bitcast %struct.point39* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo40([2 x i64] %0) #0 { + %2 = alloca %struct.point40, align 8 + %3 = alloca %struct.point40, align 8 + %4 = bitcast %struct.point40* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point40* %2 to i8* + %6 = bitcast %struct.point40* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point40* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo41([2 x i64] %0) #0 { + %2 = alloca %struct.point41, align 8 + %3 = alloca %struct.point41, align 8 + %4 = bitcast %struct.point41* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo42([2 x i64] %0) #0 { + %2 = alloca %struct.point42, align 8 + %3 = alloca %struct.point42, align 8 + %4 = bitcast %struct.point42* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point42* %2 to i8* + %6 = bitcast %struct.point42* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point42* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo43(i64 %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo44(i64 %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo45(i64 %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point45* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo46(i64 %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point46* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo47([2 x i64] %0) #0 { + %2 = alloca %struct.point47, align 4 + %3 = alloca %struct.point47, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point47* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point47* %2 to i8* + %9 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point47* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo48([2 x i64] %0) #0 { + %2 = alloca %struct.point48, align 4 + %3 = alloca %struct.point48, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point48* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point48* %2 to i8* + %9 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point48* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo49(i64 %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point49* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo50([2 x i64] %0) #0 { + %2 = alloca %struct.point50, align 2 + %3 = alloca %struct.point50, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point50* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point50* %2 to i8* + %9 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point50* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo51([2 x i64] %0) #0 { + %2 = alloca %struct.point51, align 2 + %3 = alloca %struct.point51, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point51* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point51* %2 to i8* + %9 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point51* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo52([2 x i64] %0) #0 { + %2 = alloca %struct.point52, align 4 + %3 = alloca %struct.point52, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point52* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point52* %2 to i8* + %9 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point52* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo53([2 x i64] %0) #0 { + %2 = alloca %struct.point53, align 4 + %3 = alloca %struct.point53, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point53* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point53* %2 to i8* + %9 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point53* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo54([2 x i64] %0) #0 { + %2 = alloca %struct.point54, align 4 + %3 = alloca %struct.point54, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point54* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point54* %2 to i8* + %9 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point54* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo55([2 x i64] %0) #0 { + %2 = alloca %struct.point55, align 4 + %3 = alloca %struct.point55, align 4 + %4 = bitcast %struct.point55* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point55* %2 to i8* + %6 = bitcast %struct.point55* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point55* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo56([2 x i64] %0) #0 { + %2 = alloca %struct.point56, align 4 + %3 = alloca %struct.point56, align 4 + %4 = bitcast %struct.point56* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point56* %2 to i8* + %6 = bitcast %struct.point56* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point56* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo57([2 x i64] %0) #0 { + %2 = alloca %struct.point57, align 4 + %3 = alloca %struct.point57, align 4 + %4 = bitcast %struct.point57* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point57* %2 to i8* + %6 = bitcast %struct.point57* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point57* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo58([2 x i64] %0) #0 { + %2 = alloca %struct.point58, align 4 + %3 = alloca %struct.point58, align 4 + %4 = bitcast %struct.point58* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point58* %2 to i8* + %6 = bitcast %struct.point58* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point58* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo59([2 x i64] %0) #0 { + %2 = alloca %struct.point59, align 4 + %3 = alloca %struct.point59, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point59* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point59* %2 to i8* + %9 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point59* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo60([2 x i64] %0) #0 { + %2 = alloca %struct.point60, align 4 + %3 = alloca %struct.point60, align 4 + %4 = bitcast %struct.point60* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point60* %2 to i8* + %6 = bitcast %struct.point60* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point60* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo61([2 x i64] %0) #0 { + %2 = alloca %struct.point61, align 4 + %3 = alloca %struct.point61, align 4 + %4 = bitcast %struct.point61* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point61* %2 to i8* + %6 = bitcast %struct.point61* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point61* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo62([2 x i64] %0) #0 { + %2 = alloca %struct.point62, align 4 + %3 = alloca %struct.point62, align 4 + %4 = bitcast %struct.point62* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point62* %2 to i8* + %6 = bitcast %struct.point62* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point62* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo63([2 x i64] %0) #0 { + %2 = alloca %struct.point63, align 4 + %3 = alloca %struct.point63, align 4 + %4 = bitcast %struct.point63* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point63* %2 to i8* + %6 = bitcast %struct.point63* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point63* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo64(i64 %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo65(i64 %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point65* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo66(i64 %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point66* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo67([2 x i64] %0) #0 { + %2 = alloca %struct.point67, align 2 + %3 = alloca %struct.point67, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point67* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point67* %2 to i8* + %9 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point67* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo68([2 x i64] %0) #0 { + %2 = alloca %struct.point68, align 4 + %3 = alloca %struct.point68, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point68* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point68* %2 to i8* + %9 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point68* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo69([2 x i64] %0) #0 { + %2 = alloca %struct.point69, align 4 + %3 = alloca %struct.point69, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point69* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point69* %2 to i8* + %9 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point69* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo70(i64 %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point70* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo71([2 x i64] %0) #0 { + %2 = alloca %struct.point71, align 2 + %3 = alloca %struct.point71, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point71* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point71* %2 to i8* + %9 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point71* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo72([2 x i64] %0) #0 { + %2 = alloca %struct.point72, align 2 + %3 = alloca %struct.point72, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point72* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point72* %2 to i8* + %9 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point72* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo73([2 x i64] %0) #0 { + %2 = alloca %struct.point73, align 4 + %3 = alloca %struct.point73, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point73* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point73* %2 to i8* + %9 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point73* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo74([2 x i64] %0) #0 { + %2 = alloca %struct.point74, align 4 + %3 = alloca %struct.point74, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point74* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point74* %2 to i8* + %9 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point74* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo75([2 x i64] %0) #0 { + %2 = alloca %struct.point75, align 4 + %3 = alloca %struct.point75, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point75* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point75* %2 to i8* + %9 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point75* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo76([2 x i64] %0) #0 { + %2 = alloca %struct.point76, align 4 + %3 = alloca %struct.point76, align 4 + %4 = bitcast %struct.point76* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point76* %2 to i8* + %6 = bitcast %struct.point76* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point76* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo77([2 x i64] %0) #0 { + %2 = alloca %struct.point77, align 4 + %3 = alloca %struct.point77, align 4 + %4 = bitcast %struct.point77* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point77* %2 to i8* + %6 = bitcast %struct.point77* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point77* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo78([2 x i64] %0) #0 { + %2 = alloca %struct.point78, align 4 + %3 = alloca %struct.point78, align 4 + %4 = bitcast %struct.point78* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point78* %2 to i8* + %6 = bitcast %struct.point78* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point78* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo79([2 x i64] %0) #0 { + %2 = alloca %struct.point79, align 4 + %3 = alloca %struct.point79, align 4 + %4 = bitcast %struct.point79* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point79* %2 to i8* + %6 = bitcast %struct.point79* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point79* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo80([2 x i64] %0) #0 { + %2 = alloca %struct.point80, align 4 + %3 = alloca %struct.point80, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point80* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point80* %2 to i8* + %9 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point80* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo81([2 x i64] %0) #0 { + %2 = alloca %struct.point81, align 4 + %3 = alloca %struct.point81, align 4 + %4 = bitcast %struct.point81* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point81* %2 to i8* + %6 = bitcast %struct.point81* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point81* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo82([2 x i64] %0) #0 { + %2 = alloca %struct.point82, align 4 + %3 = alloca %struct.point82, align 4 + %4 = bitcast %struct.point82* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point82* %2 to i8* + %6 = bitcast %struct.point82* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point82* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo83([2 x i64] %0) #0 { + %2 = alloca %struct.point83, align 4 + %3 = alloca %struct.point83, align 4 + %4 = bitcast %struct.point83* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point83* %2 to i8* + %6 = bitcast %struct.point83* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point83* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo84([2 x i64] %0) #0 { + %2 = alloca %struct.point84, align 4 + %3 = alloca %struct.point84, align 4 + %4 = bitcast %struct.point84* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point84* %2 to i8* + %6 = bitcast %struct.point84* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point84* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo85(i64 %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point85* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo86([2 x i64] %0) #0 { + %2 = alloca %struct.point86, align 4 + %3 = alloca %struct.point86, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point86* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point86* %2 to i8* + %9 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point86* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo87([2 x i64] %0) #0 { + %2 = alloca %struct.point87, align 4 + %3 = alloca %struct.point87, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point87* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point87* %2 to i8* + %9 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point87* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo88([2 x i64] %0) #0 { + %2 = alloca %struct.point88, align 4 + %3 = alloca %struct.point88, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point88* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point88* %2 to i8* + %9 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point88* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo89([2 x i64] %0) #0 { + %2 = alloca %struct.point89, align 4 + %3 = alloca %struct.point89, align 4 + %4 = bitcast %struct.point89* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point89* %2 to i8* + %6 = bitcast %struct.point89* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point89* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo90([2 x i64] %0) #0 { + %2 = alloca %struct.point90, align 4 + %3 = alloca %struct.point90, align 4 + %4 = bitcast %struct.point90* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point90* %2 to i8* + %6 = bitcast %struct.point90* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point90* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo91([2 x i64] %0) #0 { + %2 = alloca %struct.point91, align 4 + %3 = alloca %struct.point91, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point91* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point91* %2 to i8* + %9 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point91* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo92([2 x i64] %0) #0 { + %2 = alloca %struct.point92, align 4 + %3 = alloca %struct.point92, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point92* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point92* %2 to i8* + %9 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point92* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo93([2 x i64] %0) #0 { + %2 = alloca %struct.point93, align 4 + %3 = alloca %struct.point93, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point93* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point93* %2 to i8* + %9 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point93* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo94([2 x i64] %0) #0 { + %2 = alloca %struct.point94, align 4 + %3 = alloca %struct.point94, align 4 + %4 = bitcast %struct.point94* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point94* %2 to i8* + %6 = bitcast %struct.point94* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point94* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo95([2 x i64] %0) #0 { + %2 = alloca %struct.point95, align 4 + %3 = alloca %struct.point95, align 4 + %4 = bitcast %struct.point95* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point95* %2 to i8* + %6 = bitcast %struct.point95* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point95* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo96([2 x i64] %0) #0 { + %2 = alloca %struct.point96, align 4 + %3 = alloca %struct.point96, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point96* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point96* %2 to i8* + %9 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point96* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo97([2 x i64] %0) #0 { + %2 = alloca %struct.point97, align 4 + %3 = alloca %struct.point97, align 4 + %4 = bitcast %struct.point97* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point97* %2 to i8* + %6 = bitcast %struct.point97* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point97* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo98([2 x i64] %0) #0 { + %2 = alloca %struct.point98, align 4 + %3 = alloca %struct.point98, align 4 + %4 = bitcast %struct.point98* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point98* %2 to i8* + %6 = bitcast %struct.point98* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point98* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo99([2 x i64] %0) #0 { + %2 = alloca %struct.point99, align 4 + %3 = alloca %struct.point99, align 4 + %4 = bitcast %struct.point99* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point99* %2 to i8* + %6 = bitcast %struct.point99* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point99* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo100([2 x i64] %0) #0 { + %2 = alloca %struct.point100, align 4 + %3 = alloca %struct.point100, align 4 + %4 = bitcast %struct.point100* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point100* %2 to i8* + %6 = bitcast %struct.point100* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point100* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo101([2 x i64] %0) #0 { + %2 = alloca %struct.point101, align 4 + %3 = alloca %struct.point101, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point101* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point101* %2 to i8* + %9 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point101* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo102([2 x i64] %0) #0 { + %2 = alloca %struct.point102, align 4 + %3 = alloca %struct.point102, align 4 + %4 = bitcast %struct.point102* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point102* %2 to i8* + %6 = bitcast %struct.point102* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point102* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo103([2 x i64] %0) #0 { + %2 = alloca %struct.point103, align 4 + %3 = alloca %struct.point103, align 4 + %4 = bitcast %struct.point103* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point103* %2 to i8* + %6 = bitcast %struct.point103* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point103* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo104([2 x i64] %0) #0 { + %2 = alloca %struct.point104, align 4 + %3 = alloca %struct.point104, align 4 + %4 = bitcast %struct.point104* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point104* %2 to i8* + %6 = bitcast %struct.point104* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point104* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo105([2 x i64] %0) #0 { + %2 = alloca %struct.point105, align 4 + %3 = alloca %struct.point105, align 4 + %4 = bitcast %struct.point105* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point105* %2 to i8* + %6 = bitcast %struct.point105* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point105* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo106(i64 %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point106* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo107([2 x i64] %0) #0 { + %2 = alloca %struct.point107, align 4 + %3 = alloca %struct.point107, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point107* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point107* %2 to i8* + %9 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point107* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo108([2 x i64] %0) #0 { + %2 = alloca %struct.point108, align 4 + %3 = alloca %struct.point108, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point108* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point108* %2 to i8* + %9 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point108* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo109([2 x i64] %0) #0 { + %2 = alloca %struct.point109, align 4 + %3 = alloca %struct.point109, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point109* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point109* %2 to i8* + %9 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point109* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo110([2 x i64] %0) #0 { + %2 = alloca %struct.point110, align 4 + %3 = alloca %struct.point110, align 4 + %4 = bitcast %struct.point110* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point110* %2 to i8* + %6 = bitcast %struct.point110* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point110* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo111([2 x i64] %0) #0 { + %2 = alloca %struct.point111, align 4 + %3 = alloca %struct.point111, align 4 + %4 = bitcast %struct.point111* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point111* %2 to i8* + %6 = bitcast %struct.point111* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point111* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo112([2 x i64] %0) #0 { + %2 = alloca %struct.point112, align 4 + %3 = alloca %struct.point112, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point112* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point112* %2 to i8* + %9 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point112* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo113([2 x i64] %0) #0 { + %2 = alloca %struct.point113, align 4 + %3 = alloca %struct.point113, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point113* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point113* %2 to i8* + %9 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point113* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo114([2 x i64] %0) #0 { + %2 = alloca %struct.point114, align 4 + %3 = alloca %struct.point114, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point114* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point114* %2 to i8* + %9 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point114* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo115([2 x i64] %0) #0 { + %2 = alloca %struct.point115, align 4 + %3 = alloca %struct.point115, align 4 + %4 = bitcast %struct.point115* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point115* %2 to i8* + %6 = bitcast %struct.point115* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point115* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo116([2 x i64] %0) #0 { + %2 = alloca %struct.point116, align 4 + %3 = alloca %struct.point116, align 4 + %4 = bitcast %struct.point116* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point116* %2 to i8* + %6 = bitcast %struct.point116* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point116* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo117([2 x i64] %0) #0 { + %2 = alloca %struct.point117, align 4 + %3 = alloca %struct.point117, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point117* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point117* %2 to i8* + %9 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point117* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo118([2 x i64] %0) #0 { + %2 = alloca %struct.point118, align 4 + %3 = alloca %struct.point118, align 4 + %4 = bitcast %struct.point118* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point118* %2 to i8* + %6 = bitcast %struct.point118* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point118* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo119([2 x i64] %0) #0 { + %2 = alloca %struct.point119, align 4 + %3 = alloca %struct.point119, align 4 + %4 = bitcast %struct.point119* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point119* %2 to i8* + %6 = bitcast %struct.point119* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point119* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo120([2 x i64] %0) #0 { + %2 = alloca %struct.point120, align 4 + %3 = alloca %struct.point120, align 4 + %4 = bitcast %struct.point120* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point120* %2 to i8* + %6 = bitcast %struct.point120* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point120* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo121([2 x i64] %0) #0 { + %2 = alloca %struct.point121, align 4 + %3 = alloca %struct.point121, align 4 + %4 = bitcast %struct.point121* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point121* %2 to i8* + %6 = bitcast %struct.point121* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point121* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo122([2 x i64] %0) #0 { + %2 = alloca %struct.point122, align 4 + %3 = alloca %struct.point122, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point122* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point122* %2 to i8* + %9 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point122* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo123([2 x i64] %0) #0 { + %2 = alloca %struct.point123, align 4 + %3 = alloca %struct.point123, align 4 + %4 = bitcast %struct.point123* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point123* %2 to i8* + %6 = bitcast %struct.point123* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point123* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo124([2 x i64] %0) #0 { + %2 = alloca %struct.point124, align 4 + %3 = alloca %struct.point124, align 4 + %4 = bitcast %struct.point124* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point124* %2 to i8* + %6 = bitcast %struct.point124* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point124* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo125([2 x i64] %0) #0 { + %2 = alloca %struct.point125, align 4 + %3 = alloca %struct.point125, align 4 + %4 = bitcast %struct.point125* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point125* %2 to i8* + %6 = bitcast %struct.point125* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point125* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo126([2 x i64] %0) #0 { + %2 = alloca %struct.point126, align 4 + %3 = alloca %struct.point126, align 4 + %4 = bitcast %struct.point126* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point126* %2 to i8* + %6 = bitcast %struct.point126* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point126* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo127([2 x i64] %0) #0 { + %2 = alloca %struct.point127, align 4 + %3 = alloca %struct.point127, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point127* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point127* %2 to i8* + %9 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point127* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo128([2 x i64] %0) #0 { + %2 = alloca %struct.point128, align 4 + %3 = alloca %struct.point128, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point128* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point128* %2 to i8* + %9 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point128* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo129([2 x i64] %0) #0 { + %2 = alloca %struct.point129, align 4 + %3 = alloca %struct.point129, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point129* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point129* %2 to i8* + %9 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point129* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo130([2 x i64] %0) #0 { + %2 = alloca %struct.point130, align 4 + %3 = alloca %struct.point130, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point130* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point130* %2 to i8* + %9 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point130* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo131([2 x i64] %0) #0 { + %2 = alloca %struct.point131, align 4 + %3 = alloca %struct.point131, align 4 + %4 = bitcast %struct.point131* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point131* %2 to i8* + %6 = bitcast %struct.point131* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point131* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo132([2 x i64] %0) #0 { + %2 = alloca %struct.point132, align 4 + %3 = alloca %struct.point132, align 4 + %4 = bitcast %struct.point132* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point132* %2 to i8* + %6 = bitcast %struct.point132* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point132* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo133([2 x i64] %0) #0 { + %2 = alloca %struct.point133, align 4 + %3 = alloca %struct.point133, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point133* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point133* %2 to i8* + %9 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point133* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo134([2 x i64] %0) #0 { + %2 = alloca %struct.point134, align 4 + %3 = alloca %struct.point134, align 4 + %4 = bitcast %struct.point134* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point134* %2 to i8* + %6 = bitcast %struct.point134* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point134* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo135([2 x i64] %0) #0 { + %2 = alloca %struct.point135, align 4 + %3 = alloca %struct.point135, align 4 + %4 = bitcast %struct.point135* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point135* %2 to i8* + %6 = bitcast %struct.point135* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point135* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo136([2 x i64] %0) #0 { + %2 = alloca %struct.point136, align 4 + %3 = alloca %struct.point136, align 4 + %4 = bitcast %struct.point136* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point136* %2 to i8* + %6 = bitcast %struct.point136* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point136* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo137([2 x i64] %0) #0 { + %2 = alloca %struct.point137, align 4 + %3 = alloca %struct.point137, align 4 + %4 = bitcast %struct.point137* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point137* %2 to i8* + %6 = bitcast %struct.point137* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point137* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo138([2 x i64] %0) #0 { + %2 = alloca %struct.point138, align 4 + %3 = alloca %struct.point138, align 4 + %4 = bitcast %struct.point138* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point138* %2 to i8* + %6 = bitcast %struct.point138* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point138* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo143([2 x i64] %0) #0 { + %2 = alloca %struct.point143, align 4 + %3 = alloca %struct.point143, align 4 + %4 = bitcast %struct.point143* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point143* %2 to i8* + %6 = bitcast %struct.point143* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point143* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo148([2 x i64] %0) #0 { + %2 = alloca %struct.point148, align 4 + %3 = alloca %struct.point148, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point148* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point148* %2 to i8* + %9 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point148* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo149([2 x i64] %0) #0 { + %2 = alloca %struct.point149, align 4 + %3 = alloca %struct.point149, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point149* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point149* %2 to i8* + %9 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point149* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo150([2 x i64] %0) #0 { + %2 = alloca %struct.point150, align 4 + %3 = alloca %struct.point150, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point150* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point150* %2 to i8* + %9 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point150* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo151([2 x i64] %0) #0 { + %2 = alloca %struct.point151, align 4 + %3 = alloca %struct.point151, align 4 + %4 = bitcast %struct.point151* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point151* %2 to i8* + %6 = bitcast %struct.point151* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point151* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo152([2 x i64] %0) #0 { + %2 = alloca %struct.point152, align 4 + %3 = alloca %struct.point152, align 4 + %4 = bitcast %struct.point152* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point152* %2 to i8* + %6 = bitcast %struct.point152* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point152* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo153([2 x i64] %0) #0 { + %2 = alloca %struct.point153, align 4 + %3 = alloca %struct.point153, align 4 + %4 = bitcast %struct.point153* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point153* %2 to i8* + %6 = bitcast %struct.point153* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point153* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo154([2 x i64] %0) #0 { + %2 = alloca %struct.point154, align 4 + %3 = alloca %struct.point154, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point154* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point154* %2 to i8* + %9 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point154* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo155([2 x i64] %0) #0 { + %2 = alloca %struct.point155, align 4 + %3 = alloca %struct.point155, align 4 + %4 = bitcast %struct.point155* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point155* %2 to i8* + %6 = bitcast %struct.point155* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point155* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo156([2 x i64] %0) #0 { + %2 = alloca %struct.point156, align 4 + %3 = alloca %struct.point156, align 4 + %4 = bitcast %struct.point156* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point156* %2 to i8* + %6 = bitcast %struct.point156* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point156* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo157([2 x i64] %0) #0 { + %2 = alloca %struct.point157, align 4 + %3 = alloca %struct.point157, align 4 + %4 = bitcast %struct.point157* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point157* %2 to i8* + %6 = bitcast %struct.point157* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point157* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo158([2 x i64] %0) #0 { + %2 = alloca %struct.point158, align 4 + %3 = alloca %struct.point158, align 4 + %4 = bitcast %struct.point158* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point158* %2 to i8* + %6 = bitcast %struct.point158* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point158* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo159([2 x i64] %0) #0 { + %2 = alloca %struct.point159, align 4 + %3 = alloca %struct.point159, align 4 + %4 = bitcast %struct.point159* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point159* %2 to i8* + %6 = bitcast %struct.point159* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point159* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo164([2 x i64] %0) #0 { + %2 = alloca %struct.point164, align 4 + %3 = alloca %struct.point164, align 4 + %4 = bitcast %struct.point164* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point164* %2 to i8* + %6 = bitcast %struct.point164* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point164* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo169([2 x i64] %0) #0 { + %2 = alloca %struct.point169, align 4 + %3 = alloca %struct.point169, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point169* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point169* %2 to i8* + %9 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point169* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo170([2 x i64] %0) #0 { + %2 = alloca %struct.point170, align 4 + %3 = alloca %struct.point170, align 4 + %4 = bitcast %struct.point170* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point170* %2 to i8* + %6 = bitcast %struct.point170* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point170* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo171([2 x i64] %0) #0 { + %2 = alloca %struct.point171, align 4 + %3 = alloca %struct.point171, align 4 + %4 = bitcast %struct.point171* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point171* %2 to i8* + %6 = bitcast %struct.point171* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point171* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo172([2 x i64] %0) #0 { + %2 = alloca %struct.point172, align 4 + %3 = alloca %struct.point172, align 4 + %4 = bitcast %struct.point172* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point172* %2 to i8* + %6 = bitcast %struct.point172* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point172* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo175([2 x i64] %0) #0 { + %2 = alloca %struct.point175, align 4 + %3 = alloca %struct.point175, align 4 + %4 = bitcast %struct.point175* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point175* %2 to i8* + %6 = bitcast %struct.point175* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point175* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo176([2 x i64] %0) #0 { + %2 = alloca %struct.point176, align 4 + %3 = alloca %struct.point176, align 4 + %4 = bitcast %struct.point176* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point176* %2 to i8* + %6 = bitcast %struct.point176* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point176* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo177([2 x i64] %0) #0 { + %2 = alloca %struct.point177, align 4 + %3 = alloca %struct.point177, align 4 + %4 = bitcast %struct.point177* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point177* %2 to i8* + %6 = bitcast %struct.point177* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point177* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo180([2 x i64] %0) #0 { + %2 = alloca %struct.point180, align 4 + %3 = alloca %struct.point180, align 4 + %4 = bitcast %struct.point180* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point180* %2 to i8* + %6 = bitcast %struct.point180* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point180* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo185([2 x i64] %0) #0 { + %2 = alloca %struct.point185, align 4 + %3 = alloca %struct.point185, align 4 + %4 = bitcast %struct.point185* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point185* %2 to i8* + %6 = bitcast %struct.point185* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point185* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo190([2 x i64] %0) #0 { + %2 = alloca %struct.point190, align 4 + %3 = alloca %struct.point190, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point190* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point190* %2 to i8* + %9 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point190* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo191([2 x i64] %0) #0 { + %2 = alloca %struct.point191, align 4 + %3 = alloca %struct.point191, align 4 + %4 = bitcast %struct.point191* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point191* %2 to i8* + %6 = bitcast %struct.point191* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point191* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo192([2 x i64] %0) #0 { + %2 = alloca %struct.point192, align 4 + %3 = alloca %struct.point192, align 4 + %4 = bitcast %struct.point192* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point192* %2 to i8* + %6 = bitcast %struct.point192* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point192* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo193([2 x i64] %0) #0 { + %2 = alloca %struct.point193, align 4 + %3 = alloca %struct.point193, align 4 + %4 = bitcast %struct.point193* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point193* %2 to i8* + %6 = bitcast %struct.point193* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point193* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo196([2 x i64] %0) #0 { + %2 = alloca %struct.point196, align 4 + %3 = alloca %struct.point196, align 4 + %4 = bitcast %struct.point196* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point196* %2 to i8* + %6 = bitcast %struct.point196* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point196* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo197([2 x i64] %0) #0 { + %2 = alloca %struct.point197, align 4 + %3 = alloca %struct.point197, align 4 + %4 = bitcast %struct.point197* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point197* %2 to i8* + %6 = bitcast %struct.point197* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point197* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo198([2 x i64] %0) #0 { + %2 = alloca %struct.point198, align 4 + %3 = alloca %struct.point198, align 4 + %4 = bitcast %struct.point198* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point198* %2 to i8* + %6 = bitcast %struct.point198* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point198* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo201([2 x i64] %0) #0 { + %2 = alloca %struct.point201, align 4 + %3 = alloca %struct.point201, align 4 + %4 = bitcast %struct.point201* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point201* %2 to i8* + %6 = bitcast %struct.point201* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point201* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo206([2 x i64] %0) #0 { + %2 = alloca %struct.point206, align 4 + %3 = alloca %struct.point206, align 4 + %4 = bitcast %struct.point206* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point206* %2 to i8* + %6 = bitcast %struct.point206* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point206* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo211([2 x i64] %0) #0 { + %2 = alloca %struct.point211, align 4 + %3 = alloca %struct.point211, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point211* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point211* %2 to i8* + %9 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point211* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo212([2 x i64] %0) #0 { + %2 = alloca %struct.point212, align 4 + %3 = alloca %struct.point212, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point212* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point212* %2 to i8* + %9 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point212* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo213([2 x i64] %0) #0 { + %2 = alloca %struct.point213, align 4 + %3 = alloca %struct.point213, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point213* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point213* %2 to i8* + %9 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point213* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo214([2 x i64] %0) #0 { + %2 = alloca %struct.point214, align 4 + %3 = alloca %struct.point214, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point214* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point214* %2 to i8* + %9 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point214* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo215([2 x i64] %0) #0 { + %2 = alloca %struct.point215, align 4 + %3 = alloca %struct.point215, align 4 + %4 = bitcast %struct.point215* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point215* %2 to i8* + %6 = bitcast %struct.point215* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point215* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo216([2 x i64] %0) #0 { + %2 = alloca %struct.point216, align 4 + %3 = alloca %struct.point216, align 4 + %4 = bitcast %struct.point216* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point216* %2 to i8* + %6 = bitcast %struct.point216* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point216* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo217([2 x i64] %0) #0 { + %2 = alloca %struct.point217, align 4 + %3 = alloca %struct.point217, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point217* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point217* %2 to i8* + %9 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point217* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo218([2 x i64] %0) #0 { + %2 = alloca %struct.point218, align 4 + %3 = alloca %struct.point218, align 4 + %4 = bitcast %struct.point218* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point218* %2 to i8* + %6 = bitcast %struct.point218* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point218* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo219([2 x i64] %0) #0 { + %2 = alloca %struct.point219, align 4 + %3 = alloca %struct.point219, align 4 + %4 = bitcast %struct.point219* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point219* %2 to i8* + %6 = bitcast %struct.point219* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point219* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo220([2 x i64] %0) #0 { + %2 = alloca %struct.point220, align 4 + %3 = alloca %struct.point220, align 4 + %4 = bitcast %struct.point220* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point220* %2 to i8* + %6 = bitcast %struct.point220* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point220* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo221([2 x i64] %0) #0 { + %2 = alloca %struct.point221, align 4 + %3 = alloca %struct.point221, align 4 + %4 = bitcast %struct.point221* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point221* %2 to i8* + %6 = bitcast %struct.point221* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point221* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo222([2 x i64] %0) #0 { + %2 = alloca %struct.point222, align 4 + %3 = alloca %struct.point222, align 4 + %4 = bitcast %struct.point222* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point222* %2 to i8* + %6 = bitcast %struct.point222* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point222* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo227([2 x i64] %0) #0 { + %2 = alloca %struct.point227, align 4 + %3 = alloca %struct.point227, align 4 + %4 = bitcast %struct.point227* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point227* %2 to i8* + %6 = bitcast %struct.point227* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point227* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo232([2 x i64] %0) #0 { + %2 = alloca %struct.point232, align 4 + %3 = alloca %struct.point232, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point232* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point232* %2 to i8* + %9 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point232* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo233([2 x i64] %0) #0 { + %2 = alloca %struct.point233, align 4 + %3 = alloca %struct.point233, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point233* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point233* %2 to i8* + %9 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point233* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo234([2 x i64] %0) #0 { + %2 = alloca %struct.point234, align 4 + %3 = alloca %struct.point234, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point234* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point234* %2 to i8* + %9 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point234* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo235([2 x i64] %0) #0 { + %2 = alloca %struct.point235, align 4 + %3 = alloca %struct.point235, align 4 + %4 = bitcast %struct.point235* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point235* %2 to i8* + %6 = bitcast %struct.point235* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point235* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo236([2 x i64] %0) #0 { + %2 = alloca %struct.point236, align 4 + %3 = alloca %struct.point236, align 4 + %4 = bitcast %struct.point236* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point236* %2 to i8* + %6 = bitcast %struct.point236* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point236* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo237([2 x i64] %0) #0 { + %2 = alloca %struct.point237, align 4 + %3 = alloca %struct.point237, align 4 + %4 = bitcast %struct.point237* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point237* %2 to i8* + %6 = bitcast %struct.point237* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point237* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo238([2 x i64] %0) #0 { + %2 = alloca %struct.point238, align 4 + %3 = alloca %struct.point238, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point238* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point238* %2 to i8* + %9 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point238* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo239([2 x i64] %0) #0 { + %2 = alloca %struct.point239, align 4 + %3 = alloca %struct.point239, align 4 + %4 = bitcast %struct.point239* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point239* %2 to i8* + %6 = bitcast %struct.point239* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point239* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo240([2 x i64] %0) #0 { + %2 = alloca %struct.point240, align 4 + %3 = alloca %struct.point240, align 4 + %4 = bitcast %struct.point240* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point240* %2 to i8* + %6 = bitcast %struct.point240* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point240* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo241([2 x i64] %0) #0 { + %2 = alloca %struct.point241, align 4 + %3 = alloca %struct.point241, align 4 + %4 = bitcast %struct.point241* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point241* %2 to i8* + %6 = bitcast %struct.point241* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point241* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo242([2 x i64] %0) #0 { + %2 = alloca %struct.point242, align 4 + %3 = alloca %struct.point242, align 4 + %4 = bitcast %struct.point242* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point242* %2 to i8* + %6 = bitcast %struct.point242* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point242* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo243([2 x i64] %0) #0 { + %2 = alloca %struct.point243, align 4 + %3 = alloca %struct.point243, align 4 + %4 = bitcast %struct.point243* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point243* %2 to i8* + %6 = bitcast %struct.point243* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point243* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo248([2 x i64] %0) #0 { + %2 = alloca %struct.point248, align 4 + %3 = alloca %struct.point248, align 4 + %4 = bitcast %struct.point248* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point248* %2 to i8* + %6 = bitcast %struct.point248* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point248* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo253([2 x i64] %0) #0 { + %2 = alloca %struct.point253, align 4 + %3 = alloca %struct.point253, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point253* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point253* %2 to i8* + %9 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point253* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo254([2 x i64] %0) #0 { + %2 = alloca %struct.point254, align 4 + %3 = alloca %struct.point254, align 4 + %4 = bitcast %struct.point254* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point254* %2 to i8* + %6 = bitcast %struct.point254* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point254* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo255([2 x i64] %0) #0 { + %2 = alloca %struct.point255, align 4 + %3 = alloca %struct.point255, align 4 + %4 = bitcast %struct.point255* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point255* %2 to i8* + %6 = bitcast %struct.point255* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point255* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo256([2 x i64] %0) #0 { + %2 = alloca %struct.point256, align 4 + %3 = alloca %struct.point256, align 4 + %4 = bitcast %struct.point256* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point256* %2 to i8* + %6 = bitcast %struct.point256* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point256* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo259([2 x i64] %0) #0 { + %2 = alloca %struct.point259, align 4 + %3 = alloca %struct.point259, align 4 + %4 = bitcast %struct.point259* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point259* %2 to i8* + %6 = bitcast %struct.point259* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point259* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo260([2 x i64] %0) #0 { + %2 = alloca %struct.point260, align 4 + %3 = alloca %struct.point260, align 4 + %4 = bitcast %struct.point260* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point260* %2 to i8* + %6 = bitcast %struct.point260* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point260* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo261([2 x i64] %0) #0 { + %2 = alloca %struct.point261, align 4 + %3 = alloca %struct.point261, align 4 + %4 = bitcast %struct.point261* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point261* %2 to i8* + %6 = bitcast %struct.point261* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point261* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo264([2 x i64] %0) #0 { + %2 = alloca %struct.point264, align 4 + %3 = alloca %struct.point264, align 4 + %4 = bitcast %struct.point264* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point264* %2 to i8* + %6 = bitcast %struct.point264* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point264* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo269([2 x i64] %0) #0 { + %2 = alloca %struct.point269, align 4 + %3 = alloca %struct.point269, align 4 + %4 = bitcast %struct.point269* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point269* %2 to i8* + %6 = bitcast %struct.point269* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point269* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo274([2 x i64] %0) #0 { + %2 = alloca %struct.point274, align 4 + %3 = alloca %struct.point274, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point274* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point274* %2 to i8* + %9 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point274* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo275([2 x i64] %0) #0 { + %2 = alloca %struct.point275, align 4 + %3 = alloca %struct.point275, align 4 + %4 = bitcast %struct.point275* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point275* %2 to i8* + %6 = bitcast %struct.point275* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point275* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo276([2 x i64] %0) #0 { + %2 = alloca %struct.point276, align 4 + %3 = alloca %struct.point276, align 4 + %4 = bitcast %struct.point276* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point276* %2 to i8* + %6 = bitcast %struct.point276* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point276* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo277([2 x i64] %0) #0 { + %2 = alloca %struct.point277, align 4 + %3 = alloca %struct.point277, align 4 + %4 = bitcast %struct.point277* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point277* %2 to i8* + %6 = bitcast %struct.point277* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point277* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo280([2 x i64] %0) #0 { + %2 = alloca %struct.point280, align 4 + %3 = alloca %struct.point280, align 4 + %4 = bitcast %struct.point280* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point280* %2 to i8* + %6 = bitcast %struct.point280* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point280* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo281([2 x i64] %0) #0 { + %2 = alloca %struct.point281, align 4 + %3 = alloca %struct.point281, align 4 + %4 = bitcast %struct.point281* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point281* %2 to i8* + %6 = bitcast %struct.point281* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point281* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo282([2 x i64] %0) #0 { + %2 = alloca %struct.point282, align 4 + %3 = alloca %struct.point282, align 4 + %4 = bitcast %struct.point282* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point282* %2 to i8* + %6 = bitcast %struct.point282* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point282* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo285([2 x i64] %0) #0 { + %2 = alloca %struct.point285, align 4 + %3 = alloca %struct.point285, align 4 + %4 = bitcast %struct.point285* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point285* %2 to i8* + %6 = bitcast %struct.point285* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point285* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo290([2 x i64] %0) #0 { + %2 = alloca %struct.point290, align 4 + %3 = alloca %struct.point290, align 4 + %4 = bitcast %struct.point290* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point290* %2 to i8* + %6 = bitcast %struct.point290* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point290* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo295(i64 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point295* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point295* %2 to i8* + %9 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point295* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo296(i64 %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo297(i64 %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo298(i64 %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point298* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo299([2 x i64] %0) #0 { + %2 = alloca %struct.point299, align 4 + %3 = alloca %struct.point299, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point299* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point299* %2 to i8* + %9 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point299* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo300([2 x i64] %0) #0 { + %2 = alloca %struct.point300, align 4 + %3 = alloca %struct.point300, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point300* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point300* %2 to i8* + %9 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point300* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo301(i64 %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo302(i64 %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point302* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo303(i64 %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point303* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo304([2 x i64] %0) #0 { + %2 = alloca %struct.point304, align 4 + %3 = alloca %struct.point304, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point304* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point304* %2 to i8* + %9 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point304* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo305([2 x i64] %0) #0 { + %2 = alloca %struct.point305, align 4 + %3 = alloca %struct.point305, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point305* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point305* %2 to i8* + %9 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point305* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo306(i64 %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point306* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo307([2 x i64] %0) #0 { + %2 = alloca %struct.point307, align 4 + %3 = alloca %struct.point307, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point307* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point307* %2 to i8* + %9 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point307* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo308([2 x i64] %0) #0 { + %2 = alloca %struct.point308, align 4 + %3 = alloca %struct.point308, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point308* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point308* %2 to i8* + %9 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point308* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo309([2 x i64] %0) #0 { + %2 = alloca %struct.point309, align 4 + %3 = alloca %struct.point309, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point309* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point309* %2 to i8* + %9 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point309* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo310([2 x i64] %0) #0 { + %2 = alloca %struct.point310, align 4 + %3 = alloca %struct.point310, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point310* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point310* %2 to i8* + %9 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point310* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo311(i64 %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point311* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo312([2 x i64] %0) #0 { + %2 = alloca %struct.point312, align 4 + %3 = alloca %struct.point312, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point312* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point312* %2 to i8* + %9 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point312* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo313([2 x i64] %0) #0 { + %2 = alloca %struct.point313, align 4 + %3 = alloca %struct.point313, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point313* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point313* %2 to i8* + %9 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point313* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo314([2 x i64] %0) #0 { + %2 = alloca %struct.point314, align 4 + %3 = alloca %struct.point314, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point314* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point314* %2 to i8* + %9 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point314* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo315([2 x i64] %0) #0 { + %2 = alloca %struct.point315, align 4 + %3 = alloca %struct.point315, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point315* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point315* %2 to i8* + %9 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point315* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo316(i64 %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo317(i64 %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point317* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo318(i64 %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point318* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo319([2 x i64] %0) #0 { + %2 = alloca %struct.point319, align 2 + %3 = alloca %struct.point319, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point319* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point319* %2 to i8* + %9 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point319* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo320([2 x i64] %0) #0 { + %2 = alloca %struct.point320, align 4 + %3 = alloca %struct.point320, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point320* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point320* %2 to i8* + %9 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point320* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo321([2 x i64] %0) #0 { + %2 = alloca %struct.point321, align 4 + %3 = alloca %struct.point321, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point321* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point321* %2 to i8* + %9 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point321* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo322(i64 %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point322* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo323([2 x i64] %0) #0 { + %2 = alloca %struct.point323, align 2 + %3 = alloca %struct.point323, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point323* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point323* %2 to i8* + %9 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point323* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo324([2 x i64] %0) #0 { + %2 = alloca %struct.point324, align 2 + %3 = alloca %struct.point324, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point324* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point324* %2 to i8* + %9 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point324* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo325([2 x i64] %0) #0 { + %2 = alloca %struct.point325, align 4 + %3 = alloca %struct.point325, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point325* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point325* %2 to i8* + %9 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point325* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo326([2 x i64] %0) #0 { + %2 = alloca %struct.point326, align 4 + %3 = alloca %struct.point326, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point326* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point326* %2 to i8* + %9 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point326* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo327([2 x i64] %0) #0 { + %2 = alloca %struct.point327, align 4 + %3 = alloca %struct.point327, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point327* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point327* %2 to i8* + %9 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point327* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo328([2 x i64] %0) #0 { + %2 = alloca %struct.point328, align 4 + %3 = alloca %struct.point328, align 4 + %4 = bitcast %struct.point328* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point328* %2 to i8* + %6 = bitcast %struct.point328* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point328* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo329([2 x i64] %0) #0 { + %2 = alloca %struct.point329, align 4 + %3 = alloca %struct.point329, align 4 + %4 = bitcast %struct.point329* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point329* %2 to i8* + %6 = bitcast %struct.point329* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point329* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo330([2 x i64] %0) #0 { + %2 = alloca %struct.point330, align 4 + %3 = alloca %struct.point330, align 4 + %4 = bitcast %struct.point330* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point330* %2 to i8* + %6 = bitcast %struct.point330* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point330* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo331([2 x i64] %0) #0 { + %2 = alloca %struct.point331, align 4 + %3 = alloca %struct.point331, align 4 + %4 = bitcast %struct.point331* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point331* %2 to i8* + %6 = bitcast %struct.point331* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point331* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo332([2 x i64] %0) #0 { + %2 = alloca %struct.point332, align 4 + %3 = alloca %struct.point332, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point332* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point332* %2 to i8* + %9 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point332* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo333([2 x i64] %0) #0 { + %2 = alloca %struct.point333, align 4 + %3 = alloca %struct.point333, align 4 + %4 = bitcast %struct.point333* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point333* %2 to i8* + %6 = bitcast %struct.point333* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point333* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo334([2 x i64] %0) #0 { + %2 = alloca %struct.point334, align 4 + %3 = alloca %struct.point334, align 4 + %4 = bitcast %struct.point334* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point334* %2 to i8* + %6 = bitcast %struct.point334* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point334* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo335([2 x i64] %0) #0 { + %2 = alloca %struct.point335, align 4 + %3 = alloca %struct.point335, align 4 + %4 = bitcast %struct.point335* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point335* %2 to i8* + %6 = bitcast %struct.point335* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point335* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo336([2 x i64] %0) #0 { + %2 = alloca %struct.point336, align 4 + %3 = alloca %struct.point336, align 4 + %4 = bitcast %struct.point336* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point336* %2 to i8* + %6 = bitcast %struct.point336* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point336* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo337(i64 %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point337* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo338([2 x i64] %0) #0 { + %2 = alloca %struct.point338, align 4 + %3 = alloca %struct.point338, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point338* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point338* %2 to i8* + %9 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point338* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo339([2 x i64] %0) #0 { + %2 = alloca %struct.point339, align 4 + %3 = alloca %struct.point339, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point339* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point339* %2 to i8* + %9 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point339* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo340([2 x i64] %0) #0 { + %2 = alloca %struct.point340, align 4 + %3 = alloca %struct.point340, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point340* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point340* %2 to i8* + %9 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point340* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo341([2 x i64] %0) #0 { + %2 = alloca %struct.point341, align 4 + %3 = alloca %struct.point341, align 4 + %4 = bitcast %struct.point341* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point341* %2 to i8* + %6 = bitcast %struct.point341* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point341* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo342([2 x i64] %0) #0 { + %2 = alloca %struct.point342, align 4 + %3 = alloca %struct.point342, align 4 + %4 = bitcast %struct.point342* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point342* %2 to i8* + %6 = bitcast %struct.point342* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point342* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo343([2 x i64] %0) #0 { + %2 = alloca %struct.point343, align 4 + %3 = alloca %struct.point343, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point343* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point343* %2 to i8* + %9 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point343* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo344([2 x i64] %0) #0 { + %2 = alloca %struct.point344, align 4 + %3 = alloca %struct.point344, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point344* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point344* %2 to i8* + %9 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point344* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo345([2 x i64] %0) #0 { + %2 = alloca %struct.point345, align 4 + %3 = alloca %struct.point345, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point345* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point345* %2 to i8* + %9 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point345* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo346([2 x i64] %0) #0 { + %2 = alloca %struct.point346, align 4 + %3 = alloca %struct.point346, align 4 + %4 = bitcast %struct.point346* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point346* %2 to i8* + %6 = bitcast %struct.point346* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point346* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo347([2 x i64] %0) #0 { + %2 = alloca %struct.point347, align 4 + %3 = alloca %struct.point347, align 4 + %4 = bitcast %struct.point347* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point347* %2 to i8* + %6 = bitcast %struct.point347* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point347* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo348([2 x i64] %0) #0 { + %2 = alloca %struct.point348, align 4 + %3 = alloca %struct.point348, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point348* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point348* %2 to i8* + %9 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point348* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo349([2 x i64] %0) #0 { + %2 = alloca %struct.point349, align 4 + %3 = alloca %struct.point349, align 4 + %4 = bitcast %struct.point349* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point349* %2 to i8* + %6 = bitcast %struct.point349* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point349* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo350([2 x i64] %0) #0 { + %2 = alloca %struct.point350, align 4 + %3 = alloca %struct.point350, align 4 + %4 = bitcast %struct.point350* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point350* %2 to i8* + %6 = bitcast %struct.point350* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point350* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo351([2 x i64] %0) #0 { + %2 = alloca %struct.point351, align 4 + %3 = alloca %struct.point351, align 4 + %4 = bitcast %struct.point351* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point351* %2 to i8* + %6 = bitcast %struct.point351* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point351* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo352([2 x i64] %0) #0 { + %2 = alloca %struct.point352, align 4 + %3 = alloca %struct.point352, align 4 + %4 = bitcast %struct.point352* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point352* %2 to i8* + %6 = bitcast %struct.point352* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point352* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo353([2 x i64] %0) #0 { + %2 = alloca %struct.point353, align 4 + %3 = alloca %struct.point353, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point353* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point353* %2 to i8* + %9 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point353* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo354([2 x i64] %0) #0 { + %2 = alloca %struct.point354, align 4 + %3 = alloca %struct.point354, align 4 + %4 = bitcast %struct.point354* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point354* %2 to i8* + %6 = bitcast %struct.point354* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point354* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo355([2 x i64] %0) #0 { + %2 = alloca %struct.point355, align 4 + %3 = alloca %struct.point355, align 4 + %4 = bitcast %struct.point355* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point355* %2 to i8* + %6 = bitcast %struct.point355* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point355* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo356([2 x i64] %0) #0 { + %2 = alloca %struct.point356, align 4 + %3 = alloca %struct.point356, align 4 + %4 = bitcast %struct.point356* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point356* %2 to i8* + %6 = bitcast %struct.point356* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point356* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo357([2 x i64] %0) #0 { + %2 = alloca %struct.point357, align 4 + %3 = alloca %struct.point357, align 4 + %4 = bitcast %struct.point357* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point357* %2 to i8* + %6 = bitcast %struct.point357* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point357* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo358(i64 %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point358* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo359([2 x i64] %0) #0 { + %2 = alloca %struct.point359, align 4 + %3 = alloca %struct.point359, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point359* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point359* %2 to i8* + %9 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point359* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo360([2 x i64] %0) #0 { + %2 = alloca %struct.point360, align 4 + %3 = alloca %struct.point360, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point360* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point360* %2 to i8* + %9 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point360* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo361([2 x i64] %0) #0 { + %2 = alloca %struct.point361, align 4 + %3 = alloca %struct.point361, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point361* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point361* %2 to i8* + %9 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point361* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo362([2 x i64] %0) #0 { + %2 = alloca %struct.point362, align 4 + %3 = alloca %struct.point362, align 4 + %4 = bitcast %struct.point362* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point362* %2 to i8* + %6 = bitcast %struct.point362* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point362* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo363([2 x i64] %0) #0 { + %2 = alloca %struct.point363, align 4 + %3 = alloca %struct.point363, align 4 + %4 = bitcast %struct.point363* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point363* %2 to i8* + %6 = bitcast %struct.point363* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point363* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo364([2 x i64] %0) #0 { + %2 = alloca %struct.point364, align 4 + %3 = alloca %struct.point364, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point364* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point364* %2 to i8* + %9 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point364* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo365([2 x i64] %0) #0 { + %2 = alloca %struct.point365, align 4 + %3 = alloca %struct.point365, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point365* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point365* %2 to i8* + %9 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point365* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo366([2 x i64] %0) #0 { + %2 = alloca %struct.point366, align 4 + %3 = alloca %struct.point366, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point366* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point366* %2 to i8* + %9 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point366* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo367([2 x i64] %0) #0 { + %2 = alloca %struct.point367, align 4 + %3 = alloca %struct.point367, align 4 + %4 = bitcast %struct.point367* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point367* %2 to i8* + %6 = bitcast %struct.point367* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point367* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo368([2 x i64] %0) #0 { + %2 = alloca %struct.point368, align 4 + %3 = alloca %struct.point368, align 4 + %4 = bitcast %struct.point368* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point368* %2 to i8* + %6 = bitcast %struct.point368* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point368* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo369([2 x i64] %0) #0 { + %2 = alloca %struct.point369, align 4 + %3 = alloca %struct.point369, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point369* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point369* %2 to i8* + %9 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point369* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo370([2 x i64] %0) #0 { + %2 = alloca %struct.point370, align 4 + %3 = alloca %struct.point370, align 4 + %4 = bitcast %struct.point370* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point370* %2 to i8* + %6 = bitcast %struct.point370* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point370* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo371([2 x i64] %0) #0 { + %2 = alloca %struct.point371, align 4 + %3 = alloca %struct.point371, align 4 + %4 = bitcast %struct.point371* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point371* %2 to i8* + %6 = bitcast %struct.point371* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point371* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo372([2 x i64] %0) #0 { + %2 = alloca %struct.point372, align 4 + %3 = alloca %struct.point372, align 4 + %4 = bitcast %struct.point372* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point372* %2 to i8* + %6 = bitcast %struct.point372* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point372* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo373([2 x i64] %0) #0 { + %2 = alloca %struct.point373, align 4 + %3 = alloca %struct.point373, align 4 + %4 = bitcast %struct.point373* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point373* %2 to i8* + %6 = bitcast %struct.point373* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point373* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo374([2 x i64] %0) #0 { + %2 = alloca %struct.point374, align 4 + %3 = alloca %struct.point374, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point374* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point374* %2 to i8* + %9 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point374* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo375([2 x i64] %0) #0 { + %2 = alloca %struct.point375, align 4 + %3 = alloca %struct.point375, align 4 + %4 = bitcast %struct.point375* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point375* %2 to i8* + %6 = bitcast %struct.point375* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point375* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo376([2 x i64] %0) #0 { + %2 = alloca %struct.point376, align 4 + %3 = alloca %struct.point376, align 4 + %4 = bitcast %struct.point376* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point376* %2 to i8* + %6 = bitcast %struct.point376* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point376* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo377([2 x i64] %0) #0 { + %2 = alloca %struct.point377, align 4 + %3 = alloca %struct.point377, align 4 + %4 = bitcast %struct.point377* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point377* %2 to i8* + %6 = bitcast %struct.point377* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point377* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo378([2 x i64] %0) #0 { + %2 = alloca %struct.point378, align 4 + %3 = alloca %struct.point378, align 4 + %4 = bitcast %struct.point378* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point378* %2 to i8* + %6 = bitcast %struct.point378* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point378* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo379([2 x i64] %0) #0 { + %2 = alloca %struct.point379, align 4 + %3 = alloca %struct.point379, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point379* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point379* %2 to i8* + %9 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point379* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo380([2 x i64] %0) #0 { + %2 = alloca %struct.point380, align 4 + %3 = alloca %struct.point380, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point380* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point380* %2 to i8* + %9 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point380* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo381([2 x i64] %0) #0 { + %2 = alloca %struct.point381, align 4 + %3 = alloca %struct.point381, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point381* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point381* %2 to i8* + %9 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point381* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo382([2 x i64] %0) #0 { + %2 = alloca %struct.point382, align 4 + %3 = alloca %struct.point382, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point382* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point382* %2 to i8* + %9 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point382* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo383([2 x i64] %0) #0 { + %2 = alloca %struct.point383, align 4 + %3 = alloca %struct.point383, align 4 + %4 = bitcast %struct.point383* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point383* %2 to i8* + %6 = bitcast %struct.point383* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point383* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo384([2 x i64] %0) #0 { + %2 = alloca %struct.point384, align 4 + %3 = alloca %struct.point384, align 4 + %4 = bitcast %struct.point384* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point384* %2 to i8* + %6 = bitcast %struct.point384* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point384* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo385([2 x i64] %0) #0 { + %2 = alloca %struct.point385, align 4 + %3 = alloca %struct.point385, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point385* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point385* %2 to i8* + %9 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point385* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo386([2 x i64] %0) #0 { + %2 = alloca %struct.point386, align 4 + %3 = alloca %struct.point386, align 4 + %4 = bitcast %struct.point386* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point386* %2 to i8* + %6 = bitcast %struct.point386* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point386* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo387([2 x i64] %0) #0 { + %2 = alloca %struct.point387, align 4 + %3 = alloca %struct.point387, align 4 + %4 = bitcast %struct.point387* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point387* %2 to i8* + %6 = bitcast %struct.point387* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point387* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo388([2 x i64] %0) #0 { + %2 = alloca %struct.point388, align 4 + %3 = alloca %struct.point388, align 4 + %4 = bitcast %struct.point388* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point388* %2 to i8* + %6 = bitcast %struct.point388* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point388* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo389([2 x i64] %0) #0 { + %2 = alloca %struct.point389, align 4 + %3 = alloca %struct.point389, align 4 + %4 = bitcast %struct.point389* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point389* %2 to i8* + %6 = bitcast %struct.point389* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point389* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo390([2 x i64] %0) #0 { + %2 = alloca %struct.point390, align 4 + %3 = alloca %struct.point390, align 4 + %4 = bitcast %struct.point390* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point390* %2 to i8* + %6 = bitcast %struct.point390* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point390* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo395([2 x i64] %0) #0 { + %2 = alloca %struct.point395, align 4 + %3 = alloca %struct.point395, align 4 + %4 = bitcast %struct.point395* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point395* %2 to i8* + %6 = bitcast %struct.point395* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point395* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo400([2 x i64] %0) #0 { + %2 = alloca %struct.point400, align 4 + %3 = alloca %struct.point400, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point400* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point400* %2 to i8* + %9 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point400* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo401([2 x i64] %0) #0 { + %2 = alloca %struct.point401, align 4 + %3 = alloca %struct.point401, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point401* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point401* %2 to i8* + %9 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point401* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo402([2 x i64] %0) #0 { + %2 = alloca %struct.point402, align 4 + %3 = alloca %struct.point402, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point402* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point402* %2 to i8* + %9 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point402* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo403([2 x i64] %0) #0 { + %2 = alloca %struct.point403, align 4 + %3 = alloca %struct.point403, align 4 + %4 = bitcast %struct.point403* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point403* %2 to i8* + %6 = bitcast %struct.point403* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point403* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo404([2 x i64] %0) #0 { + %2 = alloca %struct.point404, align 4 + %3 = alloca %struct.point404, align 4 + %4 = bitcast %struct.point404* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point404* %2 to i8* + %6 = bitcast %struct.point404* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point404* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo405([2 x i64] %0) #0 { + %2 = alloca %struct.point405, align 4 + %3 = alloca %struct.point405, align 4 + %4 = bitcast %struct.point405* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point405* %2 to i8* + %6 = bitcast %struct.point405* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point405* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo406([2 x i64] %0) #0 { + %2 = alloca %struct.point406, align 4 + %3 = alloca %struct.point406, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point406* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point406* %2 to i8* + %9 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point406* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo407([2 x i64] %0) #0 { + %2 = alloca %struct.point407, align 4 + %3 = alloca %struct.point407, align 4 + %4 = bitcast %struct.point407* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point407* %2 to i8* + %6 = bitcast %struct.point407* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point407* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo408([2 x i64] %0) #0 { + %2 = alloca %struct.point408, align 4 + %3 = alloca %struct.point408, align 4 + %4 = bitcast %struct.point408* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point408* %2 to i8* + %6 = bitcast %struct.point408* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point408* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo409([2 x i64] %0) #0 { + %2 = alloca %struct.point409, align 4 + %3 = alloca %struct.point409, align 4 + %4 = bitcast %struct.point409* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point409* %2 to i8* + %6 = bitcast %struct.point409* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point409* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo410([2 x i64] %0) #0 { + %2 = alloca %struct.point410, align 4 + %3 = alloca %struct.point410, align 4 + %4 = bitcast %struct.point410* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point410* %2 to i8* + %6 = bitcast %struct.point410* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point410* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo411([2 x i64] %0) #0 { + %2 = alloca %struct.point411, align 4 + %3 = alloca %struct.point411, align 4 + %4 = bitcast %struct.point411* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point411* %2 to i8* + %6 = bitcast %struct.point411* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point411* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo416([2 x i64] %0) #0 { + %2 = alloca %struct.point416, align 4 + %3 = alloca %struct.point416, align 4 + %4 = bitcast %struct.point416* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point416* %2 to i8* + %6 = bitcast %struct.point416* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point416* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo421([2 x i64] %0) #0 { + %2 = alloca %struct.point421, align 4 + %3 = alloca %struct.point421, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point421* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point421* %2 to i8* + %9 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point421* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo422([2 x i64] %0) #0 { + %2 = alloca %struct.point422, align 4 + %3 = alloca %struct.point422, align 4 + %4 = bitcast %struct.point422* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point422* %2 to i8* + %6 = bitcast %struct.point422* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point422* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo423([2 x i64] %0) #0 { + %2 = alloca %struct.point423, align 4 + %3 = alloca %struct.point423, align 4 + %4 = bitcast %struct.point423* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point423* %2 to i8* + %6 = bitcast %struct.point423* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point423* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo424([2 x i64] %0) #0 { + %2 = alloca %struct.point424, align 4 + %3 = alloca %struct.point424, align 4 + %4 = bitcast %struct.point424* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point424* %2 to i8* + %6 = bitcast %struct.point424* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point424* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo427([2 x i64] %0) #0 { + %2 = alloca %struct.point427, align 4 + %3 = alloca %struct.point427, align 4 + %4 = bitcast %struct.point427* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point427* %2 to i8* + %6 = bitcast %struct.point427* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point427* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo428([2 x i64] %0) #0 { + %2 = alloca %struct.point428, align 4 + %3 = alloca %struct.point428, align 4 + %4 = bitcast %struct.point428* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point428* %2 to i8* + %6 = bitcast %struct.point428* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point428* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo429([2 x i64] %0) #0 { + %2 = alloca %struct.point429, align 4 + %3 = alloca %struct.point429, align 4 + %4 = bitcast %struct.point429* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point429* %2 to i8* + %6 = bitcast %struct.point429* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point429* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo432([2 x i64] %0) #0 { + %2 = alloca %struct.point432, align 4 + %3 = alloca %struct.point432, align 4 + %4 = bitcast %struct.point432* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point432* %2 to i8* + %6 = bitcast %struct.point432* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point432* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo437([2 x i64] %0) #0 { + %2 = alloca %struct.point437, align 4 + %3 = alloca %struct.point437, align 4 + %4 = bitcast %struct.point437* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point437* %2 to i8* + %6 = bitcast %struct.point437* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point437* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo442([2 x i64] %0) #0 { + %2 = alloca %struct.point442, align 4 + %3 = alloca %struct.point442, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point442* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point442* %2 to i8* + %9 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point442* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo443([2 x i64] %0) #0 { + %2 = alloca %struct.point443, align 4 + %3 = alloca %struct.point443, align 4 + %4 = bitcast %struct.point443* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point443* %2 to i8* + %6 = bitcast %struct.point443* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point443* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo444([2 x i64] %0) #0 { + %2 = alloca %struct.point444, align 4 + %3 = alloca %struct.point444, align 4 + %4 = bitcast %struct.point444* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point444* %2 to i8* + %6 = bitcast %struct.point444* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point444* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo445([2 x i64] %0) #0 { + %2 = alloca %struct.point445, align 4 + %3 = alloca %struct.point445, align 4 + %4 = bitcast %struct.point445* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point445* %2 to i8* + %6 = bitcast %struct.point445* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point445* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo448([2 x i64] %0) #0 { + %2 = alloca %struct.point448, align 4 + %3 = alloca %struct.point448, align 4 + %4 = bitcast %struct.point448* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point448* %2 to i8* + %6 = bitcast %struct.point448* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point448* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo449([2 x i64] %0) #0 { + %2 = alloca %struct.point449, align 4 + %3 = alloca %struct.point449, align 4 + %4 = bitcast %struct.point449* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point449* %2 to i8* + %6 = bitcast %struct.point449* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point449* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo450([2 x i64] %0) #0 { + %2 = alloca %struct.point450, align 4 + %3 = alloca %struct.point450, align 4 + %4 = bitcast %struct.point450* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point450* %2 to i8* + %6 = bitcast %struct.point450* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point450* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo453([2 x i64] %0) #0 { + %2 = alloca %struct.point453, align 4 + %3 = alloca %struct.point453, align 4 + %4 = bitcast %struct.point453* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point453* %2 to i8* + %6 = bitcast %struct.point453* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point453* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo458([2 x i64] %0) #0 { + %2 = alloca %struct.point458, align 4 + %3 = alloca %struct.point458, align 4 + %4 = bitcast %struct.point458* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point458* %2 to i8* + %6 = bitcast %struct.point458* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point458* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo463([2 x i64] %0) #0 { + %2 = alloca %struct.point463, align 4 + %3 = alloca %struct.point463, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point463* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point463* %2 to i8* + %9 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point463* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo464([2 x i64] %0) #0 { + %2 = alloca %struct.point464, align 4 + %3 = alloca %struct.point464, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point464* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point464* %2 to i8* + %9 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point464* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo465([2 x i64] %0) #0 { + %2 = alloca %struct.point465, align 4 + %3 = alloca %struct.point465, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point465* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point465* %2 to i8* + %9 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point465* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo466([2 x i64] %0) #0 { + %2 = alloca %struct.point466, align 4 + %3 = alloca %struct.point466, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point466* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point466* %2 to i8* + %9 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point466* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo467([2 x i64] %0) #0 { + %2 = alloca %struct.point467, align 4 + %3 = alloca %struct.point467, align 4 + %4 = bitcast %struct.point467* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point467* %2 to i8* + %6 = bitcast %struct.point467* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point467* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo468([2 x i64] %0) #0 { + %2 = alloca %struct.point468, align 4 + %3 = alloca %struct.point468, align 4 + %4 = bitcast %struct.point468* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point468* %2 to i8* + %6 = bitcast %struct.point468* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point468* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo469([2 x i64] %0) #0 { + %2 = alloca %struct.point469, align 4 + %3 = alloca %struct.point469, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point469* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point469* %2 to i8* + %9 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point469* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo470([2 x i64] %0) #0 { + %2 = alloca %struct.point470, align 4 + %3 = alloca %struct.point470, align 4 + %4 = bitcast %struct.point470* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point470* %2 to i8* + %6 = bitcast %struct.point470* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point470* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo471([2 x i64] %0) #0 { + %2 = alloca %struct.point471, align 4 + %3 = alloca %struct.point471, align 4 + %4 = bitcast %struct.point471* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point471* %2 to i8* + %6 = bitcast %struct.point471* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point471* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo472([2 x i64] %0) #0 { + %2 = alloca %struct.point472, align 4 + %3 = alloca %struct.point472, align 4 + %4 = bitcast %struct.point472* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point472* %2 to i8* + %6 = bitcast %struct.point472* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point472* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo473([2 x i64] %0) #0 { + %2 = alloca %struct.point473, align 4 + %3 = alloca %struct.point473, align 4 + %4 = bitcast %struct.point473* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point473* %2 to i8* + %6 = bitcast %struct.point473* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point473* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo474([2 x i64] %0) #0 { + %2 = alloca %struct.point474, align 4 + %3 = alloca %struct.point474, align 4 + %4 = bitcast %struct.point474* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point474* %2 to i8* + %6 = bitcast %struct.point474* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point474* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo479([2 x i64] %0) #0 { + %2 = alloca %struct.point479, align 4 + %3 = alloca %struct.point479, align 4 + %4 = bitcast %struct.point479* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point479* %2 to i8* + %6 = bitcast %struct.point479* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point479* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo484([2 x i64] %0) #0 { + %2 = alloca %struct.point484, align 4 + %3 = alloca %struct.point484, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point484* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point484* %2 to i8* + %9 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point484* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo485([2 x i64] %0) #0 { + %2 = alloca %struct.point485, align 4 + %3 = alloca %struct.point485, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point485* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point485* %2 to i8* + %9 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point485* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo486([2 x i64] %0) #0 { + %2 = alloca %struct.point486, align 4 + %3 = alloca %struct.point486, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point486* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point486* %2 to i8* + %9 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point486* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo487([2 x i64] %0) #0 { + %2 = alloca %struct.point487, align 4 + %3 = alloca %struct.point487, align 4 + %4 = bitcast %struct.point487* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point487* %2 to i8* + %6 = bitcast %struct.point487* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point487* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo488([2 x i64] %0) #0 { + %2 = alloca %struct.point488, align 4 + %3 = alloca %struct.point488, align 4 + %4 = bitcast %struct.point488* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point488* %2 to i8* + %6 = bitcast %struct.point488* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point488* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo489([2 x i64] %0) #0 { + %2 = alloca %struct.point489, align 4 + %3 = alloca %struct.point489, align 4 + %4 = bitcast %struct.point489* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point489* %2 to i8* + %6 = bitcast %struct.point489* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point489* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo490([2 x i64] %0) #0 { + %2 = alloca %struct.point490, align 4 + %3 = alloca %struct.point490, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point490* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point490* %2 to i8* + %9 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point490* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo491([2 x i64] %0) #0 { + %2 = alloca %struct.point491, align 4 + %3 = alloca %struct.point491, align 4 + %4 = bitcast %struct.point491* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point491* %2 to i8* + %6 = bitcast %struct.point491* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point491* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo492([2 x i64] %0) #0 { + %2 = alloca %struct.point492, align 4 + %3 = alloca %struct.point492, align 4 + %4 = bitcast %struct.point492* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point492* %2 to i8* + %6 = bitcast %struct.point492* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point492* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo493([2 x i64] %0) #0 { + %2 = alloca %struct.point493, align 4 + %3 = alloca %struct.point493, align 4 + %4 = bitcast %struct.point493* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point493* %2 to i8* + %6 = bitcast %struct.point493* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point493* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo494([2 x i64] %0) #0 { + %2 = alloca %struct.point494, align 4 + %3 = alloca %struct.point494, align 4 + %4 = bitcast %struct.point494* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point494* %2 to i8* + %6 = bitcast %struct.point494* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point494* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo495([2 x i64] %0) #0 { + %2 = alloca %struct.point495, align 4 + %3 = alloca %struct.point495, align 4 + %4 = bitcast %struct.point495* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point495* %2 to i8* + %6 = bitcast %struct.point495* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point495* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo500([2 x i64] %0) #0 { + %2 = alloca %struct.point500, align 4 + %3 = alloca %struct.point500, align 4 + %4 = bitcast %struct.point500* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point500* %2 to i8* + %6 = bitcast %struct.point500* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point500* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo505([2 x i64] %0) #0 { + %2 = alloca %struct.point505, align 4 + %3 = alloca %struct.point505, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point505* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point505* %2 to i8* + %9 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point505* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo506([2 x i64] %0) #0 { + %2 = alloca %struct.point506, align 4 + %3 = alloca %struct.point506, align 4 + %4 = bitcast %struct.point506* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point506* %2 to i8* + %6 = bitcast %struct.point506* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point506* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo507([2 x i64] %0) #0 { + %2 = alloca %struct.point507, align 4 + %3 = alloca %struct.point507, align 4 + %4 = bitcast %struct.point507* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point507* %2 to i8* + %6 = bitcast %struct.point507* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point507* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo508([2 x i64] %0) #0 { + %2 = alloca %struct.point508, align 4 + %3 = alloca %struct.point508, align 4 + %4 = bitcast %struct.point508* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point508* %2 to i8* + %6 = bitcast %struct.point508* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point508* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo511([2 x i64] %0) #0 { + %2 = alloca %struct.point511, align 4 + %3 = alloca %struct.point511, align 4 + %4 = bitcast %struct.point511* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point511* %2 to i8* + %6 = bitcast %struct.point511* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point511* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo512([2 x i64] %0) #0 { + %2 = alloca %struct.point512, align 4 + %3 = alloca %struct.point512, align 4 + %4 = bitcast %struct.point512* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point512* %2 to i8* + %6 = bitcast %struct.point512* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point512* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo513([2 x i64] %0) #0 { + %2 = alloca %struct.point513, align 4 + %3 = alloca %struct.point513, align 4 + %4 = bitcast %struct.point513* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point513* %2 to i8* + %6 = bitcast %struct.point513* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point513* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo516([2 x i64] %0) #0 { + %2 = alloca %struct.point516, align 4 + %3 = alloca %struct.point516, align 4 + %4 = bitcast %struct.point516* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point516* %2 to i8* + %6 = bitcast %struct.point516* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point516* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo521([2 x i64] %0) #0 { + %2 = alloca %struct.point521, align 4 + %3 = alloca %struct.point521, align 4 + %4 = bitcast %struct.point521* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point521* %2 to i8* + %6 = bitcast %struct.point521* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point521* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo526([2 x i64] %0) #0 { + %2 = alloca %struct.point526, align 4 + %3 = alloca %struct.point526, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point526* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point526* %2 to i8* + %9 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point526* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo527([2 x i64] %0) #0 { + %2 = alloca %struct.point527, align 4 + %3 = alloca %struct.point527, align 4 + %4 = bitcast %struct.point527* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point527* %2 to i8* + %6 = bitcast %struct.point527* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point527* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo528([2 x i64] %0) #0 { + %2 = alloca %struct.point528, align 4 + %3 = alloca %struct.point528, align 4 + %4 = bitcast %struct.point528* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point528* %2 to i8* + %6 = bitcast %struct.point528* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point528* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo529([2 x i64] %0) #0 { + %2 = alloca %struct.point529, align 4 + %3 = alloca %struct.point529, align 4 + %4 = bitcast %struct.point529* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point529* %2 to i8* + %6 = bitcast %struct.point529* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point529* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo532([2 x i64] %0) #0 { + %2 = alloca %struct.point532, align 4 + %3 = alloca %struct.point532, align 4 + %4 = bitcast %struct.point532* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point532* %2 to i8* + %6 = bitcast %struct.point532* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point532* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo533([2 x i64] %0) #0 { + %2 = alloca %struct.point533, align 4 + %3 = alloca %struct.point533, align 4 + %4 = bitcast %struct.point533* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point533* %2 to i8* + %6 = bitcast %struct.point533* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point533* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo534([2 x i64] %0) #0 { + %2 = alloca %struct.point534, align 4 + %3 = alloca %struct.point534, align 4 + %4 = bitcast %struct.point534* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point534* %2 to i8* + %6 = bitcast %struct.point534* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point534* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo537([2 x i64] %0) #0 { + %2 = alloca %struct.point537, align 4 + %3 = alloca %struct.point537, align 4 + %4 = bitcast %struct.point537* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point537* %2 to i8* + %6 = bitcast %struct.point537* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point537* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo542([2 x i64] %0) #0 { + %2 = alloca %struct.point542, align 4 + %3 = alloca %struct.point542, align 4 + %4 = bitcast %struct.point542* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point542* %2 to i8* + %6 = bitcast %struct.point542* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point542* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo547(i64 %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point547* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo548(i64 %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point548* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo549(i64 %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point549* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo550([2 x i64] %0) #0 { + %2 = alloca %struct.point550, align 4 + %3 = alloca %struct.point550, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point550* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point550* %2 to i8* + %9 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point550* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo551([2 x i64] %0) #0 { + %2 = alloca %struct.point551, align 4 + %3 = alloca %struct.point551, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point551* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point551* %2 to i8* + %9 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point551* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo552([2 x i64] %0) #0 { + %2 = alloca %struct.point552, align 4 + %3 = alloca %struct.point552, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point552* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point552* %2 to i8* + %9 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point552* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo553(i64 %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point553* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo554([2 x i64] %0) #0 { + %2 = alloca %struct.point554, align 4 + %3 = alloca %struct.point554, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point554* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point554* %2 to i8* + %9 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point554* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo555([2 x i64] %0) #0 { + %2 = alloca %struct.point555, align 4 + %3 = alloca %struct.point555, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point555* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point555* %2 to i8* + %9 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point555* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo556([2 x i64] %0) #0 { + %2 = alloca %struct.point556, align 4 + %3 = alloca %struct.point556, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point556* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point556* %2 to i8* + %9 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point556* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo557([2 x i64] %0) #0 { + %2 = alloca %struct.point557, align 4 + %3 = alloca %struct.point557, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point557* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point557* %2 to i8* + %9 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point557* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo558([2 x i64] %0) #0 { + %2 = alloca %struct.point558, align 4 + %3 = alloca %struct.point558, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point558* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point558* %2 to i8* + %9 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point558* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo559([2 x i64] %0) #0 { + %2 = alloca %struct.point559, align 4 + %3 = alloca %struct.point559, align 4 + %4 = bitcast %struct.point559* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point559* %2 to i8* + %6 = bitcast %struct.point559* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point559* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo560([2 x i64] %0) #0 { + %2 = alloca %struct.point560, align 4 + %3 = alloca %struct.point560, align 4 + %4 = bitcast %struct.point560* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point560* %2 to i8* + %6 = bitcast %struct.point560* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point560* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo561([2 x i64] %0) #0 { + %2 = alloca %struct.point561, align 4 + %3 = alloca %struct.point561, align 4 + %4 = bitcast %struct.point561* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point561* %2 to i8* + %6 = bitcast %struct.point561* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point561* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo562([2 x i64] %0) #0 { + %2 = alloca %struct.point562, align 4 + %3 = alloca %struct.point562, align 4 + %4 = bitcast %struct.point562* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point562* %2 to i8* + %6 = bitcast %struct.point562* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point562* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo563([2 x i64] %0) #0 { + %2 = alloca %struct.point563, align 4 + %3 = alloca %struct.point563, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point563* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point563* %2 to i8* + %9 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point563* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo564([2 x i64] %0) #0 { + %2 = alloca %struct.point564, align 4 + %3 = alloca %struct.point564, align 4 + %4 = bitcast %struct.point564* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point564* %2 to i8* + %6 = bitcast %struct.point564* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point564* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo565([2 x i64] %0) #0 { + %2 = alloca %struct.point565, align 4 + %3 = alloca %struct.point565, align 4 + %4 = bitcast %struct.point565* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point565* %2 to i8* + %6 = bitcast %struct.point565* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point565* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo566([2 x i64] %0) #0 { + %2 = alloca %struct.point566, align 4 + %3 = alloca %struct.point566, align 4 + %4 = bitcast %struct.point566* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point566* %2 to i8* + %6 = bitcast %struct.point566* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point566* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo567([2 x i64] %0) #0 { + %2 = alloca %struct.point567, align 4 + %3 = alloca %struct.point567, align 4 + %4 = bitcast %struct.point567* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point567* %2 to i8* + %6 = bitcast %struct.point567* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point567* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo568(i64 %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point568* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo569([2 x i64] %0) #0 { + %2 = alloca %struct.point569, align 4 + %3 = alloca %struct.point569, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point569* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point569* %2 to i8* + %9 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point569* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo570([2 x i64] %0) #0 { + %2 = alloca %struct.point570, align 4 + %3 = alloca %struct.point570, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point570* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point570* %2 to i8* + %9 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point570* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo571([2 x i64] %0) #0 { + %2 = alloca %struct.point571, align 4 + %3 = alloca %struct.point571, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point571* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point571* %2 to i8* + %9 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point571* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo572([2 x i64] %0) #0 { + %2 = alloca %struct.point572, align 4 + %3 = alloca %struct.point572, align 4 + %4 = bitcast %struct.point572* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point572* %2 to i8* + %6 = bitcast %struct.point572* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point572* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo573([2 x i64] %0) #0 { + %2 = alloca %struct.point573, align 4 + %3 = alloca %struct.point573, align 4 + %4 = bitcast %struct.point573* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point573* %2 to i8* + %6 = bitcast %struct.point573* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point573* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo574([2 x i64] %0) #0 { + %2 = alloca %struct.point574, align 4 + %3 = alloca %struct.point574, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point574* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point574* %2 to i8* + %9 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point574* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo575([2 x i64] %0) #0 { + %2 = alloca %struct.point575, align 4 + %3 = alloca %struct.point575, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point575* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point575* %2 to i8* + %9 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point575* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo576([2 x i64] %0) #0 { + %2 = alloca %struct.point576, align 4 + %3 = alloca %struct.point576, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point576* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point576* %2 to i8* + %9 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point576* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo577([2 x i64] %0) #0 { + %2 = alloca %struct.point577, align 4 + %3 = alloca %struct.point577, align 4 + %4 = bitcast %struct.point577* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point577* %2 to i8* + %6 = bitcast %struct.point577* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point577* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo578([2 x i64] %0) #0 { + %2 = alloca %struct.point578, align 4 + %3 = alloca %struct.point578, align 4 + %4 = bitcast %struct.point578* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point578* %2 to i8* + %6 = bitcast %struct.point578* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point578* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo579([2 x i64] %0) #0 { + %2 = alloca %struct.point579, align 4 + %3 = alloca %struct.point579, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point579* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point579* %2 to i8* + %9 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point579* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo580([2 x i64] %0) #0 { + %2 = alloca %struct.point580, align 4 + %3 = alloca %struct.point580, align 4 + %4 = bitcast %struct.point580* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point580* %2 to i8* + %6 = bitcast %struct.point580* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point580* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo581([2 x i64] %0) #0 { + %2 = alloca %struct.point581, align 4 + %3 = alloca %struct.point581, align 4 + %4 = bitcast %struct.point581* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point581* %2 to i8* + %6 = bitcast %struct.point581* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point581* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo582([2 x i64] %0) #0 { + %2 = alloca %struct.point582, align 4 + %3 = alloca %struct.point582, align 4 + %4 = bitcast %struct.point582* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point582* %2 to i8* + %6 = bitcast %struct.point582* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point582* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo583([2 x i64] %0) #0 { + %2 = alloca %struct.point583, align 4 + %3 = alloca %struct.point583, align 4 + %4 = bitcast %struct.point583* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point583* %2 to i8* + %6 = bitcast %struct.point583* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point583* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo584([2 x i64] %0) #0 { + %2 = alloca %struct.point584, align 4 + %3 = alloca %struct.point584, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point584* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point584* %2 to i8* + %9 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point584* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo585([2 x i64] %0) #0 { + %2 = alloca %struct.point585, align 4 + %3 = alloca %struct.point585, align 4 + %4 = bitcast %struct.point585* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point585* %2 to i8* + %6 = bitcast %struct.point585* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point585* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo586([2 x i64] %0) #0 { + %2 = alloca %struct.point586, align 4 + %3 = alloca %struct.point586, align 4 + %4 = bitcast %struct.point586* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point586* %2 to i8* + %6 = bitcast %struct.point586* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point586* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo587([2 x i64] %0) #0 { + %2 = alloca %struct.point587, align 4 + %3 = alloca %struct.point587, align 4 + %4 = bitcast %struct.point587* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point587* %2 to i8* + %6 = bitcast %struct.point587* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point587* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo588([2 x i64] %0) #0 { + %2 = alloca %struct.point588, align 4 + %3 = alloca %struct.point588, align 4 + %4 = bitcast %struct.point588* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point588* %2 to i8* + %6 = bitcast %struct.point588* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point588* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo589([2 x i64] %0) #0 { + %2 = alloca %struct.point589, align 4 + %3 = alloca %struct.point589, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point589* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point589* %2 to i8* + %9 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point589* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo590([2 x i64] %0) #0 { + %2 = alloca %struct.point590, align 4 + %3 = alloca %struct.point590, align 4 + %4 = bitcast %struct.point590* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point590* %2 to i8* + %6 = bitcast %struct.point590* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point590* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo591([2 x i64] %0) #0 { + %2 = alloca %struct.point591, align 4 + %3 = alloca %struct.point591, align 4 + %4 = bitcast %struct.point591* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point591* %2 to i8* + %6 = bitcast %struct.point591* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point591* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo592([2 x i64] %0) #0 { + %2 = alloca %struct.point592, align 4 + %3 = alloca %struct.point592, align 4 + %4 = bitcast %struct.point592* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point592* %2 to i8* + %6 = bitcast %struct.point592* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point592* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo595([2 x i64] %0) #0 { + %2 = alloca %struct.point595, align 4 + %3 = alloca %struct.point595, align 4 + %4 = bitcast %struct.point595* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point595* %2 to i8* + %6 = bitcast %struct.point595* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point595* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo596([2 x i64] %0) #0 { + %2 = alloca %struct.point596, align 4 + %3 = alloca %struct.point596, align 4 + %4 = bitcast %struct.point596* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point596* %2 to i8* + %6 = bitcast %struct.point596* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point596* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo597([2 x i64] %0) #0 { + %2 = alloca %struct.point597, align 4 + %3 = alloca %struct.point597, align 4 + %4 = bitcast %struct.point597* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point597* %2 to i8* + %6 = bitcast %struct.point597* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point597* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo600([2 x i64] %0) #0 { + %2 = alloca %struct.point600, align 4 + %3 = alloca %struct.point600, align 4 + %4 = bitcast %struct.point600* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point600* %2 to i8* + %6 = bitcast %struct.point600* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point600* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo605([2 x i64] %0) #0 { + %2 = alloca %struct.point605, align 4 + %3 = alloca %struct.point605, align 4 + %4 = bitcast %struct.point605* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point605* %2 to i8* + %6 = bitcast %struct.point605* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point605* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo610([2 x i64] %0) #0 { + %2 = alloca %struct.point610, align 4 + %3 = alloca %struct.point610, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point610* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point610* %2 to i8* + %9 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point610* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo611([2 x i64] %0) #0 { + %2 = alloca %struct.point611, align 4 + %3 = alloca %struct.point611, align 4 + %4 = bitcast %struct.point611* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point611* %2 to i8* + %6 = bitcast %struct.point611* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point611* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo612([2 x i64] %0) #0 { + %2 = alloca %struct.point612, align 4 + %3 = alloca %struct.point612, align 4 + %4 = bitcast %struct.point612* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point612* %2 to i8* + %6 = bitcast %struct.point612* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point612* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo613([2 x i64] %0) #0 { + %2 = alloca %struct.point613, align 4 + %3 = alloca %struct.point613, align 4 + %4 = bitcast %struct.point613* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point613* %2 to i8* + %6 = bitcast %struct.point613* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point613* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo616([2 x i64] %0) #0 { + %2 = alloca %struct.point616, align 4 + %3 = alloca %struct.point616, align 4 + %4 = bitcast %struct.point616* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point616* %2 to i8* + %6 = bitcast %struct.point616* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point616* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo617([2 x i64] %0) #0 { + %2 = alloca %struct.point617, align 4 + %3 = alloca %struct.point617, align 4 + %4 = bitcast %struct.point617* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point617* %2 to i8* + %6 = bitcast %struct.point617* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point617* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo618([2 x i64] %0) #0 { + %2 = alloca %struct.point618, align 4 + %3 = alloca %struct.point618, align 4 + %4 = bitcast %struct.point618* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point618* %2 to i8* + %6 = bitcast %struct.point618* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point618* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo621([2 x i64] %0) #0 { + %2 = alloca %struct.point621, align 4 + %3 = alloca %struct.point621, align 4 + %4 = bitcast %struct.point621* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point621* %2 to i8* + %6 = bitcast %struct.point621* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point621* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo626([2 x i64] %0) #0 { + %2 = alloca %struct.point626, align 4 + %3 = alloca %struct.point626, align 4 + %4 = bitcast %struct.point626* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point626* %2 to i8* + %6 = bitcast %struct.point626* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point626* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo631(i64 %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point631* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo632(i64 %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point632* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo633([2 x i64] %0) #0 { + %2 = alloca %struct.point633, align 4 + %3 = alloca %struct.point633, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point633* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point633* %2 to i8* + %9 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point633* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo634([2 x i64] %0) #0 { + %2 = alloca %struct.point634, align 4 + %3 = alloca %struct.point634, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point634* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point634* %2 to i8* + %9 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point634* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo635([2 x i64] %0) #0 { + %2 = alloca %struct.point635, align 4 + %3 = alloca %struct.point635, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point635* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point635* %2 to i8* + %9 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point635* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo636([2 x i64] %0) #0 { + %2 = alloca %struct.point636, align 4 + %3 = alloca %struct.point636, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point636* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point636* %2 to i8* + %9 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point636* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo637([2 x i64] %0) #0 { + %2 = alloca %struct.point637, align 4 + %3 = alloca %struct.point637, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point637* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point637* %2 to i8* + %9 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point637* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo638([2 x i64] %0) #0 { + %2 = alloca %struct.point638, align 4 + %3 = alloca %struct.point638, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point638* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point638* %2 to i8* + %9 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point638* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo639([2 x i64] %0) #0 { + %2 = alloca %struct.point639, align 4 + %3 = alloca %struct.point639, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point639* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point639* %2 to i8* + %9 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point639* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo640([2 x i64] %0) #0 { + %2 = alloca %struct.point640, align 4 + %3 = alloca %struct.point640, align 4 + %4 = bitcast %struct.point640* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point640* %2 to i8* + %6 = bitcast %struct.point640* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point640* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo641([2 x i64] %0) #0 { + %2 = alloca %struct.point641, align 4 + %3 = alloca %struct.point641, align 4 + %4 = bitcast %struct.point641* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point641* %2 to i8* + %6 = bitcast %struct.point641* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point641* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo642([2 x i64] %0) #0 { + %2 = alloca %struct.point642, align 4 + %3 = alloca %struct.point642, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point642* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point642* %2 to i8* + %9 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point642* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo643([2 x i64] %0) #0 { + %2 = alloca %struct.point643, align 4 + %3 = alloca %struct.point643, align 4 + %4 = bitcast %struct.point643* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point643* %2 to i8* + %6 = bitcast %struct.point643* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point643* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo644([2 x i64] %0) #0 { + %2 = alloca %struct.point644, align 4 + %3 = alloca %struct.point644, align 4 + %4 = bitcast %struct.point644* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point644* %2 to i8* + %6 = bitcast %struct.point644* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point644* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo645([2 x i64] %0) #0 { + %2 = alloca %struct.point645, align 4 + %3 = alloca %struct.point645, align 4 + %4 = bitcast %struct.point645* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point645* %2 to i8* + %6 = bitcast %struct.point645* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point645* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo646([2 x i64] %0) #0 { + %2 = alloca %struct.point646, align 4 + %3 = alloca %struct.point646, align 4 + %4 = bitcast %struct.point646* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point646* %2 to i8* + %6 = bitcast %struct.point646* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point646* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo647([2 x i64] %0) #0 { + %2 = alloca %struct.point647, align 4 + %3 = alloca %struct.point647, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point647* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point647* %2 to i8* + %9 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point647* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo648([2 x i64] %0) #0 { + %2 = alloca %struct.point648, align 4 + %3 = alloca %struct.point648, align 4 + %4 = bitcast %struct.point648* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point648* %2 to i8* + %6 = bitcast %struct.point648* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point648* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo649([2 x i64] %0) #0 { + %2 = alloca %struct.point649, align 4 + %3 = alloca %struct.point649, align 4 + %4 = bitcast %struct.point649* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point649* %2 to i8* + %6 = bitcast %struct.point649* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point649* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo650([2 x i64] %0) #0 { + %2 = alloca %struct.point650, align 4 + %3 = alloca %struct.point650, align 4 + %4 = bitcast %struct.point650* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point650* %2 to i8* + %6 = bitcast %struct.point650* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point650* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo651([2 x i64] %0) #0 { + %2 = alloca %struct.point651, align 4 + %3 = alloca %struct.point651, align 4 + %4 = bitcast %struct.point651* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point651* %2 to i8* + %6 = bitcast %struct.point651* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point651* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo652(i64 %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point652* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo653([2 x i64] %0) #0 { + %2 = alloca %struct.point653, align 4 + %3 = alloca %struct.point653, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point653* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point653* %2 to i8* + %9 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point653* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo654([2 x i64] %0) #0 { + %2 = alloca %struct.point654, align 4 + %3 = alloca %struct.point654, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point654* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point654* %2 to i8* + %9 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point654* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo655([2 x i64] %0) #0 { + %2 = alloca %struct.point655, align 4 + %3 = alloca %struct.point655, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point655* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point655* %2 to i8* + %9 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point655* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo656([2 x i64] %0) #0 { + %2 = alloca %struct.point656, align 4 + %3 = alloca %struct.point656, align 4 + %4 = bitcast %struct.point656* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point656* %2 to i8* + %6 = bitcast %struct.point656* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point656* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo657([2 x i64] %0) #0 { + %2 = alloca %struct.point657, align 4 + %3 = alloca %struct.point657, align 4 + %4 = bitcast %struct.point657* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point657* %2 to i8* + %6 = bitcast %struct.point657* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point657* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo658([2 x i64] %0) #0 { + %2 = alloca %struct.point658, align 4 + %3 = alloca %struct.point658, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point658* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point658* %2 to i8* + %9 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point658* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo659([2 x i64] %0) #0 { + %2 = alloca %struct.point659, align 4 + %3 = alloca %struct.point659, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point659* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point659* %2 to i8* + %9 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point659* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo660([2 x i64] %0) #0 { + %2 = alloca %struct.point660, align 4 + %3 = alloca %struct.point660, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point660* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point660* %2 to i8* + %9 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point660* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo661([2 x i64] %0) #0 { + %2 = alloca %struct.point661, align 4 + %3 = alloca %struct.point661, align 4 + %4 = bitcast %struct.point661* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point661* %2 to i8* + %6 = bitcast %struct.point661* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point661* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo662([2 x i64] %0) #0 { + %2 = alloca %struct.point662, align 4 + %3 = alloca %struct.point662, align 4 + %4 = bitcast %struct.point662* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point662* %2 to i8* + %6 = bitcast %struct.point662* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point662* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo663([2 x i64] %0) #0 { + %2 = alloca %struct.point663, align 4 + %3 = alloca %struct.point663, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point663* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point663* %2 to i8* + %9 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point663* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo664([2 x i64] %0) #0 { + %2 = alloca %struct.point664, align 4 + %3 = alloca %struct.point664, align 4 + %4 = bitcast %struct.point664* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point664* %2 to i8* + %6 = bitcast %struct.point664* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point664* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo665([2 x i64] %0) #0 { + %2 = alloca %struct.point665, align 4 + %3 = alloca %struct.point665, align 4 + %4 = bitcast %struct.point665* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point665* %2 to i8* + %6 = bitcast %struct.point665* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point665* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo666([2 x i64] %0) #0 { + %2 = alloca %struct.point666, align 4 + %3 = alloca %struct.point666, align 4 + %4 = bitcast %struct.point666* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point666* %2 to i8* + %6 = bitcast %struct.point666* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point666* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo667([2 x i64] %0) #0 { + %2 = alloca %struct.point667, align 4 + %3 = alloca %struct.point667, align 4 + %4 = bitcast %struct.point667* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point667* %2 to i8* + %6 = bitcast %struct.point667* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point667* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo668([2 x i64] %0) #0 { + %2 = alloca %struct.point668, align 4 + %3 = alloca %struct.point668, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point668* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point668* %2 to i8* + %9 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point668* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo669([2 x i64] %0) #0 { + %2 = alloca %struct.point669, align 4 + %3 = alloca %struct.point669, align 4 + %4 = bitcast %struct.point669* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point669* %2 to i8* + %6 = bitcast %struct.point669* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point669* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo670([2 x i64] %0) #0 { + %2 = alloca %struct.point670, align 4 + %3 = alloca %struct.point670, align 4 + %4 = bitcast %struct.point670* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point670* %2 to i8* + %6 = bitcast %struct.point670* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point670* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo671([2 x i64] %0) #0 { + %2 = alloca %struct.point671, align 4 + %3 = alloca %struct.point671, align 4 + %4 = bitcast %struct.point671* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point671* %2 to i8* + %6 = bitcast %struct.point671* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point671* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo672([2 x i64] %0) #0 { + %2 = alloca %struct.point672, align 4 + %3 = alloca %struct.point672, align 4 + %4 = bitcast %struct.point672* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point672* %2 to i8* + %6 = bitcast %struct.point672* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point672* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo673([2 x i64] %0) #0 { + %2 = alloca %struct.point673, align 4 + %3 = alloca %struct.point673, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point673* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point673* %2 to i8* + %9 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point673* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo674([2 x i64] %0) #0 { + %2 = alloca %struct.point674, align 4 + %3 = alloca %struct.point674, align 4 + %4 = bitcast %struct.point674* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point674* %2 to i8* + %6 = bitcast %struct.point674* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point674* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo675([2 x i64] %0) #0 { + %2 = alloca %struct.point675, align 4 + %3 = alloca %struct.point675, align 4 + %4 = bitcast %struct.point675* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point675* %2 to i8* + %6 = bitcast %struct.point675* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point675* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo676([2 x i64] %0) #0 { + %2 = alloca %struct.point676, align 4 + %3 = alloca %struct.point676, align 4 + %4 = bitcast %struct.point676* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point676* %2 to i8* + %6 = bitcast %struct.point676* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point676* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo679([2 x i64] %0) #0 { + %2 = alloca %struct.point679, align 4 + %3 = alloca %struct.point679, align 4 + %4 = bitcast %struct.point679* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point679* %2 to i8* + %6 = bitcast %struct.point679* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point679* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo680([2 x i64] %0) #0 { + %2 = alloca %struct.point680, align 4 + %3 = alloca %struct.point680, align 4 + %4 = bitcast %struct.point680* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point680* %2 to i8* + %6 = bitcast %struct.point680* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point680* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo681([2 x i64] %0) #0 { + %2 = alloca %struct.point681, align 4 + %3 = alloca %struct.point681, align 4 + %4 = bitcast %struct.point681* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point681* %2 to i8* + %6 = bitcast %struct.point681* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point681* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo684([2 x i64] %0) #0 { + %2 = alloca %struct.point684, align 4 + %3 = alloca %struct.point684, align 4 + %4 = bitcast %struct.point684* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point684* %2 to i8* + %6 = bitcast %struct.point684* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point684* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo689([2 x i64] %0) #0 { + %2 = alloca %struct.point689, align 4 + %3 = alloca %struct.point689, align 4 + %4 = bitcast %struct.point689* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point689* %2 to i8* + %6 = bitcast %struct.point689* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point689* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo694([2 x i64] %0) #0 { + %2 = alloca %struct.point694, align 4 + %3 = alloca %struct.point694, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point694* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point694* %2 to i8* + %9 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point694* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo695([2 x i64] %0) #0 { + %2 = alloca %struct.point695, align 4 + %3 = alloca %struct.point695, align 4 + %4 = bitcast %struct.point695* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point695* %2 to i8* + %6 = bitcast %struct.point695* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point695* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo696([2 x i64] %0) #0 { + %2 = alloca %struct.point696, align 4 + %3 = alloca %struct.point696, align 4 + %4 = bitcast %struct.point696* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point696* %2 to i8* + %6 = bitcast %struct.point696* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point696* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo697([2 x i64] %0) #0 { + %2 = alloca %struct.point697, align 4 + %3 = alloca %struct.point697, align 4 + %4 = bitcast %struct.point697* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point697* %2 to i8* + %6 = bitcast %struct.point697* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point697* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo700([2 x i64] %0) #0 { + %2 = alloca %struct.point700, align 4 + %3 = alloca %struct.point700, align 4 + %4 = bitcast %struct.point700* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point700* %2 to i8* + %6 = bitcast %struct.point700* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point700* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo701([2 x i64] %0) #0 { + %2 = alloca %struct.point701, align 4 + %3 = alloca %struct.point701, align 4 + %4 = bitcast %struct.point701* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point701* %2 to i8* + %6 = bitcast %struct.point701* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point701* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo702([2 x i64] %0) #0 { + %2 = alloca %struct.point702, align 4 + %3 = alloca %struct.point702, align 4 + %4 = bitcast %struct.point702* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point702* %2 to i8* + %6 = bitcast %struct.point702* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point702* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo705([2 x i64] %0) #0 { + %2 = alloca %struct.point705, align 4 + %3 = alloca %struct.point705, align 4 + %4 = bitcast %struct.point705* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point705* %2 to i8* + %6 = bitcast %struct.point705* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point705* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo710([2 x i64] %0) #0 { + %2 = alloca %struct.point710, align 4 + %3 = alloca %struct.point710, align 4 + %4 = bitcast %struct.point710* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point710* %2 to i8* + %6 = bitcast %struct.point710* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point710* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo715([2 x i64] %0) #0 { + %2 = alloca %struct.point715, align 4 + %3 = alloca %struct.point715, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point715* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point715* %2 to i8* + %9 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point715* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo716([2 x i64] %0) #0 { + %2 = alloca %struct.point716, align 4 + %3 = alloca %struct.point716, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point716* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point716* %2 to i8* + %9 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point716* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo717([2 x i64] %0) #0 { + %2 = alloca %struct.point717, align 4 + %3 = alloca %struct.point717, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point717* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point717* %2 to i8* + %9 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point717* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo718([2 x i64] %0) #0 { + %2 = alloca %struct.point718, align 4 + %3 = alloca %struct.point718, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point718* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point718* %2 to i8* + %9 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point718* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo719([2 x i64] %0) #0 { + %2 = alloca %struct.point719, align 4 + %3 = alloca %struct.point719, align 4 + %4 = bitcast %struct.point719* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point719* %2 to i8* + %6 = bitcast %struct.point719* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point719* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo720([2 x i64] %0) #0 { + %2 = alloca %struct.point720, align 4 + %3 = alloca %struct.point720, align 4 + %4 = bitcast %struct.point720* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point720* %2 to i8* + %6 = bitcast %struct.point720* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point720* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo721([2 x i64] %0) #0 { + %2 = alloca %struct.point721, align 4 + %3 = alloca %struct.point721, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point721* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point721* %2 to i8* + %9 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point721* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo722([2 x i64] %0) #0 { + %2 = alloca %struct.point722, align 4 + %3 = alloca %struct.point722, align 4 + %4 = bitcast %struct.point722* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point722* %2 to i8* + %6 = bitcast %struct.point722* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point722* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo723([2 x i64] %0) #0 { + %2 = alloca %struct.point723, align 4 + %3 = alloca %struct.point723, align 4 + %4 = bitcast %struct.point723* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point723* %2 to i8* + %6 = bitcast %struct.point723* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point723* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo724([2 x i64] %0) #0 { + %2 = alloca %struct.point724, align 4 + %3 = alloca %struct.point724, align 4 + %4 = bitcast %struct.point724* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point724* %2 to i8* + %6 = bitcast %struct.point724* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point724* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo725([2 x i64] %0) #0 { + %2 = alloca %struct.point725, align 4 + %3 = alloca %struct.point725, align 4 + %4 = bitcast %struct.point725* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point725* %2 to i8* + %6 = bitcast %struct.point725* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point725* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo726([2 x i64] %0) #0 { + %2 = alloca %struct.point726, align 4 + %3 = alloca %struct.point726, align 4 + %4 = bitcast %struct.point726* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point726* %2 to i8* + %6 = bitcast %struct.point726* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point726* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo731([2 x i64] %0) #0 { + %2 = alloca %struct.point731, align 4 + %3 = alloca %struct.point731, align 4 + %4 = bitcast %struct.point731* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point731* %2 to i8* + %6 = bitcast %struct.point731* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point731* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo736([2 x i64] %0) #0 { + %2 = alloca %struct.point736, align 4 + %3 = alloca %struct.point736, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point736* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point736* %2 to i8* + %9 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point736* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo737([2 x i64] %0) #0 { + %2 = alloca %struct.point737, align 4 + %3 = alloca %struct.point737, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point737* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point737* %2 to i8* + %9 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point737* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo738([2 x i64] %0) #0 { + %2 = alloca %struct.point738, align 4 + %3 = alloca %struct.point738, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point738* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point738* %2 to i8* + %9 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point738* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo739([2 x i64] %0) #0 { + %2 = alloca %struct.point739, align 4 + %3 = alloca %struct.point739, align 4 + %4 = bitcast %struct.point739* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point739* %2 to i8* + %6 = bitcast %struct.point739* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point739* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo740([2 x i64] %0) #0 { + %2 = alloca %struct.point740, align 4 + %3 = alloca %struct.point740, align 4 + %4 = bitcast %struct.point740* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point740* %2 to i8* + %6 = bitcast %struct.point740* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point740* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo741([2 x i64] %0) #0 { + %2 = alloca %struct.point741, align 4 + %3 = alloca %struct.point741, align 4 + %4 = bitcast %struct.point741* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point741* %2 to i8* + %6 = bitcast %struct.point741* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point741* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo742([2 x i64] %0) #0 { + %2 = alloca %struct.point742, align 4 + %3 = alloca %struct.point742, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point742* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point742* %2 to i8* + %9 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point742* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo743([2 x i64] %0) #0 { + %2 = alloca %struct.point743, align 4 + %3 = alloca %struct.point743, align 4 + %4 = bitcast %struct.point743* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point743* %2 to i8* + %6 = bitcast %struct.point743* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point743* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo744([2 x i64] %0) #0 { + %2 = alloca %struct.point744, align 4 + %3 = alloca %struct.point744, align 4 + %4 = bitcast %struct.point744* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point744* %2 to i8* + %6 = bitcast %struct.point744* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point744* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo745([2 x i64] %0) #0 { + %2 = alloca %struct.point745, align 4 + %3 = alloca %struct.point745, align 4 + %4 = bitcast %struct.point745* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point745* %2 to i8* + %6 = bitcast %struct.point745* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point745* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo746([2 x i64] %0) #0 { + %2 = alloca %struct.point746, align 4 + %3 = alloca %struct.point746, align 4 + %4 = bitcast %struct.point746* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point746* %2 to i8* + %6 = bitcast %struct.point746* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point746* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo747([2 x i64] %0) #0 { + %2 = alloca %struct.point747, align 4 + %3 = alloca %struct.point747, align 4 + %4 = bitcast %struct.point747* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point747* %2 to i8* + %6 = bitcast %struct.point747* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point747* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo752([2 x i64] %0) #0 { + %2 = alloca %struct.point752, align 4 + %3 = alloca %struct.point752, align 4 + %4 = bitcast %struct.point752* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point752* %2 to i8* + %6 = bitcast %struct.point752* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point752* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo757([2 x i64] %0) #0 { + %2 = alloca %struct.point757, align 4 + %3 = alloca %struct.point757, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point757* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point757* %2 to i8* + %9 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point757* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo758([2 x i64] %0) #0 { + %2 = alloca %struct.point758, align 4 + %3 = alloca %struct.point758, align 4 + %4 = bitcast %struct.point758* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point758* %2 to i8* + %6 = bitcast %struct.point758* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point758* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo759([2 x i64] %0) #0 { + %2 = alloca %struct.point759, align 4 + %3 = alloca %struct.point759, align 4 + %4 = bitcast %struct.point759* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point759* %2 to i8* + %6 = bitcast %struct.point759* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point759* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo760([2 x i64] %0) #0 { + %2 = alloca %struct.point760, align 4 + %3 = alloca %struct.point760, align 4 + %4 = bitcast %struct.point760* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point760* %2 to i8* + %6 = bitcast %struct.point760* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point760* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo763([2 x i64] %0) #0 { + %2 = alloca %struct.point763, align 4 + %3 = alloca %struct.point763, align 4 + %4 = bitcast %struct.point763* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point763* %2 to i8* + %6 = bitcast %struct.point763* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point763* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo764([2 x i64] %0) #0 { + %2 = alloca %struct.point764, align 4 + %3 = alloca %struct.point764, align 4 + %4 = bitcast %struct.point764* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point764* %2 to i8* + %6 = bitcast %struct.point764* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point764* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo765([2 x i64] %0) #0 { + %2 = alloca %struct.point765, align 4 + %3 = alloca %struct.point765, align 4 + %4 = bitcast %struct.point765* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point765* %2 to i8* + %6 = bitcast %struct.point765* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point765* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo768([2 x i64] %0) #0 { + %2 = alloca %struct.point768, align 4 + %3 = alloca %struct.point768, align 4 + %4 = bitcast %struct.point768* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point768* %2 to i8* + %6 = bitcast %struct.point768* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point768* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo773([2 x i64] %0) #0 { + %2 = alloca %struct.point773, align 4 + %3 = alloca %struct.point773, align 4 + %4 = bitcast %struct.point773* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point773* %2 to i8* + %6 = bitcast %struct.point773* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point773* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo778([2 x i64] %0) #0 { + %2 = alloca %struct.point778, align 4 + %3 = alloca %struct.point778, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point778* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point778* %2 to i8* + %9 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point778* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo779([2 x i64] %0) #0 { + %2 = alloca %struct.point779, align 4 + %3 = alloca %struct.point779, align 4 + %4 = bitcast %struct.point779* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point779* %2 to i8* + %6 = bitcast %struct.point779* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point779* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo780([2 x i64] %0) #0 { + %2 = alloca %struct.point780, align 4 + %3 = alloca %struct.point780, align 4 + %4 = bitcast %struct.point780* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point780* %2 to i8* + %6 = bitcast %struct.point780* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point780* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo781([2 x i64] %0) #0 { + %2 = alloca %struct.point781, align 4 + %3 = alloca %struct.point781, align 4 + %4 = bitcast %struct.point781* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point781* %2 to i8* + %6 = bitcast %struct.point781* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point781* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo784([2 x i64] %0) #0 { + %2 = alloca %struct.point784, align 4 + %3 = alloca %struct.point784, align 4 + %4 = bitcast %struct.point784* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point784* %2 to i8* + %6 = bitcast %struct.point784* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point784* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo785([2 x i64] %0) #0 { + %2 = alloca %struct.point785, align 4 + %3 = alloca %struct.point785, align 4 + %4 = bitcast %struct.point785* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point785* %2 to i8* + %6 = bitcast %struct.point785* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point785* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo786([2 x i64] %0) #0 { + %2 = alloca %struct.point786, align 4 + %3 = alloca %struct.point786, align 4 + %4 = bitcast %struct.point786* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point786* %2 to i8* + %6 = bitcast %struct.point786* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point786* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo789([2 x i64] %0) #0 { + %2 = alloca %struct.point789, align 4 + %3 = alloca %struct.point789, align 4 + %4 = bitcast %struct.point789* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point789* %2 to i8* + %6 = bitcast %struct.point789* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point789* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo794([2 x i64] %0) #0 { + %2 = alloca %struct.point794, align 4 + %3 = alloca %struct.point794, align 4 + %4 = bitcast %struct.point794* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point794* %2 to i8* + %6 = bitcast %struct.point794* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point794* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo799(i64 %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point799* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo800(i64 %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point800* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo801(i64 %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point801* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo802([2 x i64] %0) #0 { + %2 = alloca %struct.point802, align 4 + %3 = alloca %struct.point802, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point802* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point802* %2 to i8* + %9 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point802* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo803([2 x i64] %0) #0 { + %2 = alloca %struct.point803, align 4 + %3 = alloca %struct.point803, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point803* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point803* %2 to i8* + %9 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point803* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo804([2 x i64] %0) #0 { + %2 = alloca %struct.point804, align 4 + %3 = alloca %struct.point804, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point804* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point804* %2 to i8* + %9 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point804* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo805(i64 %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point805* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo806([2 x i64] %0) #0 { + %2 = alloca %struct.point806, align 4 + %3 = alloca %struct.point806, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point806* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point806* %2 to i8* + %9 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point806* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo807([2 x i64] %0) #0 { + %2 = alloca %struct.point807, align 4 + %3 = alloca %struct.point807, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point807* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point807* %2 to i8* + %9 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point807* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo808([2 x i64] %0) #0 { + %2 = alloca %struct.point808, align 4 + %3 = alloca %struct.point808, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point808* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point808* %2 to i8* + %9 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point808* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo809([2 x i64] %0) #0 { + %2 = alloca %struct.point809, align 4 + %3 = alloca %struct.point809, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point809* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point809* %2 to i8* + %9 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point809* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo810([2 x i64] %0) #0 { + %2 = alloca %struct.point810, align 4 + %3 = alloca %struct.point810, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point810* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point810* %2 to i8* + %9 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point810* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo811([2 x i64] %0) #0 { + %2 = alloca %struct.point811, align 4 + %3 = alloca %struct.point811, align 4 + %4 = bitcast %struct.point811* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point811* %2 to i8* + %6 = bitcast %struct.point811* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point811* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo812([2 x i64] %0) #0 { + %2 = alloca %struct.point812, align 4 + %3 = alloca %struct.point812, align 4 + %4 = bitcast %struct.point812* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point812* %2 to i8* + %6 = bitcast %struct.point812* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point812* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo813([2 x i64] %0) #0 { + %2 = alloca %struct.point813, align 4 + %3 = alloca %struct.point813, align 4 + %4 = bitcast %struct.point813* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point813* %2 to i8* + %6 = bitcast %struct.point813* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point813* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo814([2 x i64] %0) #0 { + %2 = alloca %struct.point814, align 4 + %3 = alloca %struct.point814, align 4 + %4 = bitcast %struct.point814* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point814* %2 to i8* + %6 = bitcast %struct.point814* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point814* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo815([2 x i64] %0) #0 { + %2 = alloca %struct.point815, align 4 + %3 = alloca %struct.point815, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point815* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point815* %2 to i8* + %9 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point815* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo816([2 x i64] %0) #0 { + %2 = alloca %struct.point816, align 4 + %3 = alloca %struct.point816, align 4 + %4 = bitcast %struct.point816* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point816* %2 to i8* + %6 = bitcast %struct.point816* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point816* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo817([2 x i64] %0) #0 { + %2 = alloca %struct.point817, align 4 + %3 = alloca %struct.point817, align 4 + %4 = bitcast %struct.point817* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point817* %2 to i8* + %6 = bitcast %struct.point817* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point817* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo818([2 x i64] %0) #0 { + %2 = alloca %struct.point818, align 4 + %3 = alloca %struct.point818, align 4 + %4 = bitcast %struct.point818* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point818* %2 to i8* + %6 = bitcast %struct.point818* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point818* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo819([2 x i64] %0) #0 { + %2 = alloca %struct.point819, align 4 + %3 = alloca %struct.point819, align 4 + %4 = bitcast %struct.point819* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point819* %2 to i8* + %6 = bitcast %struct.point819* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point819* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo820(i64 %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point820* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo821([2 x i64] %0) #0 { + %2 = alloca %struct.point821, align 4 + %3 = alloca %struct.point821, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point821* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point821* %2 to i8* + %9 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point821* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo822([2 x i64] %0) #0 { + %2 = alloca %struct.point822, align 4 + %3 = alloca %struct.point822, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point822* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point822* %2 to i8* + %9 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point822* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo823([2 x i64] %0) #0 { + %2 = alloca %struct.point823, align 4 + %3 = alloca %struct.point823, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point823* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point823* %2 to i8* + %9 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point823* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo824([2 x i64] %0) #0 { + %2 = alloca %struct.point824, align 4 + %3 = alloca %struct.point824, align 4 + %4 = bitcast %struct.point824* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point824* %2 to i8* + %6 = bitcast %struct.point824* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point824* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo825([2 x i64] %0) #0 { + %2 = alloca %struct.point825, align 4 + %3 = alloca %struct.point825, align 4 + %4 = bitcast %struct.point825* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point825* %2 to i8* + %6 = bitcast %struct.point825* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point825* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo826([2 x i64] %0) #0 { + %2 = alloca %struct.point826, align 4 + %3 = alloca %struct.point826, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point826* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point826* %2 to i8* + %9 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point826* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo827([2 x i64] %0) #0 { + %2 = alloca %struct.point827, align 4 + %3 = alloca %struct.point827, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point827* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point827* %2 to i8* + %9 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point827* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo828([2 x i64] %0) #0 { + %2 = alloca %struct.point828, align 4 + %3 = alloca %struct.point828, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point828* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point828* %2 to i8* + %9 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point828* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo829([2 x i64] %0) #0 { + %2 = alloca %struct.point829, align 4 + %3 = alloca %struct.point829, align 4 + %4 = bitcast %struct.point829* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point829* %2 to i8* + %6 = bitcast %struct.point829* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point829* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo830([2 x i64] %0) #0 { + %2 = alloca %struct.point830, align 4 + %3 = alloca %struct.point830, align 4 + %4 = bitcast %struct.point830* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point830* %2 to i8* + %6 = bitcast %struct.point830* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point830* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo831([2 x i64] %0) #0 { + %2 = alloca %struct.point831, align 4 + %3 = alloca %struct.point831, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point831* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point831* %2 to i8* + %9 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point831* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo832([2 x i64] %0) #0 { + %2 = alloca %struct.point832, align 4 + %3 = alloca %struct.point832, align 4 + %4 = bitcast %struct.point832* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point832* %2 to i8* + %6 = bitcast %struct.point832* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point832* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo833([2 x i64] %0) #0 { + %2 = alloca %struct.point833, align 4 + %3 = alloca %struct.point833, align 4 + %4 = bitcast %struct.point833* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point833* %2 to i8* + %6 = bitcast %struct.point833* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point833* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo834([2 x i64] %0) #0 { + %2 = alloca %struct.point834, align 4 + %3 = alloca %struct.point834, align 4 + %4 = bitcast %struct.point834* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point834* %2 to i8* + %6 = bitcast %struct.point834* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point834* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo835([2 x i64] %0) #0 { + %2 = alloca %struct.point835, align 4 + %3 = alloca %struct.point835, align 4 + %4 = bitcast %struct.point835* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point835* %2 to i8* + %6 = bitcast %struct.point835* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point835* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo836([2 x i64] %0) #0 { + %2 = alloca %struct.point836, align 4 + %3 = alloca %struct.point836, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point836* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point836* %2 to i8* + %9 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point836* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo837([2 x i64] %0) #0 { + %2 = alloca %struct.point837, align 4 + %3 = alloca %struct.point837, align 4 + %4 = bitcast %struct.point837* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point837* %2 to i8* + %6 = bitcast %struct.point837* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point837* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo838([2 x i64] %0) #0 { + %2 = alloca %struct.point838, align 4 + %3 = alloca %struct.point838, align 4 + %4 = bitcast %struct.point838* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point838* %2 to i8* + %6 = bitcast %struct.point838* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point838* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo839([2 x i64] %0) #0 { + %2 = alloca %struct.point839, align 4 + %3 = alloca %struct.point839, align 4 + %4 = bitcast %struct.point839* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point839* %2 to i8* + %6 = bitcast %struct.point839* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point839* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo840([2 x i64] %0) #0 { + %2 = alloca %struct.point840, align 4 + %3 = alloca %struct.point840, align 4 + %4 = bitcast %struct.point840* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point840* %2 to i8* + %6 = bitcast %struct.point840* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point840* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo841([2 x i64] %0) #0 { + %2 = alloca %struct.point841, align 4 + %3 = alloca %struct.point841, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point841* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point841* %2 to i8* + %9 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point841* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo842([2 x i64] %0) #0 { + %2 = alloca %struct.point842, align 4 + %3 = alloca %struct.point842, align 4 + %4 = bitcast %struct.point842* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point842* %2 to i8* + %6 = bitcast %struct.point842* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point842* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo843([2 x i64] %0) #0 { + %2 = alloca %struct.point843, align 4 + %3 = alloca %struct.point843, align 4 + %4 = bitcast %struct.point843* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point843* %2 to i8* + %6 = bitcast %struct.point843* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point843* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo844([2 x i64] %0) #0 { + %2 = alloca %struct.point844, align 4 + %3 = alloca %struct.point844, align 4 + %4 = bitcast %struct.point844* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point844* %2 to i8* + %6 = bitcast %struct.point844* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point844* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo847([2 x i64] %0) #0 { + %2 = alloca %struct.point847, align 4 + %3 = alloca %struct.point847, align 4 + %4 = bitcast %struct.point847* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point847* %2 to i8* + %6 = bitcast %struct.point847* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point847* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo848([2 x i64] %0) #0 { + %2 = alloca %struct.point848, align 4 + %3 = alloca %struct.point848, align 4 + %4 = bitcast %struct.point848* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point848* %2 to i8* + %6 = bitcast %struct.point848* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point848* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo849([2 x i64] %0) #0 { + %2 = alloca %struct.point849, align 4 + %3 = alloca %struct.point849, align 4 + %4 = bitcast %struct.point849* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point849* %2 to i8* + %6 = bitcast %struct.point849* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point849* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo852([2 x i64] %0) #0 { + %2 = alloca %struct.point852, align 4 + %3 = alloca %struct.point852, align 4 + %4 = bitcast %struct.point852* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point852* %2 to i8* + %6 = bitcast %struct.point852* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point852* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo857([2 x i64] %0) #0 { + %2 = alloca %struct.point857, align 4 + %3 = alloca %struct.point857, align 4 + %4 = bitcast %struct.point857* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point857* %2 to i8* + %6 = bitcast %struct.point857* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point857* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo862([2 x i64] %0) #0 { + %2 = alloca %struct.point862, align 4 + %3 = alloca %struct.point862, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point862* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point862* %2 to i8* + %9 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point862* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo863([2 x i64] %0) #0 { + %2 = alloca %struct.point863, align 4 + %3 = alloca %struct.point863, align 4 + %4 = bitcast %struct.point863* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point863* %2 to i8* + %6 = bitcast %struct.point863* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point863* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo864([2 x i64] %0) #0 { + %2 = alloca %struct.point864, align 4 + %3 = alloca %struct.point864, align 4 + %4 = bitcast %struct.point864* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point864* %2 to i8* + %6 = bitcast %struct.point864* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point864* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo865([2 x i64] %0) #0 { + %2 = alloca %struct.point865, align 4 + %3 = alloca %struct.point865, align 4 + %4 = bitcast %struct.point865* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point865* %2 to i8* + %6 = bitcast %struct.point865* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point865* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo868([2 x i64] %0) #0 { + %2 = alloca %struct.point868, align 4 + %3 = alloca %struct.point868, align 4 + %4 = bitcast %struct.point868* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point868* %2 to i8* + %6 = bitcast %struct.point868* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point868* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo869([2 x i64] %0) #0 { + %2 = alloca %struct.point869, align 4 + %3 = alloca %struct.point869, align 4 + %4 = bitcast %struct.point869* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point869* %2 to i8* + %6 = bitcast %struct.point869* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point869* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo870([2 x i64] %0) #0 { + %2 = alloca %struct.point870, align 4 + %3 = alloca %struct.point870, align 4 + %4 = bitcast %struct.point870* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point870* %2 to i8* + %6 = bitcast %struct.point870* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point870* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo873([2 x i64] %0) #0 { + %2 = alloca %struct.point873, align 4 + %3 = alloca %struct.point873, align 4 + %4 = bitcast %struct.point873* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point873* %2 to i8* + %6 = bitcast %struct.point873* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point873* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo878([2 x i64] %0) #0 { + %2 = alloca %struct.point878, align 4 + %3 = alloca %struct.point878, align 4 + %4 = bitcast %struct.point878* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point878* %2 to i8* + %6 = bitcast %struct.point878* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point878* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo883(i64 %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point883* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo884(i64 %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point884* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo885([2 x i64] %0) #0 { + %2 = alloca %struct.point885, align 4 + %3 = alloca %struct.point885, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point885* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point885* %2 to i8* + %9 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point885* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo886([2 x i64] %0) #0 { + %2 = alloca %struct.point886, align 4 + %3 = alloca %struct.point886, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point886* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point886* %2 to i8* + %9 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point886* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo887([2 x i64] %0) #0 { + %2 = alloca %struct.point887, align 4 + %3 = alloca %struct.point887, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point887* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point887* %2 to i8* + %9 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point887* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo888([2 x i64] %0) #0 { + %2 = alloca %struct.point888, align 4 + %3 = alloca %struct.point888, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point888* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point888* %2 to i8* + %9 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point888* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo889([2 x i64] %0) #0 { + %2 = alloca %struct.point889, align 4 + %3 = alloca %struct.point889, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point889* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point889* %2 to i8* + %9 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point889* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo890([2 x i64] %0) #0 { + %2 = alloca %struct.point890, align 4 + %3 = alloca %struct.point890, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point890* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point890* %2 to i8* + %9 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point890* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo891([2 x i64] %0) #0 { + %2 = alloca %struct.point891, align 4 + %3 = alloca %struct.point891, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point891* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point891* %2 to i8* + %9 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point891* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo892([2 x i64] %0) #0 { + %2 = alloca %struct.point892, align 4 + %3 = alloca %struct.point892, align 4 + %4 = bitcast %struct.point892* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point892* %2 to i8* + %6 = bitcast %struct.point892* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point892* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo893([2 x i64] %0) #0 { + %2 = alloca %struct.point893, align 4 + %3 = alloca %struct.point893, align 4 + %4 = bitcast %struct.point893* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point893* %2 to i8* + %6 = bitcast %struct.point893* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point893* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo894([2 x i64] %0) #0 { + %2 = alloca %struct.point894, align 4 + %3 = alloca %struct.point894, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point894* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point894* %2 to i8* + %9 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point894* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo895([2 x i64] %0) #0 { + %2 = alloca %struct.point895, align 4 + %3 = alloca %struct.point895, align 4 + %4 = bitcast %struct.point895* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point895* %2 to i8* + %6 = bitcast %struct.point895* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point895* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo896([2 x i64] %0) #0 { + %2 = alloca %struct.point896, align 4 + %3 = alloca %struct.point896, align 4 + %4 = bitcast %struct.point896* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point896* %2 to i8* + %6 = bitcast %struct.point896* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point896* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo897([2 x i64] %0) #0 { + %2 = alloca %struct.point897, align 4 + %3 = alloca %struct.point897, align 4 + %4 = bitcast %struct.point897* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point897* %2 to i8* + %6 = bitcast %struct.point897* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point897* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo898([2 x i64] %0) #0 { + %2 = alloca %struct.point898, align 4 + %3 = alloca %struct.point898, align 4 + %4 = bitcast %struct.point898* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point898* %2 to i8* + %6 = bitcast %struct.point898* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point898* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo899([2 x i64] %0) #0 { + %2 = alloca %struct.point899, align 4 + %3 = alloca %struct.point899, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point899* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point899* %2 to i8* + %9 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point899* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo900([2 x i64] %0) #0 { + %2 = alloca %struct.point900, align 4 + %3 = alloca %struct.point900, align 4 + %4 = bitcast %struct.point900* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point900* %2 to i8* + %6 = bitcast %struct.point900* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point900* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo901([2 x i64] %0) #0 { + %2 = alloca %struct.point901, align 4 + %3 = alloca %struct.point901, align 4 + %4 = bitcast %struct.point901* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point901* %2 to i8* + %6 = bitcast %struct.point901* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point901* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo902([2 x i64] %0) #0 { + %2 = alloca %struct.point902, align 4 + %3 = alloca %struct.point902, align 4 + %4 = bitcast %struct.point902* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point902* %2 to i8* + %6 = bitcast %struct.point902* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point902* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo903([2 x i64] %0) #0 { + %2 = alloca %struct.point903, align 4 + %3 = alloca %struct.point903, align 4 + %4 = bitcast %struct.point903* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point903* %2 to i8* + %6 = bitcast %struct.point903* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point903* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo904(i64 %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point904* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo905([2 x i64] %0) #0 { + %2 = alloca %struct.point905, align 4 + %3 = alloca %struct.point905, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point905* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point905* %2 to i8* + %9 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point905* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo906([2 x i64] %0) #0 { + %2 = alloca %struct.point906, align 4 + %3 = alloca %struct.point906, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point906* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point906* %2 to i8* + %9 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point906* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo907([2 x i64] %0) #0 { + %2 = alloca %struct.point907, align 4 + %3 = alloca %struct.point907, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point907* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point907* %2 to i8* + %9 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point907* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo908([2 x i64] %0) #0 { + %2 = alloca %struct.point908, align 4 + %3 = alloca %struct.point908, align 4 + %4 = bitcast %struct.point908* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point908* %2 to i8* + %6 = bitcast %struct.point908* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point908* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo909([2 x i64] %0) #0 { + %2 = alloca %struct.point909, align 4 + %3 = alloca %struct.point909, align 4 + %4 = bitcast %struct.point909* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point909* %2 to i8* + %6 = bitcast %struct.point909* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point909* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo910([2 x i64] %0) #0 { + %2 = alloca %struct.point910, align 4 + %3 = alloca %struct.point910, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point910* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point910* %2 to i8* + %9 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point910* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo911([2 x i64] %0) #0 { + %2 = alloca %struct.point911, align 4 + %3 = alloca %struct.point911, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point911* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point911* %2 to i8* + %9 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point911* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo912([2 x i64] %0) #0 { + %2 = alloca %struct.point912, align 4 + %3 = alloca %struct.point912, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point912* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point912* %2 to i8* + %9 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point912* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo913([2 x i64] %0) #0 { + %2 = alloca %struct.point913, align 4 + %3 = alloca %struct.point913, align 4 + %4 = bitcast %struct.point913* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point913* %2 to i8* + %6 = bitcast %struct.point913* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point913* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo914([2 x i64] %0) #0 { + %2 = alloca %struct.point914, align 4 + %3 = alloca %struct.point914, align 4 + %4 = bitcast %struct.point914* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point914* %2 to i8* + %6 = bitcast %struct.point914* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point914* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo915([2 x i64] %0) #0 { + %2 = alloca %struct.point915, align 4 + %3 = alloca %struct.point915, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point915* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point915* %2 to i8* + %9 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point915* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo916([2 x i64] %0) #0 { + %2 = alloca %struct.point916, align 4 + %3 = alloca %struct.point916, align 4 + %4 = bitcast %struct.point916* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point916* %2 to i8* + %6 = bitcast %struct.point916* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point916* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo917([2 x i64] %0) #0 { + %2 = alloca %struct.point917, align 4 + %3 = alloca %struct.point917, align 4 + %4 = bitcast %struct.point917* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point917* %2 to i8* + %6 = bitcast %struct.point917* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point917* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo918([2 x i64] %0) #0 { + %2 = alloca %struct.point918, align 4 + %3 = alloca %struct.point918, align 4 + %4 = bitcast %struct.point918* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point918* %2 to i8* + %6 = bitcast %struct.point918* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point918* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo919([2 x i64] %0) #0 { + %2 = alloca %struct.point919, align 4 + %3 = alloca %struct.point919, align 4 + %4 = bitcast %struct.point919* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point919* %2 to i8* + %6 = bitcast %struct.point919* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point919* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo920([2 x i64] %0) #0 { + %2 = alloca %struct.point920, align 4 + %3 = alloca %struct.point920, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point920* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point920* %2 to i8* + %9 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point920* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo921([2 x i64] %0) #0 { + %2 = alloca %struct.point921, align 4 + %3 = alloca %struct.point921, align 4 + %4 = bitcast %struct.point921* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point921* %2 to i8* + %6 = bitcast %struct.point921* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point921* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo922([2 x i64] %0) #0 { + %2 = alloca %struct.point922, align 4 + %3 = alloca %struct.point922, align 4 + %4 = bitcast %struct.point922* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point922* %2 to i8* + %6 = bitcast %struct.point922* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point922* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo923([2 x i64] %0) #0 { + %2 = alloca %struct.point923, align 4 + %3 = alloca %struct.point923, align 4 + %4 = bitcast %struct.point923* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point923* %2 to i8* + %6 = bitcast %struct.point923* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point923* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo924([2 x i64] %0) #0 { + %2 = alloca %struct.point924, align 4 + %3 = alloca %struct.point924, align 4 + %4 = bitcast %struct.point924* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point924* %2 to i8* + %6 = bitcast %struct.point924* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point924* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo925([2 x i64] %0) #0 { + %2 = alloca %struct.point925, align 4 + %3 = alloca %struct.point925, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point925* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point925* %2 to i8* + %9 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point925* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo926([2 x i64] %0) #0 { + %2 = alloca %struct.point926, align 4 + %3 = alloca %struct.point926, align 4 + %4 = bitcast %struct.point926* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point926* %2 to i8* + %6 = bitcast %struct.point926* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point926* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo927([2 x i64] %0) #0 { + %2 = alloca %struct.point927, align 4 + %3 = alloca %struct.point927, align 4 + %4 = bitcast %struct.point927* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point927* %2 to i8* + %6 = bitcast %struct.point927* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point927* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo928([2 x i64] %0) #0 { + %2 = alloca %struct.point928, align 4 + %3 = alloca %struct.point928, align 4 + %4 = bitcast %struct.point928* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point928* %2 to i8* + %6 = bitcast %struct.point928* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point928* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo931([2 x i64] %0) #0 { + %2 = alloca %struct.point931, align 4 + %3 = alloca %struct.point931, align 4 + %4 = bitcast %struct.point931* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point931* %2 to i8* + %6 = bitcast %struct.point931* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point931* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo932([2 x i64] %0) #0 { + %2 = alloca %struct.point932, align 4 + %3 = alloca %struct.point932, align 4 + %4 = bitcast %struct.point932* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point932* %2 to i8* + %6 = bitcast %struct.point932* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point932* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo933([2 x i64] %0) #0 { + %2 = alloca %struct.point933, align 4 + %3 = alloca %struct.point933, align 4 + %4 = bitcast %struct.point933* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point933* %2 to i8* + %6 = bitcast %struct.point933* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point933* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo936([2 x i64] %0) #0 { + %2 = alloca %struct.point936, align 4 + %3 = alloca %struct.point936, align 4 + %4 = bitcast %struct.point936* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point936* %2 to i8* + %6 = bitcast %struct.point936* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point936* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo941([2 x i64] %0) #0 { + %2 = alloca %struct.point941, align 4 + %3 = alloca %struct.point941, align 4 + %4 = bitcast %struct.point941* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point941* %2 to i8* + %6 = bitcast %struct.point941* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point941* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo946([2 x i64] %0) #0 { + %2 = alloca %struct.point946, align 4 + %3 = alloca %struct.point946, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point946* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point946* %2 to i8* + %9 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point946* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo947([2 x i64] %0) #0 { + %2 = alloca %struct.point947, align 4 + %3 = alloca %struct.point947, align 4 + %4 = bitcast %struct.point947* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point947* %2 to i8* + %6 = bitcast %struct.point947* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point947* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo948([2 x i64] %0) #0 { + %2 = alloca %struct.point948, align 4 + %3 = alloca %struct.point948, align 4 + %4 = bitcast %struct.point948* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point948* %2 to i8* + %6 = bitcast %struct.point948* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point948* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo949([2 x i64] %0) #0 { + %2 = alloca %struct.point949, align 4 + %3 = alloca %struct.point949, align 4 + %4 = bitcast %struct.point949* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point949* %2 to i8* + %6 = bitcast %struct.point949* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point949* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo952([2 x i64] %0) #0 { + %2 = alloca %struct.point952, align 4 + %3 = alloca %struct.point952, align 4 + %4 = bitcast %struct.point952* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point952* %2 to i8* + %6 = bitcast %struct.point952* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point952* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo953([2 x i64] %0) #0 { + %2 = alloca %struct.point953, align 4 + %3 = alloca %struct.point953, align 4 + %4 = bitcast %struct.point953* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point953* %2 to i8* + %6 = bitcast %struct.point953* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point953* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo954([2 x i64] %0) #0 { + %2 = alloca %struct.point954, align 4 + %3 = alloca %struct.point954, align 4 + %4 = bitcast %struct.point954* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point954* %2 to i8* + %6 = bitcast %struct.point954* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point954* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo957([2 x i64] %0) #0 { + %2 = alloca %struct.point957, align 4 + %3 = alloca %struct.point957, align 4 + %4 = bitcast %struct.point957* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point957* %2 to i8* + %6 = bitcast %struct.point957* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point957* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo962([2 x i64] %0) #0 { + %2 = alloca %struct.point962, align 4 + %3 = alloca %struct.point962, align 4 + %4 = bitcast %struct.point962* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point962* %2 to i8* + %6 = bitcast %struct.point962* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point962* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo967([2 x i64] %0) #0 { + %2 = alloca %struct.point967, align 4 + %3 = alloca %struct.point967, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point967* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point967* %2 to i8* + %9 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point967* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo968([2 x i64] %0) #0 { + %2 = alloca %struct.point968, align 4 + %3 = alloca %struct.point968, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point968* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point968* %2 to i8* + %9 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point968* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo969([2 x i64] %0) #0 { + %2 = alloca %struct.point969, align 4 + %3 = alloca %struct.point969, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point969* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point969* %2 to i8* + %9 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point969* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo970([2 x i64] %0) #0 { + %2 = alloca %struct.point970, align 4 + %3 = alloca %struct.point970, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point970* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point970* %2 to i8* + %9 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point970* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo971([2 x i64] %0) #0 { + %2 = alloca %struct.point971, align 4 + %3 = alloca %struct.point971, align 4 + %4 = bitcast %struct.point971* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point971* %2 to i8* + %6 = bitcast %struct.point971* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point971* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo972([2 x i64] %0) #0 { + %2 = alloca %struct.point972, align 4 + %3 = alloca %struct.point972, align 4 + %4 = bitcast %struct.point972* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point972* %2 to i8* + %6 = bitcast %struct.point972* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point972* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo973([2 x i64] %0) #0 { + %2 = alloca %struct.point973, align 4 + %3 = alloca %struct.point973, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point973* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point973* %2 to i8* + %9 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point973* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo974([2 x i64] %0) #0 { + %2 = alloca %struct.point974, align 4 + %3 = alloca %struct.point974, align 4 + %4 = bitcast %struct.point974* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point974* %2 to i8* + %6 = bitcast %struct.point974* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point974* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo975([2 x i64] %0) #0 { + %2 = alloca %struct.point975, align 4 + %3 = alloca %struct.point975, align 4 + %4 = bitcast %struct.point975* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point975* %2 to i8* + %6 = bitcast %struct.point975* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point975* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo976([2 x i64] %0) #0 { + %2 = alloca %struct.point976, align 4 + %3 = alloca %struct.point976, align 4 + %4 = bitcast %struct.point976* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point976* %2 to i8* + %6 = bitcast %struct.point976* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point976* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo977([2 x i64] %0) #0 { + %2 = alloca %struct.point977, align 4 + %3 = alloca %struct.point977, align 4 + %4 = bitcast %struct.point977* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point977* %2 to i8* + %6 = bitcast %struct.point977* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point977* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo978([2 x i64] %0) #0 { + %2 = alloca %struct.point978, align 4 + %3 = alloca %struct.point978, align 4 + %4 = bitcast %struct.point978* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point978* %2 to i8* + %6 = bitcast %struct.point978* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point978* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo983([2 x i64] %0) #0 { + %2 = alloca %struct.point983, align 4 + %3 = alloca %struct.point983, align 4 + %4 = bitcast %struct.point983* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point983* %2 to i8* + %6 = bitcast %struct.point983* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point983* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo988([2 x i64] %0) #0 { + %2 = alloca %struct.point988, align 4 + %3 = alloca %struct.point988, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point988* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point988* %2 to i8* + %9 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point988* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo989([2 x i64] %0) #0 { + %2 = alloca %struct.point989, align 4 + %3 = alloca %struct.point989, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point989* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point989* %2 to i8* + %9 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point989* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo990([2 x i64] %0) #0 { + %2 = alloca %struct.point990, align 4 + %3 = alloca %struct.point990, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point990* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point990* %2 to i8* + %9 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point990* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo991([2 x i64] %0) #0 { + %2 = alloca %struct.point991, align 4 + %3 = alloca %struct.point991, align 4 + %4 = bitcast %struct.point991* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point991* %2 to i8* + %6 = bitcast %struct.point991* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point991* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo992([2 x i64] %0) #0 { + %2 = alloca %struct.point992, align 4 + %3 = alloca %struct.point992, align 4 + %4 = bitcast %struct.point992* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point992* %2 to i8* + %6 = bitcast %struct.point992* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point992* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo993([2 x i64] %0) #0 { + %2 = alloca %struct.point993, align 4 + %3 = alloca %struct.point993, align 4 + %4 = bitcast %struct.point993* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point993* %2 to i8* + %6 = bitcast %struct.point993* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point993* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo994([2 x i64] %0) #0 { + %2 = alloca %struct.point994, align 4 + %3 = alloca %struct.point994, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point994* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point994* %2 to i8* + %9 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point994* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo995([2 x i64] %0) #0 { + %2 = alloca %struct.point995, align 4 + %3 = alloca %struct.point995, align 4 + %4 = bitcast %struct.point995* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point995* %2 to i8* + %6 = bitcast %struct.point995* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point995* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo996([2 x i64] %0) #0 { + %2 = alloca %struct.point996, align 4 + %3 = alloca %struct.point996, align 4 + %4 = bitcast %struct.point996* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point996* %2 to i8* + %6 = bitcast %struct.point996* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point996* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo997([2 x i64] %0) #0 { + %2 = alloca %struct.point997, align 4 + %3 = alloca %struct.point997, align 4 + %4 = bitcast %struct.point997* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point997* %2 to i8* + %6 = bitcast %struct.point997* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point997* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo998([2 x i64] %0) #0 { + %2 = alloca %struct.point998, align 4 + %3 = alloca %struct.point998, align 4 + %4 = bitcast %struct.point998* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point998* %2 to i8* + %6 = bitcast %struct.point998* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point998* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo999([2 x i64] %0) #0 { + %2 = alloca %struct.point999, align 4 + %3 = alloca %struct.point999, align 4 + %4 = bitcast %struct.point999* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point999* %2 to i8* + %6 = bitcast %struct.point999* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point999* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1004([2 x i64] %0) #0 { + %2 = alloca %struct.point1004, align 4 + %3 = alloca %struct.point1004, align 4 + %4 = bitcast %struct.point1004* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1004* %2 to i8* + %6 = bitcast %struct.point1004* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1004* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1009([2 x i64] %0) #0 { + %2 = alloca %struct.point1009, align 4 + %3 = alloca %struct.point1009, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1009* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1009* %2 to i8* + %9 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1009* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1010([2 x i64] %0) #0 { + %2 = alloca %struct.point1010, align 4 + %3 = alloca %struct.point1010, align 4 + %4 = bitcast %struct.point1010* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1010* %2 to i8* + %6 = bitcast %struct.point1010* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1010* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1011([2 x i64] %0) #0 { + %2 = alloca %struct.point1011, align 4 + %3 = alloca %struct.point1011, align 4 + %4 = bitcast %struct.point1011* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1011* %2 to i8* + %6 = bitcast %struct.point1011* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1011* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1012([2 x i64] %0) #0 { + %2 = alloca %struct.point1012, align 4 + %3 = alloca %struct.point1012, align 4 + %4 = bitcast %struct.point1012* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1012* %2 to i8* + %6 = bitcast %struct.point1012* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1012* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1015([2 x i64] %0) #0 { + %2 = alloca %struct.point1015, align 4 + %3 = alloca %struct.point1015, align 4 + %4 = bitcast %struct.point1015* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1015* %2 to i8* + %6 = bitcast %struct.point1015* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1015* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1016([2 x i64] %0) #0 { + %2 = alloca %struct.point1016, align 4 + %3 = alloca %struct.point1016, align 4 + %4 = bitcast %struct.point1016* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1016* %2 to i8* + %6 = bitcast %struct.point1016* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1016* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1017([2 x i64] %0) #0 { + %2 = alloca %struct.point1017, align 4 + %3 = alloca %struct.point1017, align 4 + %4 = bitcast %struct.point1017* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1017* %2 to i8* + %6 = bitcast %struct.point1017* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1017* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1020([2 x i64] %0) #0 { + %2 = alloca %struct.point1020, align 4 + %3 = alloca %struct.point1020, align 4 + %4 = bitcast %struct.point1020* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1020* %2 to i8* + %6 = bitcast %struct.point1020* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1020* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1025([2 x i64] %0) #0 { + %2 = alloca %struct.point1025, align 4 + %3 = alloca %struct.point1025, align 4 + %4 = bitcast %struct.point1025* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1025* %2 to i8* + %6 = bitcast %struct.point1025* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1025* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1030([2 x i64] %0) #0 { + %2 = alloca %struct.point1030, align 4 + %3 = alloca %struct.point1030, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1030* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1030* %2 to i8* + %9 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1030* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1031([2 x i64] %0) #0 { + %2 = alloca %struct.point1031, align 4 + %3 = alloca %struct.point1031, align 4 + %4 = bitcast %struct.point1031* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1031* %2 to i8* + %6 = bitcast %struct.point1031* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1031* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1032([2 x i64] %0) #0 { + %2 = alloca %struct.point1032, align 4 + %3 = alloca %struct.point1032, align 4 + %4 = bitcast %struct.point1032* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1032* %2 to i8* + %6 = bitcast %struct.point1032* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1032* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1033([2 x i64] %0) #0 { + %2 = alloca %struct.point1033, align 4 + %3 = alloca %struct.point1033, align 4 + %4 = bitcast %struct.point1033* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1033* %2 to i8* + %6 = bitcast %struct.point1033* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1033* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1036([2 x i64] %0) #0 { + %2 = alloca %struct.point1036, align 4 + %3 = alloca %struct.point1036, align 4 + %4 = bitcast %struct.point1036* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1036* %2 to i8* + %6 = bitcast %struct.point1036* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1036* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1037([2 x i64] %0) #0 { + %2 = alloca %struct.point1037, align 4 + %3 = alloca %struct.point1037, align 4 + %4 = bitcast %struct.point1037* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1037* %2 to i8* + %6 = bitcast %struct.point1037* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1037* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1038([2 x i64] %0) #0 { + %2 = alloca %struct.point1038, align 4 + %3 = alloca %struct.point1038, align 4 + %4 = bitcast %struct.point1038* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1038* %2 to i8* + %6 = bitcast %struct.point1038* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1038* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1041([2 x i64] %0) #0 { + %2 = alloca %struct.point1041, align 4 + %3 = alloca %struct.point1041, align 4 + %4 = bitcast %struct.point1041* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1041* %2 to i8* + %6 = bitcast %struct.point1041* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1041* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1046([2 x i64] %0) #0 { + %2 = alloca %struct.point1046, align 4 + %3 = alloca %struct.point1046, align 4 + %4 = bitcast %struct.point1046* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1046* %2 to i8* + %6 = bitcast %struct.point1046* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1046* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64_lp64f/struct_pointer.ll b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_pointer.ll new file mode 100644 index 00000000..1cc95643 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64_lp64f/struct_pointer.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i64 %0 to i8* + store i8* %5, i8** %4, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 8 + %10 = ptrtoint i8* %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64f"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll b/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll deleted file mode 100644 index 47dc59db..00000000 --- a/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll +++ /dev/null @@ -1,205 +0,0 @@ -; ModuleID = '../../wrap/array_uintptr.c' -source_filename = "../../wrap/array_uintptr.c" -target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" -target triple = "wasm32-unknown-emscripten" - -%struct.array1 = type { [1 x i8*] } -%struct.array2 = type { [2 x i8*] } -%struct.array3 = type { [3 x i8*] } -%struct.array4 = type { [4 x i8*] } -%struct.array5 = type { [5 x i8*] } -%struct.array6 = type { [6 x i8*] } -%struct.array7 = type { [7 x i8*] } -%struct.array8 = type { [8 x i8*] } -%struct.array9 = type { [9 x i8*] } -%struct.array10 = type { [10 x i8*] } -%struct.array11 = type { [11 x i8*] } -%struct.array12 = type { [12 x i8*] } -%struct.array13 = type { [13 x i8*] } -%struct.array14 = type { [14 x i8*] } -%struct.array15 = type { [15 x i8*] } -%struct.array16 = type { [16 x i8*] } -%struct.array17 = type { [17 x i8*] } -%struct.array18 = type { [18 x i8*] } -%struct.array19 = type { [19 x i8*] } -%struct.array20 = type { [20 x i8*] } - -; Function Attrs: noinline nounwind optnone -define hidden i8* @demo1(i8* %0) #0 { - %2 = alloca %struct.array1, align 4 - %3 = alloca %struct.array1, align 4 - %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 - %5 = bitcast [1 x i8*]* %4 to i8** - store i8* %0, i8** %5, align 4 - %6 = bitcast %struct.array1* %2 to i8* - %7 = bitcast %struct.array1* %3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) - %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 - %9 = bitcast [1 x i8*]* %8 to i8** - %10 = load i8*, i8** %9, align 4 - ret i8* %10 -} - -; Function Attrs: argmemonly nofree nounwind willreturn -declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 - -; Function Attrs: noinline nounwind optnone -define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { - %3 = bitcast %struct.array2* %0 to i8* - %4 = bitcast %struct.array2* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { - %3 = bitcast %struct.array3* %0 to i8* - %4 = bitcast %struct.array3* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { - %3 = bitcast %struct.array4* %0 to i8* - %4 = bitcast %struct.array4* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { - %3 = bitcast %struct.array5* %0 to i8* - %4 = bitcast %struct.array5* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { - %3 = bitcast %struct.array6* %0 to i8* - %4 = bitcast %struct.array6* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { - %3 = bitcast %struct.array7* %0 to i8* - %4 = bitcast %struct.array7* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { - %3 = bitcast %struct.array8* %0 to i8* - %4 = bitcast %struct.array8* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { - %3 = bitcast %struct.array9* %0 to i8* - %4 = bitcast %struct.array9* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { - %3 = bitcast %struct.array10* %0 to i8* - %4 = bitcast %struct.array10* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { - %3 = bitcast %struct.array11* %0 to i8* - %4 = bitcast %struct.array11* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { - %3 = bitcast %struct.array12* %0 to i8* - %4 = bitcast %struct.array12* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { - %3 = bitcast %struct.array13* %0 to i8* - %4 = bitcast %struct.array13* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { - %3 = bitcast %struct.array14* %0 to i8* - %4 = bitcast %struct.array14* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { - %3 = bitcast %struct.array15* %0 to i8* - %4 = bitcast %struct.array15* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { - %3 = bitcast %struct.array16* %0 to i8* - %4 = bitcast %struct.array16* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { - %3 = bitcast %struct.array17* %0 to i8* - %4 = bitcast %struct.array17* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { - %3 = bitcast %struct.array18* %0 to i8* - %4 = bitcast %struct.array18* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { - %3 = bitcast %struct.array19* %0 to i8* - %4 = bitcast %struct.array19* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) - ret void -} - -; Function Attrs: noinline nounwind optnone -define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { - %3 = bitcast %struct.array20* %0 to i8* - %4 = bitcast %struct.array20* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) - ret void -} - -attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } -attributes #1 = { argmemonly nofree nounwind willreturn } - -!llvm.module.flags = !{!0} -!llvm.ident = !{!1} - -!0 = !{i32 1, !"wchar_size", i32 4} -!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/basic.ll b/internal/cabi/_testdata/arch/wasm32/basic.ll index cb1fa4ef..0b278086 100644 --- a/internal/cabi/_testdata/arch/wasm32/basic.ll +++ b/internal/cabi/_testdata/arch/wasm32/basic.ll @@ -52,7 +52,7 @@ define hidden double @basic_float64(double noundef %0) #0 { } ; Function Attrs: noinline nounwind optnone -define hidden i8* @basic_uintptr(i8* noundef %0) #0 { +define hidden i8* @basic_pointer(i8* noundef %0) #0 { %2 = alloca i8*, align 4 store i8* %0, i8** %2, align 4 %3 = load i8*, i8** %2, align 4 diff --git a/internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll b/internal/cabi/_testdata/arch/wasm32/struct_pointer.ll similarity index 99% rename from internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll rename to internal/cabi/_testdata/arch/wasm32/struct_pointer.ll index 22b45609..8fd27c5e 100644 --- a/internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll +++ b/internal/cabi/_testdata/arch/wasm32/struct_pointer.ll @@ -1,5 +1,5 @@ -; ModuleID = '../../wrap/struct_uintptr.c' -source_filename = "../../wrap/struct_uintptr.c" +; ModuleID = '../../wrap/struct_pointer.c' +source_filename = "../../wrap/struct_pointer.c" target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" target triple = "wasm32-unknown-emscripten" diff --git a/internal/cabi/_testdata/demo/array_float32.go b/internal/cabi/_testdata/demo/array_float32.go index 4d972ac6..2df38fa1 100644 --- a/internal/cabi/_testdata/demo/array_float32.go +++ b/internal/cabi/_testdata/demo/array_float32.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_float32.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_float64.go b/internal/cabi/_testdata/demo/array_float64.go index 36244ff1..53022a2e 100644 --- a/internal/cabi/_testdata/demo/array_float64.go +++ b/internal/cabi/_testdata/demo/array_float64.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_float64.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_int16.go b/internal/cabi/_testdata/demo/array_int16.go index 57b724ac..dfd0bf80 100644 --- a/internal/cabi/_testdata/demo/array_int16.go +++ b/internal/cabi/_testdata/demo/array_int16.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_int16.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_int32.go b/internal/cabi/_testdata/demo/array_int32.go index 4826ae04..d9808d90 100644 --- a/internal/cabi/_testdata/demo/array_int32.go +++ b/internal/cabi/_testdata/demo/array_int32.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_int32.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_int64.go b/internal/cabi/_testdata/demo/array_int64.go index f6c11185..1e8df961 100644 --- a/internal/cabi/_testdata/demo/array_int64.go +++ b/internal/cabi/_testdata/demo/array_int64.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_int64.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_int8.go b/internal/cabi/_testdata/demo/array_int8.go index 2d4e8a3e..7bf6c564 100644 --- a/internal/cabi/_testdata/demo/array_int8.go +++ b/internal/cabi/_testdata/demo/array_int8.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/array_int8.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/array_pointer.go b/internal/cabi/_testdata/demo/array_pointer.go new file mode 100644 index 00000000..6c0703e4 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_pointer.go @@ -0,0 +1,361 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_pointer.c" +) + +type pointer = *int8 + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]pointer +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]pointer{func() pointer { var a int8 = 1; return &a}()}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]pointer +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}()}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]pointer +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}()}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]pointer +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}()}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]pointer +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}()}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]pointer +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}()}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]pointer +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}()}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]pointer +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}()}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]pointer +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}()}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]pointer +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}()}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]pointer +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}()}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]pointer +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}()}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]pointer +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}()}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]pointer +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}()}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]pointer +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}()}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]pointer +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}()}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]pointer +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}()}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]pointer +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}()}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]pointer +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}(), func() pointer { var a int8 = 19; return &a}()}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]pointer +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]pointer{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}(), func() pointer { var a int8 = 19; return &a}(), func() pointer { var a int8 = 20; return &a}()}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_uintptr.go b/internal/cabi/_testdata/demo/array_uintptr.go deleted file mode 100644 index ecc02853..00000000 --- a/internal/cabi/_testdata/demo/array_uintptr.go +++ /dev/null @@ -1,359 +0,0 @@ -package main - -import "unsafe" - -const ( - LLGoFiles = "../wrap/array_uintptr.c" -) - -//go:linkname printf C.printf -func printf(format *byte, __llgo_va_list ...any) int32 - -func assert(info string, b bool) { - if !b { - printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) - } -} - -func main() { -} - -type array1 struct { - x [1]uintptr -} - -//go:linkname cdemo1 C.demo1 -func cdemo1(a array1) array1 - -func demo1(a array1) array1 { - return a -} - -func init() { - a := array1{x: [1]uintptr{1}} - assert("cdemo1\000", cdemo1(a) == a) - assert("demo1\000", demo1(a) == a) -} - -type array2 struct { - x [2]uintptr -} - -//go:linkname cdemo2 C.demo2 -func cdemo2(a array2) array2 - -func demo2(a array2) array2 { - return a -} - -func init() { - a := array2{x: [2]uintptr{1, 2}} - assert("cdemo2\000", cdemo2(a) == a) - assert("demo2\000", demo2(a) == a) -} - -type array3 struct { - x [3]uintptr -} - -//go:linkname cdemo3 C.demo3 -func cdemo3(a array3) array3 - -func demo3(a array3) array3 { - return a -} - -func init() { - a := array3{x: [3]uintptr{1, 2, 3}} - assert("cdemo3\000", cdemo3(a) == a) - assert("demo3\000", demo3(a) == a) -} - -type array4 struct { - x [4]uintptr -} - -//go:linkname cdemo4 C.demo4 -func cdemo4(a array4) array4 - -func demo4(a array4) array4 { - return a -} - -func init() { - a := array4{x: [4]uintptr{1, 2, 3, 4}} - assert("cdemo4\000", cdemo4(a) == a) - assert("demo4\000", demo4(a) == a) -} - -type array5 struct { - x [5]uintptr -} - -//go:linkname cdemo5 C.demo5 -func cdemo5(a array5) array5 - -func demo5(a array5) array5 { - return a -} - -func init() { - a := array5{x: [5]uintptr{1, 2, 3, 4, 5}} - assert("cdemo5\000", cdemo5(a) == a) - assert("demo5\000", demo5(a) == a) -} - -type array6 struct { - x [6]uintptr -} - -//go:linkname cdemo6 C.demo6 -func cdemo6(a array6) array6 - -func demo6(a array6) array6 { - return a -} - -func init() { - a := array6{x: [6]uintptr{1, 2, 3, 4, 5, 6}} - assert("cdemo6\000", cdemo6(a) == a) - assert("demo6\000", demo6(a) == a) -} - -type array7 struct { - x [7]uintptr -} - -//go:linkname cdemo7 C.demo7 -func cdemo7(a array7) array7 - -func demo7(a array7) array7 { - return a -} - -func init() { - a := array7{x: [7]uintptr{1, 2, 3, 4, 5, 6, 7}} - assert("cdemo7\000", cdemo7(a) == a) - assert("demo7\000", demo7(a) == a) -} - -type array8 struct { - x [8]uintptr -} - -//go:linkname cdemo8 C.demo8 -func cdemo8(a array8) array8 - -func demo8(a array8) array8 { - return a -} - -func init() { - a := array8{x: [8]uintptr{1, 2, 3, 4, 5, 6, 7, 8}} - assert("cdemo8\000", cdemo8(a) == a) - assert("demo8\000", demo8(a) == a) -} - -type array9 struct { - x [9]uintptr -} - -//go:linkname cdemo9 C.demo9 -func cdemo9(a array9) array9 - -func demo9(a array9) array9 { - return a -} - -func init() { - a := array9{x: [9]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9}} - assert("cdemo9\000", cdemo9(a) == a) - assert("demo9\000", demo9(a) == a) -} - -type array10 struct { - x [10]uintptr -} - -//go:linkname cdemo10 C.demo10 -func cdemo10(a array10) array10 - -func demo10(a array10) array10 { - return a -} - -func init() { - a := array10{x: [10]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} - assert("cdemo10\000", cdemo10(a) == a) - assert("demo10\000", demo10(a) == a) -} - -type array11 struct { - x [11]uintptr -} - -//go:linkname cdemo11 C.demo11 -func cdemo11(a array11) array11 - -func demo11(a array11) array11 { - return a -} - -func init() { - a := array11{x: [11]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} - assert("cdemo11\000", cdemo11(a) == a) - assert("demo11\000", demo11(a) == a) -} - -type array12 struct { - x [12]uintptr -} - -//go:linkname cdemo12 C.demo12 -func cdemo12(a array12) array12 - -func demo12(a array12) array12 { - return a -} - -func init() { - a := array12{x: [12]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} - assert("cdemo12\000", cdemo12(a) == a) - assert("demo12\000", demo12(a) == a) -} - -type array13 struct { - x [13]uintptr -} - -//go:linkname cdemo13 C.demo13 -func cdemo13(a array13) array13 - -func demo13(a array13) array13 { - return a -} - -func init() { - a := array13{x: [13]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} - assert("cdemo13\000", cdemo13(a) == a) - assert("demo13\000", demo13(a) == a) -} - -type array14 struct { - x [14]uintptr -} - -//go:linkname cdemo14 C.demo14 -func cdemo14(a array14) array14 - -func demo14(a array14) array14 { - return a -} - -func init() { - a := array14{x: [14]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} - assert("cdemo14\000", cdemo14(a) == a) - assert("demo14\000", demo14(a) == a) -} - -type array15 struct { - x [15]uintptr -} - -//go:linkname cdemo15 C.demo15 -func cdemo15(a array15) array15 - -func demo15(a array15) array15 { - return a -} - -func init() { - a := array15{x: [15]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} - assert("cdemo15\000", cdemo15(a) == a) - assert("demo15\000", demo15(a) == a) -} - -type array16 struct { - x [16]uintptr -} - -//go:linkname cdemo16 C.demo16 -func cdemo16(a array16) array16 - -func demo16(a array16) array16 { - return a -} - -func init() { - a := array16{x: [16]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} - assert("cdemo16\000", cdemo16(a) == a) - assert("demo16\000", demo16(a) == a) -} - -type array17 struct { - x [17]uintptr -} - -//go:linkname cdemo17 C.demo17 -func cdemo17(a array17) array17 - -func demo17(a array17) array17 { - return a -} - -func init() { - a := array17{x: [17]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} - assert("cdemo17\000", cdemo17(a) == a) - assert("demo17\000", demo17(a) == a) -} - -type array18 struct { - x [18]uintptr -} - -//go:linkname cdemo18 C.demo18 -func cdemo18(a array18) array18 - -func demo18(a array18) array18 { - return a -} - -func init() { - a := array18{x: [18]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} - assert("cdemo18\000", cdemo18(a) == a) - assert("demo18\000", demo18(a) == a) -} - -type array19 struct { - x [19]uintptr -} - -//go:linkname cdemo19 C.demo19 -func cdemo19(a array19) array19 - -func demo19(a array19) array19 { - return a -} - -func init() { - a := array19{x: [19]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} - assert("cdemo19\000", cdemo19(a) == a) - assert("demo19\000", demo19(a) == a) -} - -type array20 struct { - x [20]uintptr -} - -//go:linkname cdemo20 C.demo20 -func cdemo20(a array20) array20 - -func demo20(a array20) array20 { - return a -} - -func init() { - a := array20{x: [20]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} - assert("cdemo20\000", cdemo20(a) == a) - assert("demo20\000", demo20(a) == a) -} diff --git a/internal/cabi/_testdata/demo/basic.go b/internal/cabi/_testdata/demo/basic.go index d115d281..9d952cd8 100644 --- a/internal/cabi/_testdata/demo/basic.go +++ b/internal/cabi/_testdata/demo/basic.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/basic.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 @@ -90,14 +92,15 @@ func init() { assert("basic_float64\000", basic_float64(100) == 100) } -//go:linkname cbasic_uintptr C.basic_uintptr -func cbasic_uintptr(a uintptr) uintptr +//go:linkname cbasic_pointer C.basic_pointer +func cbasic_pointer(a pointer) pointer -func basic_uintptr(a uintptr) uintptr { +func basic_pointer(a pointer) pointer { return a } func init() { - assert("cbasic_uintptr\000", cbasic_uintptr(100) == 100) - assert("basic_uintptr\000", basic_uintptr(100) == 100) + var p int8 + assert("cbasic_pointer\000", cbasic_pointer(&p) == &p) + assert("basic_pointer\000", basic_pointer(&p) == &p) } diff --git a/internal/cabi/_testdata/demo/struct_float32.go b/internal/cabi/_testdata/demo/struct_float32.go index baaf4d0e..62c82ebb 100644 --- a/internal/cabi/_testdata/demo/struct_float32.go +++ b/internal/cabi/_testdata/demo/struct_float32.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_float32.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_float64.go b/internal/cabi/_testdata/demo/struct_float64.go index 408419a8..d7cd3da9 100644 --- a/internal/cabi/_testdata/demo/struct_float64.go +++ b/internal/cabi/_testdata/demo/struct_float64.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_float64.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_int16.go b/internal/cabi/_testdata/demo/struct_int16.go index 66e386d1..8ac63ae7 100644 --- a/internal/cabi/_testdata/demo/struct_int16.go +++ b/internal/cabi/_testdata/demo/struct_int16.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_int16.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_int32.go b/internal/cabi/_testdata/demo/struct_int32.go index 2fb70225..bb474ae8 100644 --- a/internal/cabi/_testdata/demo/struct_int32.go +++ b/internal/cabi/_testdata/demo/struct_int32.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_int32.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_int64.go b/internal/cabi/_testdata/demo/struct_int64.go index 78741a12..873ee614 100644 --- a/internal/cabi/_testdata/demo/struct_int64.go +++ b/internal/cabi/_testdata/demo/struct_int64.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_int64.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_int8.go b/internal/cabi/_testdata/demo/struct_int8.go index 47ef72a5..4c77e045 100644 --- a/internal/cabi/_testdata/demo/struct_int8.go +++ b/internal/cabi/_testdata/demo/struct_int8.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_int8.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 diff --git a/internal/cabi/_testdata/demo/struct_mixed.go b/internal/cabi/_testdata/demo/struct_mixed.go index 9393689c..fba91c25 100644 --- a/internal/cabi/_testdata/demo/struct_mixed.go +++ b/internal/cabi/_testdata/demo/struct_mixed.go @@ -6,6 +6,8 @@ const ( LLGoFiles = "../wrap/struct_mixed.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 @@ -110,7 +112,7 @@ func init() { type point6 struct { x0 int8 - x1 uintptr + x1 pointer } //go:linkname cdemo6 C.demo6 @@ -121,7 +123,7 @@ func demo6(a point6) point6 { } func init() { - a := point6{1, 2} + a := point6{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo6\000", cdemo6(a) == a) assert("demo6\000", demo6(a) == a) } @@ -218,7 +220,7 @@ func init() { type point12 struct { x0 int16 - x1 uintptr + x1 pointer } //go:linkname cdemo12 C.demo12 @@ -229,7 +231,7 @@ func demo12(a point12) point12 { } func init() { - a := point12{1, 2} + a := point12{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo12\000", cdemo12(a) == a) assert("demo12\000", demo12(a) == a) } @@ -326,7 +328,7 @@ func init() { type point18 struct { x0 int32 - x1 uintptr + x1 pointer } //go:linkname cdemo18 C.demo18 @@ -337,7 +339,7 @@ func demo18(a point18) point18 { } func init() { - a := point18{1, 2} + a := point18{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo18\000", cdemo18(a) == a) assert("demo18\000", demo18(a) == a) } @@ -434,7 +436,7 @@ func init() { type point24 struct { x0 int64 - x1 uintptr + x1 pointer } //go:linkname cdemo24 C.demo24 @@ -445,7 +447,7 @@ func demo24(a point24) point24 { } func init() { - a := point24{1, 2} + a := point24{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo24\000", cdemo24(a) == a) assert("demo24\000", demo24(a) == a) } @@ -542,7 +544,7 @@ func init() { type point30 struct { x0 float32 - x1 uintptr + x1 pointer } //go:linkname cdemo30 C.demo30 @@ -553,7 +555,7 @@ func demo30(a point30) point30 { } func init() { - a := point30{1, 2} + a := point30{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo30\000", cdemo30(a) == a) assert("demo30\000", demo30(a) == a) } @@ -650,7 +652,7 @@ func init() { type point36 struct { x0 float64 - x1 uintptr + x1 pointer } //go:linkname cdemo36 C.demo36 @@ -661,13 +663,13 @@ func demo36(a point36) point36 { } func init() { - a := point36{1, 2} + a := point36{1, func() pointer { var a int8 = 2; return &a}()} assert("cdemo36\000", cdemo36(a) == a) assert("demo36\000", demo36(a) == a) } type point37 struct { - x0 uintptr + x0 pointer x1 int8 } @@ -679,13 +681,13 @@ func demo37(a point37) point37 { } func init() { - a := point37{1, 2} + a := point37{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo37\000", cdemo37(a) == a) assert("demo37\000", demo37(a) == a) } type point38 struct { - x0 uintptr + x0 pointer x1 int16 } @@ -697,13 +699,13 @@ func demo38(a point38) point38 { } func init() { - a := point38{1, 2} + a := point38{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo38\000", cdemo38(a) == a) assert("demo38\000", demo38(a) == a) } type point39 struct { - x0 uintptr + x0 pointer x1 int32 } @@ -715,13 +717,13 @@ func demo39(a point39) point39 { } func init() { - a := point39{1, 2} + a := point39{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo39\000", cdemo39(a) == a) assert("demo39\000", demo39(a) == a) } type point40 struct { - x0 uintptr + x0 pointer x1 int64 } @@ -733,13 +735,13 @@ func demo40(a point40) point40 { } func init() { - a := point40{1, 2} + a := point40{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo40\000", cdemo40(a) == a) assert("demo40\000", demo40(a) == a) } type point41 struct { - x0 uintptr + x0 pointer x1 float32 } @@ -751,13 +753,13 @@ func demo41(a point41) point41 { } func init() { - a := point41{1, 2} + a := point41{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo41\000", cdemo41(a) == a) assert("demo41\000", demo41(a) == a) } type point42 struct { - x0 uintptr + x0 pointer x1 float64 } @@ -769,7 +771,7 @@ func demo42(a point42) point42 { } func init() { - a := point42{1, 2} + a := point42{func() pointer { var a int8 = 1; return &a}(), 2} assert("cdemo42\000", cdemo42(a) == a) assert("demo42\000", demo42(a) == a) } diff --git a/internal/cabi/_testdata/demo/struct_pointer.go b/internal/cabi/_testdata/demo/struct_pointer.go new file mode 100644 index 00000000..9ebf16cc --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_pointer.go @@ -0,0 +1,551 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_pointer.c" +) + +type pointer = *int8 + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 pointer +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{func() pointer { var a int8 = 1; return &a}()} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 pointer + x1 pointer +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}()} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 pointer + x1 pointer + x2 pointer +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}()} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}()} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}()} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}()} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}()} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}()} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}()} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}()} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}()} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}()} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}()} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}()} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}()} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer + x15 pointer +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}()} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer + x15 pointer + x16 pointer +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}()} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer + x15 pointer + x16 pointer + x17 pointer +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}()} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer + x15 pointer + x16 pointer + x17 pointer + x18 pointer +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}(), func() pointer { var a int8 = 19; return &a}()} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 pointer + x1 pointer + x2 pointer + x3 pointer + x4 pointer + x5 pointer + x6 pointer + x7 pointer + x8 pointer + x9 pointer + x10 pointer + x11 pointer + x12 pointer + x13 pointer + x14 pointer + x15 pointer + x16 pointer + x17 pointer + x18 pointer + x19 pointer +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{func() pointer { var a int8 = 1; return &a}(), func() pointer { var a int8 = 2; return &a}(), func() pointer { var a int8 = 3; return &a}(), func() pointer { var a int8 = 4; return &a}(), func() pointer { var a int8 = 5; return &a}(), func() pointer { var a int8 = 6; return &a}(), func() pointer { var a int8 = 7; return &a}(), func() pointer { var a int8 = 8; return &a}(), func() pointer { var a int8 = 9; return &a}(), func() pointer { var a int8 = 10; return &a}(), func() pointer { var a int8 = 11; return &a}(), func() pointer { var a int8 = 12; return &a}(), func() pointer { var a int8 = 13; return &a}(), func() pointer { var a int8 = 14; return &a}(), func() pointer { var a int8 = 15; return &a}(), func() pointer { var a int8 = 16; return &a}(), func() pointer { var a int8 = 17; return &a}(), func() pointer { var a int8 = 18; return &a}(), func() pointer { var a int8 = 19; return &a}(), func() pointer { var a int8 = 20; return &a}()} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_uintptr.go b/internal/cabi/_testdata/demo/struct_uintptr.go deleted file mode 100644 index 9ff375fb..00000000 --- a/internal/cabi/_testdata/demo/struct_uintptr.go +++ /dev/null @@ -1,549 +0,0 @@ -package main - -import "unsafe" - -const ( - LLGoFiles = "../wrap/struct_uintptr.c" -) - -//go:linkname printf C.printf -func printf(format *byte, __llgo_va_list ...any) int32 - -func assert(info string, b bool) { - if !b { - printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) - } -} - -func main() { -} - -type point1 struct { - x0 uintptr -} - -//go:linkname cdemo1 C.demo1 -func cdemo1(a point1) point1 - -func demo1(a point1) point1 { - return a -} - -func init() { - a := point1{1} - assert("cdemo1\000", cdemo1(a) == a) - assert("demo1\000", demo1(a) == a) -} - -type point2 struct { - x0 uintptr - x1 uintptr -} - -//go:linkname cdemo2 C.demo2 -func cdemo2(a point2) point2 - -func demo2(a point2) point2 { - return a -} - -func init() { - a := point2{1, 2} - assert("cdemo2\000", cdemo2(a) == a) - assert("demo2\000", demo2(a) == a) -} - -type point3 struct { - x0 uintptr - x1 uintptr - x2 uintptr -} - -//go:linkname cdemo3 C.demo3 -func cdemo3(a point3) point3 - -func demo3(a point3) point3 { - return a -} - -func init() { - a := point3{1, 2, 3} - assert("cdemo3\000", cdemo3(a) == a) - assert("demo3\000", demo3(a) == a) -} - -type point4 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr -} - -//go:linkname cdemo4 C.demo4 -func cdemo4(a point4) point4 - -func demo4(a point4) point4 { - return a -} - -func init() { - a := point4{1, 2, 3, 4} - assert("cdemo4\000", cdemo4(a) == a) - assert("demo4\000", demo4(a) == a) -} - -type point5 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr -} - -//go:linkname cdemo5 C.demo5 -func cdemo5(a point5) point5 - -func demo5(a point5) point5 { - return a -} - -func init() { - a := point5{1, 2, 3, 4, 5} - assert("cdemo5\000", cdemo5(a) == a) - assert("demo5\000", demo5(a) == a) -} - -type point6 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr -} - -//go:linkname cdemo6 C.demo6 -func cdemo6(a point6) point6 - -func demo6(a point6) point6 { - return a -} - -func init() { - a := point6{1, 2, 3, 4, 5, 6} - assert("cdemo6\000", cdemo6(a) == a) - assert("demo6\000", demo6(a) == a) -} - -type point7 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr -} - -//go:linkname cdemo7 C.demo7 -func cdemo7(a point7) point7 - -func demo7(a point7) point7 { - return a -} - -func init() { - a := point7{1, 2, 3, 4, 5, 6, 7} - assert("cdemo7\000", cdemo7(a) == a) - assert("demo7\000", demo7(a) == a) -} - -type point8 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr -} - -//go:linkname cdemo8 C.demo8 -func cdemo8(a point8) point8 - -func demo8(a point8) point8 { - return a -} - -func init() { - a := point8{1, 2, 3, 4, 5, 6, 7, 8} - assert("cdemo8\000", cdemo8(a) == a) - assert("demo8\000", demo8(a) == a) -} - -type point9 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr -} - -//go:linkname cdemo9 C.demo9 -func cdemo9(a point9) point9 - -func demo9(a point9) point9 { - return a -} - -func init() { - a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} - assert("cdemo9\000", cdemo9(a) == a) - assert("demo9\000", demo9(a) == a) -} - -type point10 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr -} - -//go:linkname cdemo10 C.demo10 -func cdemo10(a point10) point10 - -func demo10(a point10) point10 { - return a -} - -func init() { - a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} - assert("cdemo10\000", cdemo10(a) == a) - assert("demo10\000", demo10(a) == a) -} - -type point11 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr -} - -//go:linkname cdemo11 C.demo11 -func cdemo11(a point11) point11 - -func demo11(a point11) point11 { - return a -} - -func init() { - a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} - assert("cdemo11\000", cdemo11(a) == a) - assert("demo11\000", demo11(a) == a) -} - -type point12 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr -} - -//go:linkname cdemo12 C.demo12 -func cdemo12(a point12) point12 - -func demo12(a point12) point12 { - return a -} - -func init() { - a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} - assert("cdemo12\000", cdemo12(a) == a) - assert("demo12\000", demo12(a) == a) -} - -type point13 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr -} - -//go:linkname cdemo13 C.demo13 -func cdemo13(a point13) point13 - -func demo13(a point13) point13 { - return a -} - -func init() { - a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} - assert("cdemo13\000", cdemo13(a) == a) - assert("demo13\000", demo13(a) == a) -} - -type point14 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr -} - -//go:linkname cdemo14 C.demo14 -func cdemo14(a point14) point14 - -func demo14(a point14) point14 { - return a -} - -func init() { - a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} - assert("cdemo14\000", cdemo14(a) == a) - assert("demo14\000", demo14(a) == a) -} - -type point15 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr -} - -//go:linkname cdemo15 C.demo15 -func cdemo15(a point15) point15 - -func demo15(a point15) point15 { - return a -} - -func init() { - a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} - assert("cdemo15\000", cdemo15(a) == a) - assert("demo15\000", demo15(a) == a) -} - -type point16 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr - x15 uintptr -} - -//go:linkname cdemo16 C.demo16 -func cdemo16(a point16) point16 - -func demo16(a point16) point16 { - return a -} - -func init() { - a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} - assert("cdemo16\000", cdemo16(a) == a) - assert("demo16\000", demo16(a) == a) -} - -type point17 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr - x15 uintptr - x16 uintptr -} - -//go:linkname cdemo17 C.demo17 -func cdemo17(a point17) point17 - -func demo17(a point17) point17 { - return a -} - -func init() { - a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} - assert("cdemo17\000", cdemo17(a) == a) - assert("demo17\000", demo17(a) == a) -} - -type point18 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr - x15 uintptr - x16 uintptr - x17 uintptr -} - -//go:linkname cdemo18 C.demo18 -func cdemo18(a point18) point18 - -func demo18(a point18) point18 { - return a -} - -func init() { - a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} - assert("cdemo18\000", cdemo18(a) == a) - assert("demo18\000", demo18(a) == a) -} - -type point19 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr - x15 uintptr - x16 uintptr - x17 uintptr - x18 uintptr -} - -//go:linkname cdemo19 C.demo19 -func cdemo19(a point19) point19 - -func demo19(a point19) point19 { - return a -} - -func init() { - a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} - assert("cdemo19\000", cdemo19(a) == a) - assert("demo19\000", demo19(a) == a) -} - -type point20 struct { - x0 uintptr - x1 uintptr - x2 uintptr - x3 uintptr - x4 uintptr - x5 uintptr - x6 uintptr - x7 uintptr - x8 uintptr - x9 uintptr - x10 uintptr - x11 uintptr - x12 uintptr - x13 uintptr - x14 uintptr - x15 uintptr - x16 uintptr - x17 uintptr - x18 uintptr - x19 uintptr -} - -//go:linkname cdemo20 C.demo20 -func cdemo20(a point20) point20 - -func demo20(a point20) point20 { - return a -} - -func init() { - a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} - assert("cdemo20\000", cdemo20(a) == a) - assert("demo20\000", demo20(a) == a) -} diff --git a/internal/cabi/_testdata/esp.sh b/internal/cabi/_testdata/esp.sh new file mode 100755 index 00000000..5a7c07ec --- /dev/null +++ b/internal/cabi/_testdata/esp.sh @@ -0,0 +1,5 @@ +#!/bin/sh +mkdir -p arch/esp32 +mkdir -p arch/esp32c3 +(cd arch/esp32 && clang -target xtensa-esp-unknown-elf -S -emit-llvm ../../wrap/*.c) +(cd arch/esp32c3 && clang -target riscv32-esp-unknown-elf -S -emit-llvm ../../wrap/*.c) diff --git a/internal/cabi/_testdata/make.go b/internal/cabi/_testdata/make.go index c45efc1d..f02b1744 100644 --- a/internal/cabi/_testdata/make.go +++ b/internal/cabi/_testdata/make.go @@ -19,6 +19,8 @@ const ( LLGoFiles = "../wrap/basic.c" ) +type pointer = *int8 + //go:linkname printf C.printf func printf(format *byte, __llgo_va_list ...any) int32 @@ -46,6 +48,21 @@ func init() { } ` +var gbasic_pointer = ` +//go:linkname cbasic_pointer C.basic_pointer +func cbasic_pointer(a pointer) pointer + +func basic_pointer(a pointer) pointer { + return a +} + +func init() { + var p int8 + assert("cbasic_pointer\000", cbasic_pointer(&p) == &p) + assert("basic_pointer\000", basic_pointer(&p) == &p) +} +` + var garray = ` type array struct { x [N]int @@ -120,7 +137,7 @@ func main() { // 1 2 3 4 5 6 7 8 types := []string{"char", "short", "int", "long long", "float", "double", "void*"} - ids := []string{"int8", "int16", "int32", "int64", "float32", "float64", "uintptr"} + ids := []string{"int8", "int16", "int32", "int64", "float32", "float64", "pointer"} idTypes := make(map[string]string) for i, id := range ids { idTypes[id] = types[i] @@ -139,6 +156,9 @@ func main() { buf.WriteString(ghead_basic) for _, id := range ids { data := strings.NewReplacer("int", id, "basic", "basic_"+id).Replace(gbasic) + if id == "pointer" { + data = gbasic_pointer + } buf.WriteString(data) } os.WriteFile("./demo/basic.go", buf.Bytes(), 0666) @@ -181,8 +201,14 @@ func main() { for i := 0; i < 20; i++ { N := strconv.Itoa(i + 1) M := make([]string, i+1) - for j := 0; j < i+1; j++ { - M[j] = strconv.Itoa(j + 1) + if id == "pointer" { + for j := 0; j < i+1; j++ { + M[j] = "func() pointer { var a int8 = " + strconv.Itoa(j+1) + "; return &a}()" + } + } else { + for j := 0; j < i+1; j++ { + M[j] = strconv.Itoa(j + 1) + } } data := strings.NewReplacer("int", id, "N", N, "M", strings.Join(M, ", "), "array", "array"+N, "demo", "demo"+N).Replace(garray) @@ -199,8 +225,14 @@ func main() { for i := 0; i < 20; i++ { N := strconv.Itoa(i + 1) M := make([]string, i+1) - for j := 0; j < i+1; j++ { - M[j] = strconv.Itoa(j + 1) + if id == "pointer" { + for j := 0; j < i+1; j++ { + M[j] = "func() pointer { var a int8 = " + strconv.Itoa(j+1) + "; return &a}()" + } + } else { + for j := 0; j < i+1; j++ { + M[j] = strconv.Itoa(j + 1) + } } ar := make([]string, i+1) for j := 0; j < i+1; j++ { @@ -273,7 +305,11 @@ func main() { } M := make([]string, len(ids)) for j := 0; j < len(ids); j++ { - M[j] = strconv.Itoa(j + 1) + if ids[j] == "pointer" { + M[j] = "func() pointer { var a int8 = " + strconv.Itoa(j+1) + "; return &a}()" + } else { + M[j] = strconv.Itoa(j + 1) + } } data := strings.NewReplacer("x int", strings.Join(ar, "\n\t"), "N", N, "M", strings.Join(M, ", "), "point", "point"+N, "demo", "demo"+N).Replace(gstruct) diff --git a/internal/cabi/_testdata/wrap/array_int8.ll b/internal/cabi/_testdata/wrap/array_int8.ll new file mode 100644 index 00000000..9f056959 --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_int8.ll @@ -0,0 +1,279 @@ +; ModuleID = 'array_int8.c' +source_filename = "array_int8.c" +target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-windows-gnu" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @demo1(i8 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8]* %4 to i8* + store i8 %0, i8* %5, align 1 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8]* %8 to i8* + %10 = load i8, i8* %9, align 1 + ret i8 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo2(i16 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8]* %4 to i16* + store i16 %0, i16* %5, align 1 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8]* %8 to i16* + %10 = load i16, i16* %9, align 1 + ret i16 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 1 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to i32* + store i32 %0, i32* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 1 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 1 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 1 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2} +!llvm.ident = !{!3} + +!0 = !{i32 1, !"wchar_size", i32 2} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"uwtable", i32 2} +!3 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/wrap/array_uintptr.c b/internal/cabi/_testdata/wrap/array_uintptr.c deleted file mode 100644 index 5e915f62..00000000 --- a/internal/cabi/_testdata/wrap/array_uintptr.c +++ /dev/null @@ -1,160 +0,0 @@ - -struct array1 { - void* x[1]; -}; - -struct array1 demo1(struct array1 a) { - return a; -} - -struct array2 { - void* x[2]; -}; - -struct array2 demo2(struct array2 a) { - return a; -} - -struct array3 { - void* x[3]; -}; - -struct array3 demo3(struct array3 a) { - return a; -} - -struct array4 { - void* x[4]; -}; - -struct array4 demo4(struct array4 a) { - return a; -} - -struct array5 { - void* x[5]; -}; - -struct array5 demo5(struct array5 a) { - return a; -} - -struct array6 { - void* x[6]; -}; - -struct array6 demo6(struct array6 a) { - return a; -} - -struct array7 { - void* x[7]; -}; - -struct array7 demo7(struct array7 a) { - return a; -} - -struct array8 { - void* x[8]; -}; - -struct array8 demo8(struct array8 a) { - return a; -} - -struct array9 { - void* x[9]; -}; - -struct array9 demo9(struct array9 a) { - return a; -} - -struct array10 { - void* x[10]; -}; - -struct array10 demo10(struct array10 a) { - return a; -} - -struct array11 { - void* x[11]; -}; - -struct array11 demo11(struct array11 a) { - return a; -} - -struct array12 { - void* x[12]; -}; - -struct array12 demo12(struct array12 a) { - return a; -} - -struct array13 { - void* x[13]; -}; - -struct array13 demo13(struct array13 a) { - return a; -} - -struct array14 { - void* x[14]; -}; - -struct array14 demo14(struct array14 a) { - return a; -} - -struct array15 { - void* x[15]; -}; - -struct array15 demo15(struct array15 a) { - return a; -} - -struct array16 { - void* x[16]; -}; - -struct array16 demo16(struct array16 a) { - return a; -} - -struct array17 { - void* x[17]; -}; - -struct array17 demo17(struct array17 a) { - return a; -} - -struct array18 { - void* x[18]; -}; - -struct array18 demo18(struct array18 a) { - return a; -} - -struct array19 { - void* x[19]; -}; - -struct array19 demo19(struct array19 a) { - return a; -} - -struct array20 { - void* x[20]; -}; - -struct array20 demo20(struct array20 a) { - return a; -} diff --git a/internal/cabi/_testdata/wrap/basic.c b/internal/cabi/_testdata/wrap/basic.c index 56781acd..7c753065 100644 --- a/internal/cabi/_testdata/wrap/basic.c +++ b/internal/cabi/_testdata/wrap/basic.c @@ -23,6 +23,6 @@ double basic_float64(double a) { return a; } -void* basic_uintptr(void* a) { +void* basic_pointer(void* a) { return a; } diff --git a/internal/cabi/_testdata/wrap/struct_uintptr.c b/internal/cabi/_testdata/wrap/struct_pointer.c similarity index 100% rename from internal/cabi/_testdata/wrap/struct_uintptr.c rename to internal/cabi/_testdata/wrap/struct_pointer.c diff --git a/internal/cabi/arch.go b/internal/cabi/arch.go index 791818b8..ab471681 100644 --- a/internal/cabi/arch.go +++ b/internal/cabi/arch.go @@ -57,6 +57,15 @@ func hasTypes(typs []llvm.Type, typ llvm.Type) bool { return false } +func hasTypesKind(typs []llvm.Type, kind llvm.TypeKind) bool { + for _, t := range typs { + if t.TypeKind() == kind { + return true + } + } + return false +} + type TypeInfoAmd64 struct { *Transformer } @@ -324,10 +333,11 @@ func (p *TypeInfoWasm) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Ty type TypeInfoRiscv64 struct { *Transformer + mabi string } func (p *TypeInfoRiscv64) SupportByVal() bool { - return true + return false } func (p *TypeInfoRiscv64) SkipEmptyParams() bool { @@ -360,11 +370,33 @@ func (p *TypeInfoRiscv64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm if types[0].TypeKind() == llvm.PointerTypeKind || types[0] == ctx.Int64Type() { return info } + switch p.mabi { + case MABI_LP64F, MABI_LP64D: + if types[0] == ctx.FloatType() { + return info + } + } case 2: if (types[0].TypeKind() == llvm.PointerTypeKind || types[0] == ctx.Int64Type()) && (types[1].TypeKind() == llvm.PointerTypeKind || types[1] == ctx.Int64Type()) { return info } + switch p.mabi { + case MABI_LP64F: + if hasTypes(types, ctx.FloatType()) && !hasTypes(types, ctx.DoubleType()) && !hasTypesKind(types, llvm.PointerTypeKind) { + info.Kind = AttrWidthType2 + info.Type1 = types[0] + info.Type2 = types[1] + return info + } + case MABI_LP64D: + if (hasTypes(types, ctx.FloatType()) || hasTypes(types, ctx.DoubleType())) && !hasTypesKind(types, llvm.PointerTypeKind) { + info.Kind = AttrWidthType2 + info.Type1 = types[0] + info.Type2 = types[1] + return info + } + } } if info.Size > 16 { info.Kind = AttrPointer @@ -380,6 +412,95 @@ func (p *TypeInfoRiscv64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm return info } +const ( + MABI_LP64 = "lp64" + MABI_LP64F = "lp64f" + 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 + } + case 2: + switch p.mabi { + case MABI_ILP32F: + if info.Align != 8 && hasTypes(types, ctx.FloatType()) && !hasTypesKind(types, llvm.PointerTypeKind) { + info.Kind = AttrWidthType2 + info.Type1 = types[0] + info.Type2 = types[1] + return info + } + case MABI_ILP32D: + if (hasTypes(types, ctx.FloatType()) || hasTypes(types, ctx.DoubleType())) && + !hasTypesKind(types, llvm.PointerTypeKind) && !hasTypes(types, ctx.Int64Type()) { + info.Kind = AttrWidthType2 + info.Type1 = types[0] + info.Type2 = types[1] + 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..991535bb 100644 --- a/internal/cabi/cabi.go +++ b/internal/cabi/cabi.go @@ -15,22 +15,31 @@ const ( ModeAllFunc ) -func NewTransformer(prog ssa.Program, targetName string, mode Mode, optimize bool) *Transformer { +func targetArch(llvmTarget string) string { + if pos := strings.Index(llvmTarget, "-"); pos != -1 { + return llvmTarget[:pos] + } + return llvmTarget +} + +func NewTransformer(prog ssa.Program, llvmTarget string, targetAbi string, mode Mode, optimize bool) *Transformer { target := prog.Target() + arch := target.GOARCH + if llvmTarget != "" { + arch = targetArch(llvmTarget) + } tr := &Transformer{ prog: prog, td: prog.TargetData(), - GOOS: target.GOOS, - GOARCH: target.GOARCH, + arch: arch, mode: mode, optimize: optimize, } - switch targetName { - case "esp32": + switch arch { + case "xtensa": tr.sys = &TypeInfoEsp32{tr} - return tr - } - switch target.GOARCH { + case "riscv32": + tr.sys = &TypeInfoRiscv32{tr, targetAbi} case "amd64": tr.sys = &TypeInfoAmd64{tr} case "arm64": @@ -40,7 +49,7 @@ func NewTransformer(prog ssa.Program, targetName string, mode Mode, optimize boo case "wasm": tr.sys = &TypeInfoWasm{tr} case "riscv64": - tr.sys = &TypeInfoRiscv64{tr} + tr.sys = &TypeInfoRiscv64{tr, targetAbi} case "386": tr.sys = &TypeInfo386{tr} } @@ -50,8 +59,7 @@ func NewTransformer(prog ssa.Program, targetName string, mode Mode, optimize boo type Transformer struct { prog ssa.Program td llvm.TargetData - GOOS string - GOARCH string + arch string sys TypeInfoSys mode Mode optimize bool @@ -242,7 +250,7 @@ func (p *Transformer) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Typ } return p.sys.GetTypeInfo(ctx, ftyp, typ, index) } - panic("not implment: " + p.GOARCH) + panic("not implment: " + p.arch) } func (p *Transformer) Sizeof(typ llvm.Type) int { diff --git a/internal/cabi/cabi_test.go b/internal/cabi/cabi_test.go index 2209c7ba..c1ddcab4 100644 --- a/internal/cabi/cabi_test.go +++ b/internal/cabi/cabi_test.go @@ -17,39 +17,64 @@ import ( ) var ( - modes = []cabi.Mode{cabi.ModeNone, cabi.ModeCFunc, cabi.ModeAllFunc} - archs = []string{"amd64", "arm64", "riscv64", "arm", "386"} - archDir = []string{"amd64", "arm64", "riscv64", "armv6", "i386"} + modes = []cabi.Mode{cabi.ModeNone, cabi.ModeCFunc, cabi.ModeAllFunc} + archs = []string{"amd64", "arm64", "riscv64", "armv6", "i386"} ) func init() { // crosscompile if runtime.GOOS == "darwin" { - archs = append(archs, "wasm") - archDir = append(archDir, "wasm32") + archs = append(archs, "wasm32") archs = append(archs, "esp32") - archDir = append(archDir, "esp32") + archs = append(archs, "esp32c3") + archs = append(archs, "riscv64_lp64f") + archs = append(archs, "riscv64_lp64d") + archs = append(archs, "riscv32_ilp32") + archs = append(archs, "riscv32_ilp32f") + archs = append(archs, "riscv32_ilp32d") } } -func buildConf(mode cabi.Mode, arch string) *build.Config { - conf := build.NewDefaultConf(build.ModeGen) +func buildConf(mode cabi.Mode, arch string) (conf *build.Config, targetAbi string) { + conf = build.NewDefaultConf(build.ModeGen) conf.AbiMode = mode conf.Goarch = arch conf.Goos = "linux" switch arch { - case "wasm": + case "wasm32": + conf.Goarch = "wasm" conf.Goos = "wasip1" + case "armv6": + conf.Goarch = "arm" + case "i386": + conf.Goarch = "386" case "esp32": conf.Target = "esp32" + case "esp32c3": + conf.Target = "esp32c3" + case "riscv64_lp64f": + conf.Goarch = "riscv64" + targetAbi = "lp64f" + case "riscv64_lp64d": + conf.Goarch = "riscv64" + targetAbi = "lp64d" + case "riscv32_ilp32": + conf.Target = "riscv32" + targetAbi = "ilp32" + case "riscv32_ilp32f": + conf.Target = "riscv32" + targetAbi = "ilp32f" + case "riscv32_ilp32d": + conf.Target = "riscv32" + targetAbi = "ilp32d" } - return conf + return } func TestBuild(t *testing.T) { for _, mode := range modes { for _, arch := range archs { - conf := buildConf(mode, arch) + conf, _ := buildConf(mode, arch) _, err := build.Do([]string{"./_testdata/demo/demo.go"}, conf) if err != nil { t.Fatalf("build error: %v-%v %v", arch, mode, err) @@ -72,15 +97,18 @@ func TestABI(t *testing.T) { files = append(files, f.Name()) } } - for i, arch := range archs { + for _, arch := range archs { t.Run(arch, func(t *testing.T) { - testArch(t, arch, archDir[i], files) + testArch(t, arch, arch, files) }) } } func testArch(t *testing.T, arch string, archDir string, files []string) { - conf := buildConf(cabi.ModeAllFunc, arch) + conf, targetAbi := buildConf(cabi.ModeAllFunc, arch) + if targetAbi != "" { + conf.AbiMode = cabi.ModeNone + } for _, file := range files { pkgs, err := build.Do([]string{filepath.Join("./_testdata/demo", file)}, conf) if err != nil { @@ -97,6 +125,10 @@ func testArch(t *testing.T, arch string, archDir string, files []string) { t.Fatalf("parser IR error %v", arch) } pkg := pkgs[0].LPkg + if targetAbi != "" { + tr := cabi.NewTransformer(pkg.Prog, conf.Target, targetAbi, cabi.ModeAllFunc, false) + tr.TransformModule(file, pkg.Module()) + } testModule(t, context{arch: arch, file: file}, pkg.Prog.TargetData(), pkg.Module(), m) } } @@ -141,7 +173,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..0e793e80 100644 --- a/internal/crosscompile/crosscompile.go +++ b/internal/crosscompile/crosscompile.go @@ -34,6 +34,8 @@ type Export struct { ClangRoot string // Root directory of custom clang installation ClangBinPath string // Path to clang binary directory + LLVMTarget string // LLVM Target + 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 +455,8 @@ func UseTarget(targetName string) (export Export, err error) { export.GOOS = config.GOOS export.GOARCH = config.GOARCH export.ExtraFiles = config.ExtraFiles + export.LLVMTarget = config.LLVMTarget + export.TargetABI = config.TargetABI export.BinaryFormat = config.BinaryFormat export.FormatDetail = config.FormatDetail() export.Emulator = config.Emulator @@ -481,9 +485,8 @@ func UseTarget(targetName string) (export Export, err error) { envs := buildEnvMap(env.LLGoROOT()) // Convert LLVMTarget, CPU, Features to CCFLAGS/LDFLAGS - var ccflags []string - var ldflags []string - + ldflags := []string{"-S"} + ccflags := []string{"-Oz"} cflags := []string{"-Wno-override-module", "-Qunused-arguments", "-Wno-unused-command-line-argument"} if config.LLVMTarget != "" { cflags = append(cflags, "--target="+config.LLVMTarget) diff --git a/runtime/build.go b/runtime/build.go index 0016450d..a4ac3753 100644 --- a/runtime/build.go +++ b/runtime/build.go @@ -40,7 +40,6 @@ var hasAltPkg = map[string]none{ "internal/syscall/execenv": {}, "internal/syscall/unix": {}, "math": {}, - "math/big": {}, "math/cmplx": {}, "math/rand": {}, "reflect": {}, diff --git a/runtime/internal/lib/math/big/int.go b/runtime/internal/lib/math/big/int.go deleted file mode 100644 index 46ade0dd..00000000 --- a/runtime/internal/lib/math/big/int.go +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package big - -import ( - "math/rand" - - c "github.com/goplus/llgo/runtime/internal/clite" - "github.com/goplus/llgo/runtime/internal/clite/openssl" -) - -// llgo:skipall -type _big struct{} - -// A Word represents a single digit of a multi-precision unsigned integer. -type Word openssl.BN_ULONG - -// ----------------------------------------------------------------------------- - -// TODO(xsw): share ctx -func ctxGet() *openssl.BN_CTX { - return openssl.BN_CTXNew() -} - -func ctxPut(ctx *openssl.BN_CTX) { - ctx.Free() -} - -// ----------------------------------------------------------------------------- - -type Int openssl.BIGNUM - -// Sign returns: -// -// -1 if x < 0 -// 0 if x == 0 -// +1 if x > 0 -func (x *Int) Sign() int { - a := (*openssl.BIGNUM)(x) - if a.IsNegative() != 0 { - return -1 - } else if a.IsZero() != 0 { - return 0 - } - return 1 -} - -// SetInt64 sets z to x and returns z. -func (z *Int) SetInt64(x int64) *Int { - a := (*openssl.BIGNUM)(z) - if x < 0 { - a.SetWord(openssl.BN_ULONG(-x)) - a.SetNegative(1) - } else { - a.SetWord(openssl.BN_ULONG(x)) - a.SetNegative(0) - } - return z -} - -// SetUint64 sets z to x and returns z. -func (z *Int) SetUint64(x uint64) *Int { - a := (*openssl.BIGNUM)(z) - a.SetWord(openssl.BN_ULONG(x)) - a.SetNegative(0) - return z -} - -// NewInt allocates and returns a new Int set to x. -func NewInt(x int64) *Int { - z := (*Int)(openssl.BNNew()) - return z.SetInt64(x) -} - -// Set sets z to x and returns z. -func (z *Int) Set(x *Int) *Int { - if z != x { - a := (*openssl.BIGNUM)(z) - b := (*openssl.BIGNUM)(x) - a.Copy(b) - } - return z -} - -// Abs sets z to |x| (the absolute value of x) and returns z. -func (z *Int) Abs(x *Int) *Int { - z.Set(x) - a := (*openssl.BIGNUM)(z) - a.SetNegative(0) - return z -} - -// Neg sets z to -x and returns z. -func (z *Int) Neg(x *Int) *Int { - z.Set(x) - a := (*openssl.BIGNUM)(z) - if a.IsNegative() != 0 { - a.SetNegative(0) - } else { - a.SetNegative(1) - } - return z -} - -// Bits provides raw (unchecked but fast) access to x by returning its -// absolute value as a little-endian Word slice. The result and x share -// the same underlying array. -// Bits is intended to support implementation of missing low-level Int -// functionality outside this package; it should be avoided otherwise. -func (x *Int) Bits() []Word { - panic("todo big.Bits") -} - -// SetBits provides raw (unchecked but fast) access to z by setting its -// value to abs, interpreted as a little-endian Word slice, and returning -// z. The result and abs share the same underlying array. -// SetBits is intended to support implementation of missing low-level Int -// functionality outside this package; it should be avoided otherwise. -func (z *Int) SetBits(abs []Word) *Int { - panic("todo big.SetBits") -} - -// Add sets z to the sum x+y and returns z. -func (z *Int) Add(x, y *Int) *Int { - (*openssl.BIGNUM)(z).Add((*openssl.BIGNUM)(x), (*openssl.BIGNUM)(y)) - return z -} - -// Sub sets z to the difference x-y and returns z. -func (z *Int) Sub(x, y *Int) *Int { - (*openssl.BIGNUM)(z).Sub((*openssl.BIGNUM)(x), (*openssl.BIGNUM)(y)) - return z -} - -// Mul sets z to the product x*y and returns z. -func (z *Int) Mul(x, y *Int) *Int { - panic("todo big.Mul") -} - -// MulRange sets z to the product of all integers -// in the range [a, b] inclusively and returns z. -// If a > b (empty range), the result is 1. -func (z *Int) MulRange(a, b int64) *Int { - panic("todo big.MulRange") -} - -// Binomial sets z to the binomial coefficient C(n, k) and returns z. -func (z *Int) Binomial(n, k int64) *Int { - panic("todo big.Binomial") -} - -// Quo sets z to the quotient x/y for y != 0 and returns z. -// If y == 0, a division-by-zero run-time panic occurs. -// Quo implements truncated division (like Go); see QuoRem for more details. -func (z *Int) Quo(x, y *Int) *Int { - panic("todo big.Quo") -} - -// Rem sets z to the remainder x%y for y != 0 and returns z. -// If y == 0, a division-by-zero run-time panic occurs. -// Rem implements truncated modulus (like Go); see QuoRem for more details. -func (z *Int) Rem(x, y *Int) *Int { - panic("todo big.Rem") -} - -// QuoRem sets z to the quotient x/y and r to the remainder x%y -// and returns the pair (z, r) for y != 0. -// If y == 0, a division-by-zero run-time panic occurs. -// -// QuoRem implements T-division and modulus (like Go): -// -// q = x/y with the result truncated to zero -// r = x - y*q -// -// (See Daan Leijen, “Division and Modulus for Computer Scientists”.) -// See DivMod for Euclidean division and modulus (unlike Go). -func (z *Int) QuoRem(x, y, r *Int) (*Int, *Int) { - panic("todo big.QuoRem") -} - -// Div sets z to the quotient x/y for y != 0 and returns z. -// If y == 0, a division-by-zero run-time panic occurs. -// Div implements Euclidean division (unlike Go); see DivMod for more details. -func (z *Int) Div(x, y *Int) *Int { - panic("todo big.Div") -} - -// Mod sets z to the modulus x%y for y != 0 and returns z. -// If y == 0, a division-by-zero run-time panic occurs. -// Mod implements Euclidean modulus (unlike Go); see DivMod for more details. -func (z *Int) Mod(x, y *Int) *Int { - panic("todo big.Mod") -} - -// DivMod sets z to the quotient x div y and m to the modulus x mod y -// and returns the pair (z, m) for y != 0. -// If y == 0, a division-by-zero run-time panic occurs. -// -// DivMod implements Euclidean division and modulus (unlike Go): -// -// q = x div y such that -// m = x - y*q with 0 <= m < |y| -// -// (See Raymond T. Boute, “The Euclidean definition of the functions -// div and mod”. ACM Transactions on Programming Languages and -// Systems (TOPLAS), 14(2):127-144, New York, NY, USA, 4/1992. -// ACM press.) -// See QuoRem for T-division and modulus (like Go). -func (z *Int) DivMod(x, y, m *Int) (*Int, *Int) { - panic("big.DivMod") -} - -// Cmp compares x and y and returns: -// -// -1 if x < y -// 0 if x == y -// +1 if x > y -func (x *Int) Cmp(y *Int) (r int) { - return int((*openssl.BIGNUM)(x).Cmp((*openssl.BIGNUM)(y))) -} - -// CmpAbs compares the absolute values of x and y and returns: -// -// -1 if |x| < |y| -// 0 if |x| == |y| -// +1 if |x| > |y| -func (x *Int) CmpAbs(y *Int) int { - return int((*openssl.BIGNUM)(x).Ucmp((*openssl.BIGNUM)(y))) -} - -// Int64 returns the int64 representation of x. -// If x cannot be represented in an int64, the result is undefined. -func (x *Int) Int64() int64 { - panic("todo big.Int64") -} - -// Uint64 returns the uint64 representation of x. -// If x cannot be represented in a uint64, the result is undefined. -func (x *Int) Uint64() uint64 { - panic("todo big.Uint64") -} - -// IsInt64 reports whether x can be represented as an int64. -func (x *Int) IsInt64() bool { - panic("todo big.IsInt64") -} - -// IsUint64 reports whether x can be represented as a uint64. -func (x *Int) IsUint64() bool { - panic("todo big.IsUint64") -} - -// Float64 returns the float64 value nearest x, -// and an indication of any rounding that occurred. -// TODO(xsw): -/* -func (x *Int) Float64() (float64, Accuracy) { - panic("todo big.Float64") -}*/ - -// SetString sets z to the value of s, interpreted in the given base, -// and returns z and a boolean indicating success. The entire string -// (not just a prefix) must be valid for success. If SetString fails, -// the value of z is undefined but the returned value is nil. -// -// The base argument must be 0 or a value between 2 and MaxBase. -// For base 0, the number prefix determines the actual base: A prefix of -// “0b” or “0B” selects base 2, “0”, “0o” or “0O” selects base 8, -// and “0x” or “0X” selects base 16. Otherwise, the selected base is 10 -// and no prefix is accepted. -// -// For bases <= 36, lower and upper case letters are considered the same: -// The letters 'a' to 'z' and 'A' to 'Z' represent digit values 10 to 35. -// For bases > 36, the upper case letters 'A' to 'Z' represent the digit -// values 36 to 61. -// -// For base 0, an underscore character “_” may appear between a base -// prefix and an adjacent digit, and between successive digits; such -// underscores do not change the value of the number. -// Incorrect placement of underscores is reported as an error if there -// are no other errors. If base != 0, underscores are not recognized -// and act like any other character that is not a valid digit. -func (z *Int) SetString(s string, base int) (*Int, bool) { - panic("todo big.SetString") -} - -// SetBytes interprets buf as the bytes of a big-endian unsigned -// integer, sets z to that value, and returns z. -func (z *Int) SetBytes(buf []byte) *Int { - panic("todo big.SetBytes") -} - -// Bytes returns the absolute value of x as a big-endian byte slice. -// -// To use a fixed length slice, or a preallocated one, use FillBytes. -func (x *Int) Bytes() []byte { - panic("todo big.Bytes") -} - -// FillBytes sets buf to the absolute value of x, storing it as a zero-extended -// big-endian byte slice, and returns buf. -// -// If the absolute value of x doesn't fit in buf, FillBytes will panic. -func (x *Int) FillBytes(buf []byte) []byte { - panic("todo big.FillBytes") -} - -// BitLen returns the length of the absolute value of x in bits. -// The bit length of 0 is 0. -func (x *Int) BitLen() int { - panic("todo big.BitLen") -} - -// TrailingZeroBits returns the number of consecutive least significant zero -// bits of |x|. -func (x *Int) TrailingZeroBits() uint { - panic("todo big.TrailingZeroBits") -} - -// Exp sets z = x**y mod |m| (i.e. the sign of m is ignored), and returns z. -// If m == nil or m == 0, z = x**y unless y <= 0 then z = 1. If m != 0, y < 0, -// and x and m are not relatively prime, z is unchanged and nil is returned. -// -// Modular exponentiation of inputs of a particular size is not a -// cryptographically constant-time operation. -func (z *Int) Exp(x, y, m *Int) *Int { - ctx := ctxGet() - mbn := (*openssl.BIGNUM)(m) - if mbn == nil || mbn.IsZero() != 0 { - (*openssl.BIGNUM)(z).Exp((*openssl.BIGNUM)(x), (*openssl.BIGNUM)(y), ctx) - } else { - (*openssl.BIGNUM)(z).ModExp((*openssl.BIGNUM)(x), (*openssl.BIGNUM)(y), mbn, ctx) - } - ctxPut(ctx) - return z -} - -// GCD sets z to the greatest common divisor of a and b and returns z. -// If x or y are not nil, GCD sets their value such that z = a*x + b*y. -// -// a and b may be positive, zero or negative. (Before Go 1.14 both had -// to be > 0.) Regardless of the signs of a and b, z is always >= 0. -// -// If a == b == 0, GCD sets z = x = y = 0. -// -// If a == 0 and b != 0, GCD sets z = |b|, x = 0, y = sign(b) * 1. -// -// If a != 0 and b == 0, GCD sets z = |a|, x = sign(a) * 1, y = 0. -func (z *Int) GCD(x, y, a, b *Int) *Int { - panic("todo big.GCD") -} - -// Rand sets z to a pseudo-random number in [0, n) and returns z. -// -// As this uses the math/rand package, it must not be used for -// security-sensitive work. Use crypto/rand.Int instead. -func (z *Int) Rand(rnd *rand.Rand, n *Int) *Int { - panic("todo big.Rand") -} - -// ModInverse sets z to the multiplicative inverse of g in the ring ℤ/nℤ -// and returns z. If g and n are not relatively prime, g has no multiplicative -// inverse in the ring ℤ/nℤ. In this case, z is unchanged and the return value -// is nil. If n == 0, a division-by-zero run-time panic occurs. -func (z *Int) ModInverse(g, n *Int) *Int { - panic("todo big.ModInverse") -} - -// Jacobi returns the Jacobi symbol (x/y), either +1, -1, or 0. -// The y argument must be an odd integer. -func Jacobi(x, y *Int) int { - panic("todo big.Jacobi") -} - -// ModSqrt sets z to a square root of x mod p if such a square root exists, and -// returns z. The modulus p must be an odd prime. If x is not a square mod p, -// ModSqrt leaves z unchanged and returns nil. This function panics if p is -// not an odd integer, its behavior is undefined if p is odd but not prime. -func (z *Int) ModSqrt(x, p *Int) *Int { - panic("todo big.ModSqrt") -} - -// Lsh sets z = x << n and returns z. -func (z *Int) Lsh(x *Int, n uint) *Int { - a := (*openssl.BIGNUM)(z) - b := (*openssl.BIGNUM)(x) - a.Lshift(b, c.Int(n)) - return z -} - -// Rsh sets z = x >> n and returns z. -func (z *Int) Rsh(x *Int, n uint) *Int { - a := (*openssl.BIGNUM)(z) - b := (*openssl.BIGNUM)(x) - a.Rshift(b, c.Int(n)) - return z -} - -// Bit returns the value of the i'th bit of x. That is, it -// returns (x>>i)&1. The bit index i must be >= 0. -func (x *Int) Bit(i int) uint { - panic("todo big.Bit") -} - -// SetBit sets z to x, with x's i'th bit set to b (0 or 1). -// That is, if b is 1 SetBit sets z = x | (1 << i); -// if b is 0 SetBit sets z = x &^ (1 << i). If b is not 0 or 1, -// SetBit will panic. -func (z *Int) SetBit(x *Int, i int, b uint) *Int { - panic("todo big.SetBit") -} - -// And sets z = x & y and returns z. -func (z *Int) And(x, y *Int) *Int { - panic("todo big.And") -} - -// AndNot sets z = x &^ y and returns z. -func (z *Int) AndNot(x, y *Int) *Int { - panic("todo big.AndNot") -} - -// Or sets z = x | y and returns z. -func (z *Int) Or(x, y *Int) *Int { - panic("todo big.Or") -} - -// Xor sets z = x ^ y and returns z. -func (z *Int) Xor(x, y *Int) *Int { - panic("todo big.Xor") -} - -// Not sets z = ^x and returns z. -func (z *Int) Not(x *Int) *Int { - panic("todo big.Not") -} - -// Sqrt sets z to ⌊√x⌋, the largest integer such that z² ≤ x, and returns z. -// It panics if x is negative. -func (z *Int) Sqrt(x *Int) *Int { - panic("todo big.Sqrt") -} - -// ----------------------------------------------------------------------------- diff --git a/runtime/internal/lib/math/big/intconv.go b/runtime/internal/lib/math/big/intconv.go deleted file mode 100644 index 32826602..00000000 --- a/runtime/internal/lib/math/big/intconv.go +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package big - -import ( - c "github.com/goplus/llgo/runtime/internal/clite" - "github.com/goplus/llgo/runtime/internal/clite/openssl" -) - -/* -// Text returns the string representation of x in the given base. -// Base must be between 2 and 62, inclusive. The result uses the -// lower-case letters 'a' to 'z' for digit values 10 to 35, and -// the upper-case letters 'A' to 'Z' for digit values 36 to 61. -// No prefix (such as "0x") is added to the string. If x is a nil -// pointer it returns "". -func (x *Int) Text(base int) string { -} - -// Append appends the string representation of x, as generated by -// x.Text(base), to buf and returns the extended buffer. -func (x *Int) Append(buf []byte, base int) []byte { -} -*/ - -// String returns the decimal representation of x as generated by -// x.Text(10). -func (x *Int) String() string { - // TODO(xsw): can optimize it? - cstr := (*openssl.BIGNUM)(x).CStr() - ret := c.GoString(cstr) - openssl.FreeCStr(cstr) - return ret -} - -/* -// Format implements fmt.Formatter. It accepts the formats -// 'b' (binary), 'o' (octal with 0 prefix), 'O' (octal with 0o prefix), -// 'd' (decimal), 'x' (lowercase hexadecimal), and -// 'X' (uppercase hexadecimal). -// Also supported are the full suite of package fmt's format -// flags for integral types, including '+' and ' ' for sign -// control, '#' for leading zero in octal and for hexadecimal, -// a leading "0x" or "0X" for "%#x" and "%#X" respectively, -// specification of minimum digits precision, output field -// width, space or zero padding, and '-' for left or right -// justification. -func (x *Int) Format(s fmt.State, ch rune) { -} - -// Scan is a support routine for fmt.Scanner; it sets z to the value of -// the scanned number. It accepts the formats 'b' (binary), 'o' (octal), -// 'd' (decimal), 'x' (lowercase hexadecimal), and 'X' (uppercase hexadecimal). -func (z *Int) Scan(s fmt.ScanState, ch rune) error { -} -*/ diff --git a/runtime/internal/lib/math/big/prime.go b/runtime/internal/lib/math/big/prime.go deleted file mode 100644 index a794073f..00000000 --- a/runtime/internal/lib/math/big/prime.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package big - -// ProbablyPrime reports whether x is probably prime, -// applying the Miller-Rabin test with n pseudorandomly chosen bases -// as well as a Baillie-PSW test. -// -// If x is prime, ProbablyPrime returns true. -// If x is chosen randomly and not prime, ProbablyPrime probably returns false. -// The probability of returning true for a randomly chosen non-prime is at most ¼ⁿ. -// -// ProbablyPrime is 100% accurate for inputs less than 2⁶⁴. -// See Menezes et al., Handbook of Applied Cryptography, 1997, pp. 145-149, -// and FIPS 186-4 Appendix F for further discussion of the error probabilities. -// -// ProbablyPrime is not suitable for judging primes that an adversary may -// have crafted to fool the test. -// -// As of Go 1.8, ProbablyPrime(0) is allowed and applies only a Baillie-PSW test. -// Before Go 1.8, ProbablyPrime applied only the Miller-Rabin tests, and ProbablyPrime(0) panicked. -func (x *Int) ProbablyPrime(n int) bool { - panic("ProbablyPrime: todo") -} diff --git a/runtime/internal/lib/reflect/value.go b/runtime/internal/lib/reflect/value.go index 4bee6de3..4cec494d 100644 --- a/runtime/internal/lib/reflect/value.go +++ b/runtime/internal/lib/reflect/value.go @@ -600,8 +600,13 @@ func (v Value) Field(i int) Value { field := &tt.Fields[i] typ := field.Typ + // Check closure to func + kind := typ.Kind() + if typ.IsClosure() { + kind = abi.Func + } // Inherit permission bits from v, but clear flagEmbedRO. - fl := v.flag&(flagStickyRO|flagIndir|flagAddr) | flag(typ.Kind()) + fl := v.flag&(flagStickyRO|flagIndir|flagAddr) | flag(kind) // Using an unexported field forces flagRO. if !field.Exported() { if field.Embedded() { diff --git a/ssa/abitype.go b/ssa/abitype.go index 8b61608b..6f465edd 100644 --- a/ssa/abitype.go +++ b/ssa/abitype.go @@ -86,14 +86,18 @@ func (b Builder) abiTypeOf(t types.Type) func() Expr { func (b Builder) abiTupleOf(t *types.Tuple) func() Expr { n := t.Len() - tuple := make([]Expr, n) + tuple := make([]func() Expr, n) for i := 0; i < n; i++ { - tuple[i] = b.abiType(t.At(i).Type()) + tuple[i] = b.abiTypeOf(t.At(i).Type()) } return func() Expr { prog := b.Prog tSlice := prog.Slice(prog.AbiTypePtr()) - return b.SliceLit(tSlice, tuple...) + elts := make([]Expr, n) + for i := 0; i < n; i++ { + elts[i] = tuple[i]() + } + return b.SliceLit(tSlice, elts...) } }