define dso_local noundef i32 @x264_pixel_sad_16x16(ptr %0, i32 noundef %1, ptr %2, i32 noundef %3) { %5 = sext i32 %1 to i64 %6 = sext i32 %3 to i64 br label %7 7: %8 = phi i32 [ 0, %4 ], [ %23, %7 ] %9 = phi i32 [ 0, %4 ], [ %20, %7 ] %10 = phi ptr [ %0, %4 ], [ %21, %7 ] %11 = phi ptr [ %2, %4 ], [ %22, %7 ] %12 = load <16 x i8>, ptr %10, align 1 %13 = zext <16 x i8> %12 to <16 x i16> %14 = load <16 x i8>, ptr %11, align 1 %15 = zext <16 x i8> %14 to <16 x i16> %16 = sub nsw <16 x i16> %13, %15 %17 = tail call <16 x i16> @llvm.abs.v16i16(<16 x i16> %16, i1 false) %18 = zext <16 x i16> %17 to <16 x i32> %19 = tail call i32 @llvm.vector.reduce.add.v16i32(<16 x i32> %18) %20 = add i32 %19, %9 %21 = getelementptr inbounds i8, ptr %10, i64 %5 %22 = getelementptr inbounds i8, ptr %11, i64 %6 %23 = add nuw nsw i32 %8, 1 %24 = icmp eq i32 %23, 16 br i1 %24, label %25, label %7 25: ret i32 %20 } declare <16 x i16> @llvm.abs.v16i16(<16 x i16>, i1 immarg) declare i32 @llvm.vector.reduce.add.v16i32(<16 x i32>)