; LLVM IR from intuitive-robots/mdt_policy :: pyhash-0.9.3/src/smhasher (siphash_sse2)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%union.packedelem64_t = type { <2 x i64> }

@siphash_init = external hidden constant [2 x { [2 x i64] }], align 16
@siphash_final = external hidden constant { [2 x i64] }, align 16

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_loadu_si128(ptr noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_xor_si128(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpackhi_epi64(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_loadl_epi64(ptr noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_or_si128(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_slli_epi64(<2 x i64> noundef, i32 noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_srli_epi64(<2 x i64> noundef, i32 noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_add_epi64(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpacklo_epi32(<2 x i64> noundef, <2 x i64> noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_cvtsi32_si128(i32 noundef) #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i32 @_mm_cvtsi128_si32(<2 x i64> noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i64 @siphash13(ptr noundef %0, ptr noundef %1, i64 noundef %2) #2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca <2 x i64>, align 16
  %8 = alloca <2 x i64>, align 16
  %9 = alloca <2 x i64>, align 16
  %10 = alloca <2 x i64>, align 16
  %11 = alloca <2 x i64>, align 16
  %12 = alloca <2 x i64>, align 16
  %13 = alloca <2 x i64>, align 16
  %14 = alloca i64, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store i64 %2, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #3
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = getelementptr inbounds i8, ptr %19, i64 0
  %21 = call <2 x i64> @_mm_loadu_si128(ptr noundef %20)
  store <2 x i64> %21, ptr %7, align 16, !tbaa !11
  %22 = load <2 x i64>, ptr @siphash_init, align 16, !tbaa !11
  store <2 x i64> %22, ptr %8, align 16, !tbaa !11
  %23 = load <2 x i64>, ptr getelementptr inbounds ([2 x %union.packedelem64_t], ptr @siphash_init, i64 0, i64 1), align 16, !tbaa !11
  store <2 x i64> %23, ptr %10, align 16, !tbaa !11
  %24 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %25 = load <2 x i64>, ptr %7, align 16, !tbaa !11
  %26 = load <2 x i64>, ptr %7, align 16, !tbaa !11
  %27 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %25, <2 x i64> noundef %26)
  %28 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %24, <2 x i64> noundef %27)
  store <2 x i64> %28, ptr %8, align 16, !tbaa !11
  %29 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %30 = load <2 x i64>, ptr %7, align 16, !tbaa !11
  %31 = load <2 x i64>, ptr %7, align 16, !tbaa !11
  %32 = call <2 x i64> @_mm_unpackhi_epi64(<2 x i64> noundef %30, <2 x i64> noundef %31)
  %33 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %29, <2 x i64> noundef %32)
  store <2 x i64> %33, ptr %10, align 16, !tbaa !11
  %34 = load i64, ptr %6, align 8, !tbaa !9
  %35 = and i64 %34, 255
  %36 = shl i64 %35, 56
  store i64 %36, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %17, align 8, !tbaa !9
  %37 = load i64, ptr %6, align 8, !tbaa !9
  %38 = and i64 %37, -8
  store i64 %38, ptr %18, align 8, !tbaa !9
  br label %39

39:                                               ; preds = %116, %3
  %40 = load i64, ptr %17, align 8, !tbaa !9
  %41 = load i64, ptr %18, align 8, !tbaa !9
  %42 = icmp ult i64 %40, %41
  br i1 %42, label %43, label %119

43:                                               ; preds = %39
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = load i64, ptr %17, align 8, !tbaa !9
  %46 = getelementptr inbounds i8, ptr %44, i64 %45
  %47 = call <2 x i64> @_mm_loadl_epi64(ptr noundef %46)
  store <2 x i64> %47, ptr %13, align 16, !tbaa !11
  %48 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %49 = load <2 x i64>, ptr %13, align 16, !tbaa !11
  %50 = bitcast <2 x i64> %49 to <16 x i8>
  %51 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %50, <16 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
  %52 = bitcast <16 x i8> %51 to <2 x i64>
  %53 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %48, <2 x i64> noundef %52)
  store <2 x i64> %53, ptr %10, align 16, !tbaa !11
  %54 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %54, ptr %11, align 16, !tbaa !11
  %55 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %56 = bitcast <2 x i64> %55 to <4 x i32>
  %57 = shufflevector <4 x i32> %56, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %58 = bitcast <4 x i32> %57 to <2 x i64>
  store <2 x i64> %58, ptr %12, align 16, !tbaa !11
  %59 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %60 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %59, i32 noundef 13)
  %61 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %62 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %61, i32 noundef 51)
  %63 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %60, <2 x i64> noundef %62)
  store <2 x i64> %63, ptr %11, align 16, !tbaa !11
  %64 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %65 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %66 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %64, <2 x i64> noundef %65)
  store <2 x i64> %66, ptr %8, align 16, !tbaa !11
  %67 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %68 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %67, i32 noundef 16)
  %69 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %70 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %69, i32 noundef 48)
  %71 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %68, <2 x i64> noundef %70)
  store <2 x i64> %71, ptr %12, align 16, !tbaa !11
  %72 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %73 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %74 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %72, <2 x i64> noundef %73)
  store <2 x i64> %74, ptr %10, align 16, !tbaa !11
  %75 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %76 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %77 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %75, <2 x i64> noundef %76)
  store <2 x i64> %77, ptr %10, align 16, !tbaa !11
  %78 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %79 = bitcast <2 x i64> %78 to <4 x i32>
  %80 = shufflevector <4 x i32> %79, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %81 = bitcast <4 x i32> %80 to <2 x i64>
  store <2 x i64> %81, ptr %9, align 16, !tbaa !11
  %82 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %82, ptr %11, align 16, !tbaa !11
  %83 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %84 = bitcast <2 x i64> %83 to <4 x i32>
  %85 = shufflevector <4 x i32> %84, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %86 = bitcast <4 x i32> %85 to <2 x i64>
  store <2 x i64> %86, ptr %12, align 16, !tbaa !11
  %87 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %88 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %87, i32 noundef 17)
  %89 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %90 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %89, i32 noundef 47)
  %91 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %88, <2 x i64> noundef %90)
  store <2 x i64> %91, ptr %11, align 16, !tbaa !11
  %92 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %93 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %94 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %92, <2 x i64> noundef %93)
  store <2 x i64> %94, ptr %9, align 16, !tbaa !11
  %95 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %96 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %95, i32 noundef 21)
  %97 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %98 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %97, i32 noundef 43)
  %99 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %96, <2 x i64> noundef %98)
  store <2 x i64> %99, ptr %12, align 16, !tbaa !11
  %100 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %101 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %102 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %100, <2 x i64> noundef %101)
  store <2 x i64> %102, ptr %10, align 16, !tbaa !11
  %103 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %104 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %105 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %103, <2 x i64> noundef %104)
  store <2 x i64> %105, ptr %10, align 16, !tbaa !11
  %106 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %107 = bitcast <2 x i64> %106 to <4 x i32>
  %108 = shufflevector <4 x i32> %107, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %109 = bitcast <4 x i32> %108 to <2 x i64>
  store <2 x i64> %109, ptr %8, align 16, !tbaa !11
  %110 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %111 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %112 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %110, <2 x i64> noundef %111)
  store <2 x i64> %112, ptr %10, align 16, !tbaa !11
  %113 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %114 = load <2 x i64>, ptr %13, align 16, !tbaa !11
  %115 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %113, <2 x i64> noundef %114)
  store <2 x i64> %115, ptr %8, align 16, !tbaa !11
  br label %116

116:                                              ; preds = %43
  %117 = load i64, ptr %17, align 8, !tbaa !9
  %118 = add i64 %117, 8
  store i64 %118, ptr %17, align 8, !tbaa !9
  br label %39, !llvm.loop !12

119:                                              ; preds = %39
  %120 = load i64, ptr %6, align 8, !tbaa !9
  %121 = load i64, ptr %18, align 8, !tbaa !9
  %122 = sub i64 %120, %121
  switch i64 %122, label %193 [
    i64 7, label %123
    i64 6, label %133
    i64 5, label %143
    i64 4, label %153
    i64 3, label %163
    i64 2, label %173
    i64 1, label %183
    i64 0, label %192
  ]

123:                                              ; preds = %119
  %124 = load ptr, ptr %5, align 8, !tbaa !5
  %125 = load i64, ptr %17, align 8, !tbaa !9
  %126 = add i64 %125, 6
  %127 = getelementptr inbounds i8, ptr %124, i64 %126
  %128 = load i8, ptr %127, align 1, !tbaa !11
  %129 = zext i8 %128 to i64
  %130 = shl i64 %129, 48
  %131 = load i64, ptr %14, align 8, !tbaa !9
  %132 = or i64 %131, %130
  store i64 %132, ptr %14, align 8, !tbaa !9
  br label %133

133:                                              ; preds = %123, %119
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = load i64, ptr %17, align 8, !tbaa !9
  %136 = add i64 %135, 5
  %137 = getelementptr inbounds i8, ptr %134, i64 %136
  %138 = load i8, ptr %137, align 1, !tbaa !11
  %139 = zext i8 %138 to i64
  %140 = shl i64 %139, 40
  %141 = load i64, ptr %14, align 8, !tbaa !9
  %142 = or i64 %141, %140
  store i64 %142, ptr %14, align 8, !tbaa !9
  br label %143

143:                                              ; preds = %133, %119
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = load i64, ptr %17, align 8, !tbaa !9
  %146 = add i64 %145, 4
  %147 = getelementptr inbounds i8, ptr %144, i64 %146
  %148 = load i8, ptr %147, align 1, !tbaa !11
  %149 = zext i8 %148 to i64
  %150 = shl i64 %149, 32
  %151 = load i64, ptr %14, align 8, !tbaa !9
  %152 = or i64 %151, %150
  store i64 %152, ptr %14, align 8, !tbaa !9
  br label %153

153:                                              ; preds = %143, %119
  %154 = load ptr, ptr %5, align 8, !tbaa !5
  %155 = load i64, ptr %17, align 8, !tbaa !9
  %156 = add i64 %155, 3
  %157 = getelementptr inbounds i8, ptr %154, i64 %156
  %158 = load i8, ptr %157, align 1, !tbaa !11
  %159 = zext i8 %158 to i64
  %160 = shl i64 %159, 24
  %161 = load i64, ptr %14, align 8, !tbaa !9
  %162 = or i64 %161, %160
  store i64 %162, ptr %14, align 8, !tbaa !9
  br label %163

163:                                              ; preds = %153, %119
  %164 = load ptr, ptr %5, align 8, !tbaa !5
  %165 = load i64, ptr %17, align 8, !tbaa !9
  %166 = add i64 %165, 2
  %167 = getelementptr inbounds i8, ptr %164, i64 %166
  %168 = load i8, ptr %167, align 1, !tbaa !11
  %169 = zext i8 %168 to i64
  %170 = shl i64 %169, 16
  %171 = load i64, ptr %14, align 8, !tbaa !9
  %172 = or i64 %171, %170
  store i64 %172, ptr %14, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %163, %119
  %174 = load ptr, ptr %5, align 8, !tbaa !5
  %175 = load i64, ptr %17, align 8, !tbaa !9
  %176 = add i64 %175, 1
  %177 = getelementptr inbounds i8, ptr %174, i64 %176
  %178 = load i8, ptr %177, align 1, !tbaa !11
  %179 = zext i8 %178 to i64
  %180 = shl i64 %179, 8
  %181 = load i64, ptr %14, align 8, !tbaa !9
  %182 = or i64 %181, %180
  store i64 %182, ptr %14, align 8, !tbaa !9
  br label %183

183:                                              ; preds = %173, %119
  %184 = load ptr, ptr %5, align 8, !tbaa !5
  %185 = load i64, ptr %17, align 8, !tbaa !9
  %186 = add i64 %185, 0
  %187 = getelementptr inbounds i8, ptr %184, i64 %186
  %188 = load i8, ptr %187, align 1, !tbaa !11
  %189 = zext i8 %188 to i64
  %190 = load i64, ptr %14, align 8, !tbaa !9
  %191 = or i64 %190, %189
  store i64 %191, ptr %14, align 8, !tbaa !9
  br label %192

192:                                              ; preds = %183, %119
  br label %193

193:                                              ; preds = %192, %119
  br label %194

194:                                              ; preds = %193
  %195 = load i64, ptr %14, align 8, !tbaa !9
  %196 = trunc i64 %195 to i32
  %197 = call <2 x i64> @_mm_cvtsi32_si128(i32 noundef %196)
  %198 = load i64, ptr %14, align 8, !tbaa !9
  %199 = lshr i64 %198, 32
  %200 = trunc i64 %199 to i32
  %201 = call <2 x i64> @_mm_cvtsi32_si128(i32 noundef %200)
  %202 = call <2 x i64> @_mm_unpacklo_epi32(<2 x i64> noundef %197, <2 x i64> noundef %201)
  store <2 x i64> %202, ptr %13, align 16, !tbaa !11
  %203 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %204 = load <2 x i64>, ptr %13, align 16, !tbaa !11
  %205 = bitcast <2 x i64> %204 to <16 x i8>
  %206 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %205, <16 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
  %207 = bitcast <16 x i8> %206 to <2 x i64>
  %208 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %203, <2 x i64> noundef %207)
  store <2 x i64> %208, ptr %10, align 16, !tbaa !11
  %209 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %209, ptr %11, align 16, !tbaa !11
  %210 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %211 = bitcast <2 x i64> %210 to <4 x i32>
  %212 = shufflevector <4 x i32> %211, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %213 = bitcast <4 x i32> %212 to <2 x i64>
  store <2 x i64> %213, ptr %12, align 16, !tbaa !11
  %214 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %215 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %214, i32 noundef 13)
  %216 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %217 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %216, i32 noundef 51)
  %218 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %215, <2 x i64> noundef %217)
  store <2 x i64> %218, ptr %11, align 16, !tbaa !11
  %219 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %220 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %221 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %219, <2 x i64> noundef %220)
  store <2 x i64> %221, ptr %8, align 16, !tbaa !11
  %222 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %223 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %222, i32 noundef 16)
  %224 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %225 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %224, i32 noundef 48)
  %226 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %223, <2 x i64> noundef %225)
  store <2 x i64> %226, ptr %12, align 16, !tbaa !11
  %227 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %228 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %229 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %227, <2 x i64> noundef %228)
  store <2 x i64> %229, ptr %10, align 16, !tbaa !11
  %230 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %231 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %232 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %230, <2 x i64> noundef %231)
  store <2 x i64> %232, ptr %10, align 16, !tbaa !11
  %233 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %234 = bitcast <2 x i64> %233 to <4 x i32>
  %235 = shufflevector <4 x i32> %234, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %236 = bitcast <4 x i32> %235 to <2 x i64>
  store <2 x i64> %236, ptr %9, align 16, !tbaa !11
  %237 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %237, ptr %11, align 16, !tbaa !11
  %238 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %239 = bitcast <2 x i64> %238 to <4 x i32>
  %240 = shufflevector <4 x i32> %239, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %241 = bitcast <4 x i32> %240 to <2 x i64>
  store <2 x i64> %241, ptr %12, align 16, !tbaa !11
  %242 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %243 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %242, i32 noundef 17)
  %244 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %245 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %244, i32 noundef 47)
  %246 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %243, <2 x i64> noundef %245)
  store <2 x i64> %246, ptr %11, align 16, !tbaa !11
  %247 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %248 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %249 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %247, <2 x i64> noundef %248)
  store <2 x i64> %249, ptr %9, align 16, !tbaa !11
  %250 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %251 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %250, i32 noundef 21)
  %252 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %253 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %252, i32 noundef 43)
  %254 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %251, <2 x i64> noundef %253)
  store <2 x i64> %254, ptr %12, align 16, !tbaa !11
  %255 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %256 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %257 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %255, <2 x i64> noundef %256)
  store <2 x i64> %257, ptr %10, align 16, !tbaa !11
  %258 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %259 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %260 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %258, <2 x i64> noundef %259)
  store <2 x i64> %260, ptr %10, align 16, !tbaa !11
  %261 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %262 = bitcast <2 x i64> %261 to <4 x i32>
  %263 = shufflevector <4 x i32> %262, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %264 = bitcast <4 x i32> %263 to <2 x i64>
  store <2 x i64> %264, ptr %8, align 16, !tbaa !11
  %265 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %266 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %267 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %265, <2 x i64> noundef %266)
  store <2 x i64> %267, ptr %10, align 16, !tbaa !11
  %268 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %269 = load <2 x i64>, ptr %13, align 16, !tbaa !11
  %270 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %268, <2 x i64> noundef %269)
  store <2 x i64> %270, ptr %8, align 16, !tbaa !11
  %271 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %272 = load <2 x i64>, ptr @siphash_final, align 16, !tbaa !11
  %273 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %271, <2 x i64> noundef %272)
  store <2 x i64> %273, ptr %8, align 16, !tbaa !11
  %274 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %274, ptr %11, align 16, !tbaa !11
  %275 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %276 = bitcast <2 x i64> %275 to <4 x i32>
  %277 = shufflevector <4 x i32> %276, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %278 = bitcast <4 x i32> %277 to <2 x i64>
  store <2 x i64> %278, ptr %12, align 16, !tbaa !11
  %279 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %280 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %279, i32 noundef 13)
  %281 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %282 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %281, i32 noundef 51)
  %283 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %280, <2 x i64> noundef %282)
  store <2 x i64> %283, ptr %11, align 16, !tbaa !11
  %284 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %285 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %286 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %284, <2 x i64> noundef %285)
  store <2 x i64> %286, ptr %8, align 16, !tbaa !11
  %287 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %288 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %287, i32 noundef 16)
  %289 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %290 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %289, i32 noundef 48)
  %291 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %288, <2 x i64> noundef %290)
  store <2 x i64> %291, ptr %12, align 16, !tbaa !11
  %292 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %293 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %294 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %292, <2 x i64> noundef %293)
  store <2 x i64> %294, ptr %10, align 16, !tbaa !11
  %295 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %296 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %297 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %295, <2 x i64> noundef %296)
  store <2 x i64> %297, ptr %10, align 16, !tbaa !11
  %298 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %299 = bitcast <2 x i64> %298 to <4 x i32>
  %300 = shufflevector <4 x i32> %299, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %301 = bitcast <4 x i32> %300 to <2 x i64>
  store <2 x i64> %301, ptr %9, align 16, !tbaa !11
  %302 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %302, ptr %11, align 16, !tbaa !11
  %303 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %304 = bitcast <2 x i64> %303 to <4 x i32>
  %305 = shufflevector <4 x i32> %304, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %306 = bitcast <4 x i32> %305 to <2 x i64>
  store <2 x i64> %306, ptr %12, align 16, !tbaa !11
  %307 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %308 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %307, i32 noundef 17)
  %309 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %310 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %309, i32 noundef 47)
  %311 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %308, <2 x i64> noundef %310)
  store <2 x i64> %311, ptr %11, align 16, !tbaa !11
  %312 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %313 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %314 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %312, <2 x i64> noundef %313)
  store <2 x i64> %314, ptr %9, align 16, !tbaa !11
  %315 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %316 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %315, i32 noundef 21)
  %317 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %318 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %317, i32 noundef 43)
  %319 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %316, <2 x i64> noundef %318)
  store <2 x i64> %319, ptr %12, align 16, !tbaa !11
  %320 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %321 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %322 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %320, <2 x i64> noundef %321)
  store <2 x i64> %322, ptr %10, align 16, !tbaa !11
  %323 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %324 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %325 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %323, <2 x i64> noundef %324)
  store <2 x i64> %325, ptr %10, align 16, !tbaa !11
  %326 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %327 = bitcast <2 x i64> %326 to <4 x i32>
  %328 = shufflevector <4 x i32> %327, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %329 = bitcast <4 x i32> %328 to <2 x i64>
  store <2 x i64> %329, ptr %8, align 16, !tbaa !11
  %330 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %331 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %332 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %330, <2 x i64> noundef %331)
  store <2 x i64> %332, ptr %10, align 16, !tbaa !11
  %333 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %333, ptr %11, align 16, !tbaa !11
  %334 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %335 = bitcast <2 x i64> %334 to <4 x i32>
  %336 = shufflevector <4 x i32> %335, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %337 = bitcast <4 x i32> %336 to <2 x i64>
  store <2 x i64> %337, ptr %12, align 16, !tbaa !11
  %338 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %339 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %338, i32 noundef 13)
  %340 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %341 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %340, i32 noundef 51)
  %342 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %339, <2 x i64> noundef %341)
  store <2 x i64> %342, ptr %11, align 16, !tbaa !11
  %343 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %344 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %345 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %343, <2 x i64> noundef %344)
  store <2 x i64> %345, ptr %8, align 16, !tbaa !11
  %346 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %347 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %346, i32 noundef 16)
  %348 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %349 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %348, i32 noundef 48)
  %350 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %347, <2 x i64> noundef %349)
  store <2 x i64> %350, ptr %12, align 16, !tbaa !11
  %351 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %352 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %353 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %351, <2 x i64> noundef %352)
  store <2 x i64> %353, ptr %10, align 16, !tbaa !11
  %354 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %355 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %356 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %354, <2 x i64> noundef %355)
  store <2 x i64> %356, ptr %10, align 16, !tbaa !11
  %357 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %358 = bitcast <2 x i64> %357 to <4 x i32>
  %359 = shufflevector <4 x i32> %358, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %360 = bitcast <4 x i32> %359 to <2 x i64>
  store <2 x i64> %360, ptr %9, align 16, !tbaa !11
  %361 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %361, ptr %11, align 16, !tbaa !11
  %362 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %363 = bitcast <2 x i64> %362 to <4 x i32>
  %364 = shufflevector <4 x i32> %363, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %365 = bitcast <4 x i32> %364 to <2 x i64>
  store <2 x i64> %365, ptr %12, align 16, !tbaa !11
  %366 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %367 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %366, i32 noundef 17)
  %368 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %369 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %368, i32 noundef 47)
  %370 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %367, <2 x i64> noundef %369)
  store <2 x i64> %370, ptr %11, align 16, !tbaa !11
  %371 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %372 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %373 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %371, <2 x i64> noundef %372)
  store <2 x i64> %373, ptr %9, align 16, !tbaa !11
  %374 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %375 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %374, i32 noundef 21)
  %376 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %377 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %376, i32 noundef 43)
  %378 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %375, <2 x i64> noundef %377)
  store <2 x i64> %378, ptr %12, align 16, !tbaa !11
  %379 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %380 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %381 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %379, <2 x i64> noundef %380)
  store <2 x i64> %381, ptr %10, align 16, !tbaa !11
  %382 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %383 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %384 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %382, <2 x i64> noundef %383)
  store <2 x i64> %384, ptr %10, align 16, !tbaa !11
  %385 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %386 = bitcast <2 x i64> %385 to <4 x i32>
  %387 = shufflevector <4 x i32> %386, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %388 = bitcast <4 x i32> %387 to <2 x i64>
  store <2 x i64> %388, ptr %8, align 16, !tbaa !11
  %389 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %390 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %391 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %389, <2 x i64> noundef %390)
  store <2 x i64> %391, ptr %10, align 16, !tbaa !11
  %392 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %392, ptr %11, align 16, !tbaa !11
  %393 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %394 = bitcast <2 x i64> %393 to <4 x i32>
  %395 = shufflevector <4 x i32> %394, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %396 = bitcast <4 x i32> %395 to <2 x i64>
  store <2 x i64> %396, ptr %12, align 16, !tbaa !11
  %397 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %398 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %397, i32 noundef 13)
  %399 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %400 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %399, i32 noundef 51)
  %401 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %398, <2 x i64> noundef %400)
  store <2 x i64> %401, ptr %11, align 16, !tbaa !11
  %402 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %403 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %404 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %402, <2 x i64> noundef %403)
  store <2 x i64> %404, ptr %8, align 16, !tbaa !11
  %405 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %406 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %405, i32 noundef 16)
  %407 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %408 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %407, i32 noundef 48)
  %409 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %406, <2 x i64> noundef %408)
  store <2 x i64> %409, ptr %12, align 16, !tbaa !11
  %410 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %411 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %412 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %410, <2 x i64> noundef %411)
  store <2 x i64> %412, ptr %10, align 16, !tbaa !11
  %413 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %414 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %415 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %413, <2 x i64> noundef %414)
  store <2 x i64> %415, ptr %10, align 16, !tbaa !11
  %416 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %417 = bitcast <2 x i64> %416 to <4 x i32>
  %418 = shufflevector <4 x i32> %417, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %419 = bitcast <4 x i32> %418 to <2 x i64>
  store <2 x i64> %419, ptr %9, align 16, !tbaa !11
  %420 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  store <2 x i64> %420, ptr %11, align 16, !tbaa !11
  %421 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %422 = bitcast <2 x i64> %421 to <4 x i32>
  %423 = shufflevector <4 x i32> %422, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %424 = bitcast <4 x i32> %423 to <2 x i64>
  store <2 x i64> %424, ptr %12, align 16, !tbaa !11
  %425 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %426 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %425, i32 noundef 17)
  %427 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %428 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %427, i32 noundef 47)
  %429 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %426, <2 x i64> noundef %428)
  store <2 x i64> %429, ptr %11, align 16, !tbaa !11
  %430 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %431 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %432 = call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %430, <2 x i64> noundef %431)
  store <2 x i64> %432, ptr %9, align 16, !tbaa !11
  %433 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %434 = call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %433, i32 noundef 21)
  %435 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %436 = call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %435, i32 noundef 43)
  %437 = call <2 x i64> @_mm_or_si128(<2 x i64> noundef %434, <2 x i64> noundef %436)
  store <2 x i64> %437, ptr %12, align 16, !tbaa !11
  %438 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %439 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %440 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %438, <2 x i64> noundef %439)
  store <2 x i64> %440, ptr %10, align 16, !tbaa !11
  %441 = load <2 x i64>, ptr %11, align 16, !tbaa !11
  %442 = load <2 x i64>, ptr %12, align 16, !tbaa !11
  %443 = call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %441, <2 x i64> noundef %442)
  store <2 x i64> %443, ptr %10, align 16, !tbaa !11
  %444 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %445 = bitcast <2 x i64> %444 to <4 x i32>
  %446 = shufflevector <4 x i32> %445, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %447 = bitcast <4 x i32> %446 to <2 x i64>
  store <2 x i64> %447, ptr %8, align 16, !tbaa !11
  %448 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %449 = load <2 x i64>, ptr %9, align 16, !tbaa !11
  %450 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %448, <2 x i64> noundef %449)
  store <2 x i64> %450, ptr %10, align 16, !tbaa !11
  %451 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %452 = load <2 x i64>, ptr %10, align 16, !tbaa !11
  %453 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %451, <2 x i64> noundef %452)
  store <2 x i64> %453, ptr %8, align 16, !tbaa !11
  %454 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %455 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %456 = bitcast <2 x i64> %455 to <4 x i32>
  %457 = shufflevector <4 x i32> %456, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %458 = bitcast <4 x i32> %457 to <2 x i64>
  %459 = call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %454, <2 x i64> noundef %458)
  store <2 x i64> %459, ptr %8, align 16, !tbaa !11
  %460 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %461 = call i32 @_mm_cvtsi128_si32(<2 x i64> noundef %460)
  store i32 %461, ptr %15, align 4, !tbaa !14
  %462 = load <2 x i64>, ptr %8, align 16, !tbaa !11
  %463 = bitcast <2 x i64> %462 to <16 x i8>
  %464 = shufflevector <16 x i8> %463, <16 x i8> zeroinitializer, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19>
  %465 = bitcast <16 x i8> %464 to <2 x i64>
  %466 = call i32 @_mm_cvtsi128_si32(<2 x i64> noundef %465)
  store i32 %466, ptr %16, align 4, !tbaa !14
  %467 = load i32, ptr %16, align 4, !tbaa !14
  %468 = zext i32 %467 to i64
  %469 = shl i64 %468, 32
  %470 = load i32, ptr %15, align 4, !tbaa !14
  %471 = zext i32 %470 to i64
  %472 = or i64 %469, %471
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #3
  ret i64 %472
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { alwaysinline nounwind uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@siphash_init = external hidden local_unnamed_addr constant [2 x { [2 x i64] }], align 16
@siphash_final = external hidden local_unnamed_addr constant { [2 x i64] }, align 16

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_loadu_si128(ptr noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_xor_si128(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpackhi_epi64(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_loadl_epi64(ptr noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_or_si128(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_slli_epi64(<2 x i64> noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_srli_epi64(<2 x i64> noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_add_epi64(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_unpacklo_epi32(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden <2 x i64> @_mm_cvtsi32_si128(i32 noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i32 @_mm_cvtsi128_si32(<2 x i64> noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local i64 @siphash13(ptr noundef %0, ptr noundef %1, i64 noundef %2) local_unnamed_addr #1 {
  %4 = tail call <2 x i64> @_mm_loadu_si128(ptr noundef %0)
  %5 = load <2 x i64>, ptr @siphash_init, align 16, !tbaa !5
  %6 = load <2 x i64>, ptr getelementptr inbounds (i8, ptr @siphash_init, i64 16), align 16, !tbaa !5
  %7 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %4, <2 x i64> noundef %4)
  %8 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %5, <2 x i64> noundef %7)
  %9 = tail call <2 x i64> @_mm_unpackhi_epi64(<2 x i64> noundef %4, <2 x i64> noundef %4)
  %10 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %6, <2 x i64> noundef %9)
  %11 = shl i64 %2, 56
  %12 = and i64 %2, -8
  %.not = icmp eq i64 %12, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %3, %.lr.ph
  %.0201 = phi <2 x i64> [ %44, %.lr.ph ], [ %8, %3 ]
  %.0195200 = phi i64 [ %45, %.lr.ph ], [ 0, %3 ]
  %.0196199 = phi <2 x i64> [ %43, %.lr.ph ], [ %10, %3 ]
  %13 = getelementptr inbounds i8, ptr %1, i64 %.0195200
  %14 = tail call <2 x i64> @_mm_loadl_epi64(ptr noundef %13)
  %15 = shufflevector <2 x i64> <i64 poison, i64 0>, <2 x i64> %14, <2 x i32> <i32 1, i32 2>
  %16 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %.0196199, <2 x i64> noundef %15)
  %17 = shufflevector <2 x i64> %16, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %18 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %16, i32 noundef 13)
  %19 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %16, i32 noundef 51)
  %20 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %18, <2 x i64> noundef %19)
  %21 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %.0201, <2 x i64> noundef %16)
  %22 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %17, i32 noundef 16)
  %23 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %17, i32 noundef 48)
  %24 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %22, <2 x i64> noundef %23)
  %25 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %20, <2 x i64> noundef %24)
  %26 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %25, <2 x i64> noundef %21)
  %27 = bitcast <2 x i64> %21 to <4 x i32>
  %28 = shufflevector <4 x i32> %27, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %29 = bitcast <4 x i32> %28 to <2 x i64>
  %30 = shufflevector <2 x i64> %26, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %31 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %26, i32 noundef 17)
  %32 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %26, i32 noundef 47)
  %33 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %31, <2 x i64> noundef %32)
  %34 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %29, <2 x i64> noundef %26)
  %35 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %30, i32 noundef 21)
  %36 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %30, i32 noundef 43)
  %37 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %35, <2 x i64> noundef %36)
  %38 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %33, <2 x i64> noundef %37)
  %39 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %33, <2 x i64> noundef %37)
  %40 = bitcast <2 x i64> %34 to <4 x i32>
  %41 = shufflevector <4 x i32> %40, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %42 = bitcast <4 x i32> %41 to <2 x i64>
  %43 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %39, <2 x i64> noundef %34)
  %44 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %42, <2 x i64> noundef %14)
  %45 = add nuw i64 %.0195200, 8
  %46 = icmp ult i64 %45, %12
  br i1 %46, label %.lr.ph, label %._crit_edge, !llvm.loop !8

._crit_edge:                                      ; preds = %.lr.ph, %3
  %.0196.lcssa = phi <2 x i64> [ %10, %3 ], [ %43, %.lr.ph ]
  %.0195.lcssa = phi i64 [ 0, %3 ], [ %45, %.lr.ph ]
  %.0.lcssa = phi <2 x i64> [ %8, %3 ], [ %44, %.lr.ph ]
  %47 = and i64 %2, 7
  switch i64 %47, label %default.unreachable [
    i64 7, label %48
    i64 6, label %55
    i64 5, label %62
    i64 4, label %69
    i64 3, label %76
    i64 2, label %83
    i64 1, label %90
    i64 0, label %95
  ]

48:                                               ; preds = %._crit_edge
  %49 = or disjoint i64 %.0195.lcssa, 6
  %50 = getelementptr inbounds i8, ptr %1, i64 %49
  %51 = load i8, ptr %50, align 1, !tbaa !5
  %52 = zext i8 %51 to i64
  %53 = shl nuw nsw i64 %52, 48
  %54 = or disjoint i64 %53, %11
  br label %55

55:                                               ; preds = %48, %._crit_edge
  %.0197 = phi i64 [ %11, %._crit_edge ], [ %54, %48 ]
  %56 = or disjoint i64 %.0195.lcssa, 5
  %57 = getelementptr inbounds i8, ptr %1, i64 %56
  %58 = load i8, ptr %57, align 1, !tbaa !5
  %59 = zext i8 %58 to i64
  %60 = shl nuw nsw i64 %59, 40
  %61 = or i64 %60, %.0197
  br label %62

62:                                               ; preds = %55, %._crit_edge
  %.1 = phi i64 [ %11, %._crit_edge ], [ %61, %55 ]
  %63 = or disjoint i64 %.0195.lcssa, 4
  %64 = getelementptr inbounds i8, ptr %1, i64 %63
  %65 = load i8, ptr %64, align 1, !tbaa !5
  %66 = zext i8 %65 to i64
  %67 = shl nuw nsw i64 %66, 32
  %68 = or i64 %67, %.1
  br label %69

69:                                               ; preds = %62, %._crit_edge
  %.2 = phi i64 [ %11, %._crit_edge ], [ %68, %62 ]
  %70 = or disjoint i64 %.0195.lcssa, 3
  %71 = getelementptr inbounds i8, ptr %1, i64 %70
  %72 = load i8, ptr %71, align 1, !tbaa !5
  %73 = zext i8 %72 to i64
  %74 = shl nuw nsw i64 %73, 24
  %75 = or i64 %74, %.2
  br label %76

76:                                               ; preds = %69, %._crit_edge
  %.3 = phi i64 [ %11, %._crit_edge ], [ %75, %69 ]
  %77 = or disjoint i64 %.0195.lcssa, 2
  %78 = getelementptr inbounds i8, ptr %1, i64 %77
  %79 = load i8, ptr %78, align 1, !tbaa !5
  %80 = zext i8 %79 to i64
  %81 = shl nuw nsw i64 %80, 16
  %82 = or i64 %81, %.3
  br label %83

83:                                               ; preds = %76, %._crit_edge
  %.4 = phi i64 [ %11, %._crit_edge ], [ %82, %76 ]
  %84 = or disjoint i64 %.0195.lcssa, 1
  %85 = getelementptr inbounds i8, ptr %1, i64 %84
  %86 = load i8, ptr %85, align 1, !tbaa !5
  %87 = zext i8 %86 to i64
  %88 = shl nuw nsw i64 %87, 8
  %89 = or i64 %88, %.4
  br label %90

90:                                               ; preds = %83, %._crit_edge
  %.5 = phi i64 [ %11, %._crit_edge ], [ %89, %83 ]
  %91 = getelementptr inbounds i8, ptr %1, i64 %.0195.lcssa
  %92 = load i8, ptr %91, align 1, !tbaa !5
  %93 = zext i8 %92 to i64
  %94 = or i64 %.5, %93
  br label %95

default.unreachable:                              ; preds = %._crit_edge
  unreachable

95:                                               ; preds = %._crit_edge, %90
  %.6 = phi i64 [ %11, %._crit_edge ], [ %94, %90 ]
  %96 = trunc i64 %.6 to i32
  %97 = tail call <2 x i64> @_mm_cvtsi32_si128(i32 noundef %96)
  %98 = lshr i64 %.6, 32
  %99 = trunc nuw i64 %98 to i32
  %100 = tail call <2 x i64> @_mm_cvtsi32_si128(i32 noundef %99)
  %101 = tail call <2 x i64> @_mm_unpacklo_epi32(<2 x i64> noundef %97, <2 x i64> noundef %100)
  %102 = shufflevector <2 x i64> <i64 poison, i64 0>, <2 x i64> %101, <2 x i32> <i32 1, i32 2>
  %103 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %.0196.lcssa, <2 x i64> noundef %102)
  %104 = shufflevector <2 x i64> %103, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %105 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %103, i32 noundef 13)
  %106 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %103, i32 noundef 51)
  %107 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %105, <2 x i64> noundef %106)
  %108 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %.0.lcssa, <2 x i64> noundef %103)
  %109 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %104, i32 noundef 16)
  %110 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %104, i32 noundef 48)
  %111 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %109, <2 x i64> noundef %110)
  %112 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %107, <2 x i64> noundef %111)
  %113 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %112, <2 x i64> noundef %108)
  %114 = bitcast <2 x i64> %108 to <4 x i32>
  %115 = shufflevector <4 x i32> %114, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %116 = bitcast <4 x i32> %115 to <2 x i64>
  %117 = shufflevector <2 x i64> %113, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %118 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %113, i32 noundef 17)
  %119 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %113, i32 noundef 47)
  %120 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %118, <2 x i64> noundef %119)
  %121 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %116, <2 x i64> noundef %113)
  %122 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %117, i32 noundef 21)
  %123 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %117, i32 noundef 43)
  %124 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %122, <2 x i64> noundef %123)
  %125 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %120, <2 x i64> noundef %124)
  %126 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %120, <2 x i64> noundef %124)
  %127 = bitcast <2 x i64> %121 to <4 x i32>
  %128 = shufflevector <4 x i32> %127, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %129 = bitcast <4 x i32> %128 to <2 x i64>
  %130 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %126, <2 x i64> noundef %121)
  %131 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %129, <2 x i64> noundef %101)
  %132 = load <2 x i64>, ptr @siphash_final, align 16, !tbaa !5
  %133 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %131, <2 x i64> noundef %132)
  %134 = shufflevector <2 x i64> %130, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %135 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %130, i32 noundef 13)
  %136 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %130, i32 noundef 51)
  %137 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %135, <2 x i64> noundef %136)
  %138 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %133, <2 x i64> noundef %130)
  %139 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %134, i32 noundef 16)
  %140 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %134, i32 noundef 48)
  %141 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %139, <2 x i64> noundef %140)
  %142 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %137, <2 x i64> noundef %141)
  %143 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %142, <2 x i64> noundef %138)
  %144 = bitcast <2 x i64> %138 to <4 x i32>
  %145 = shufflevector <4 x i32> %144, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %146 = bitcast <4 x i32> %145 to <2 x i64>
  %147 = shufflevector <2 x i64> %143, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %148 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %143, i32 noundef 17)
  %149 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %143, i32 noundef 47)
  %150 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %148, <2 x i64> noundef %149)
  %151 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %146, <2 x i64> noundef %143)
  %152 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %147, i32 noundef 21)
  %153 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %147, i32 noundef 43)
  %154 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %152, <2 x i64> noundef %153)
  %155 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %150, <2 x i64> noundef %154)
  %156 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %150, <2 x i64> noundef %154)
  %157 = bitcast <2 x i64> %151 to <4 x i32>
  %158 = shufflevector <4 x i32> %157, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %159 = bitcast <4 x i32> %158 to <2 x i64>
  %160 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %156, <2 x i64> noundef %151)
  %161 = shufflevector <2 x i64> %160, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %162 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %160, i32 noundef 13)
  %163 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %160, i32 noundef 51)
  %164 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %162, <2 x i64> noundef %163)
  %165 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %159, <2 x i64> noundef %160)
  %166 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %161, i32 noundef 16)
  %167 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %161, i32 noundef 48)
  %168 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %166, <2 x i64> noundef %167)
  %169 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %164, <2 x i64> noundef %168)
  %170 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %169, <2 x i64> noundef %165)
  %171 = bitcast <2 x i64> %165 to <4 x i32>
  %172 = shufflevector <4 x i32> %171, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %173 = bitcast <4 x i32> %172 to <2 x i64>
  %174 = shufflevector <2 x i64> %170, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %175 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %170, i32 noundef 17)
  %176 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %170, i32 noundef 47)
  %177 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %175, <2 x i64> noundef %176)
  %178 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %173, <2 x i64> noundef %170)
  %179 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %174, i32 noundef 21)
  %180 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %174, i32 noundef 43)
  %181 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %179, <2 x i64> noundef %180)
  %182 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %177, <2 x i64> noundef %181)
  %183 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %177, <2 x i64> noundef %181)
  %184 = bitcast <2 x i64> %178 to <4 x i32>
  %185 = shufflevector <4 x i32> %184, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %186 = bitcast <4 x i32> %185 to <2 x i64>
  %187 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %183, <2 x i64> noundef %178)
  %188 = shufflevector <2 x i64> %187, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %189 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %187, i32 noundef 13)
  %190 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %187, i32 noundef 51)
  %191 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %189, <2 x i64> noundef %190)
  %192 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %186, <2 x i64> noundef %187)
  %193 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %188, i32 noundef 16)
  %194 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %188, i32 noundef 48)
  %195 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %193, <2 x i64> noundef %194)
  %196 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %191, <2 x i64> noundef %195)
  %197 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %196, <2 x i64> noundef %192)
  %198 = bitcast <2 x i64> %192 to <4 x i32>
  %199 = shufflevector <4 x i32> %198, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %200 = bitcast <4 x i32> %199 to <2 x i64>
  %201 = shufflevector <2 x i64> %197, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %202 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %197, i32 noundef 17)
  %203 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %197, i32 noundef 47)
  %204 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %202, <2 x i64> noundef %203)
  %205 = tail call <2 x i64> @_mm_add_epi64(<2 x i64> noundef %200, <2 x i64> noundef %197)
  %206 = tail call <2 x i64> @_mm_slli_epi64(<2 x i64> noundef %201, i32 noundef 21)
  %207 = tail call <2 x i64> @_mm_srli_epi64(<2 x i64> noundef %201, i32 noundef 43)
  %208 = tail call <2 x i64> @_mm_or_si128(<2 x i64> noundef %206, <2 x i64> noundef %207)
  %209 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %204, <2 x i64> noundef %208)
  %210 = tail call <2 x i64> @_mm_unpacklo_epi64(<2 x i64> noundef %204, <2 x i64> noundef %208)
  %211 = bitcast <2 x i64> %205 to <4 x i32>
  %212 = shufflevector <4 x i32> %211, <4 x i32> poison, <4 x i32> <i32 2, i32 3, i32 1, i32 0>
  %213 = bitcast <4 x i32> %212 to <2 x i64>
  %214 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %210, <2 x i64> noundef %205)
  %215 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %213, <2 x i64> noundef %214)
  %216 = shufflevector <2 x i64> %215, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
  %217 = tail call <2 x i64> @_mm_xor_si128(<2 x i64> noundef %215, <2 x i64> noundef %216)
  %218 = tail call i32 @_mm_cvtsi128_si32(<2 x i64> noundef %217)
  %219 = bitcast <2 x i64> %217 to <16 x i8>
  %220 = shufflevector <16 x i8> %219, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison>, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19>
  %221 = bitcast <16 x i8> %220 to <2 x i64>
  %222 = tail call i32 @_mm_cvtsi128_si32(<2 x i64> noundef %221)
  %223 = zext i32 %222 to i64
  %224 = shl nuw i64 %223, 32
  %225 = zext i32 %218 to i64
  %226 = or disjoint i64 %224, %225
  ret i64 %226
}

attributes #0 = { alwaysinline nounwind uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = distinct !{!8, !9}
!9 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass