17b9bf80aSAlexey Bataev; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3 2df0fd3a8SAlexey Bataev; RUN: opt -S -mtriple riscv64-unknown-linux-gnu < %s --passes=slp-vectorizer -mattr=+v -slp-threshold=-20 | FileCheck %s 3834ad102SAlexey Bataev; RUN: opt -S -mtriple riscv64-unknown-linux-gnu < %s --passes=slp-vectorizer -mattr=+v -slp-threshold=-15 | FileCheck %s --check-prefix=THR15 47b9bf80aSAlexey Bataev 57b9bf80aSAlexey Bataevdefine i32 @test(ptr %pix1, ptr %pix2, i64 %idx.ext, i64 %idx.ext63, ptr %add.ptr, ptr %add.ptr64) { 67b9bf80aSAlexey Bataev; CHECK-LABEL: define i32 @test( 77b9bf80aSAlexey Bataev; CHECK-SAME: ptr [[PIX1:%.*]], ptr [[PIX2:%.*]], i64 [[IDX_EXT:%.*]], i64 [[IDX_EXT63:%.*]], ptr [[ADD_PTR:%.*]], ptr [[ADD_PTR64:%.*]]) #[[ATTR0:[0-9]+]] { 87b9bf80aSAlexey Bataev; CHECK-NEXT: entry: 9df0fd3a8SAlexey Bataev; CHECK-NEXT: [[TMP0:%.*]] = load i8, ptr [[PIX1]], align 1 1033960c90SPhilip Reames; CHECK-NEXT: [[CONV1:%.*]] = zext i8 [[TMP0]] to i32 11daf4a06eSAlexey Bataev; CHECK-NEXT: [[TMP1:%.*]] = getelementptr i8, ptr [[PIX1]], i64 4 12daf4a06eSAlexey Bataev; CHECK-NEXT: [[ARRAYIDX5:%.*]] = getelementptr i8, ptr [[PIX2]], i64 4 13df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX8:%.*]] = getelementptr i8, ptr [[PIX1]], i64 1 14df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX32:%.*]] = getelementptr i8, ptr [[PIX1]], i64 3 15df0fd3a8SAlexey Bataev; CHECK-NEXT: [[TMP10:%.*]] = load i8, ptr [[ARRAYIDX32]], align 1 16df0fd3a8SAlexey Bataev; CHECK-NEXT: [[CONV33:%.*]] = zext i8 [[TMP10]] to i32 177b9bf80aSAlexey Bataev; CHECK-NEXT: [[ADD_PTR3:%.*]] = getelementptr i8, ptr [[PIX1]], i64 [[IDX_EXT]] 18f28c4b4bSAlexey Bataev; CHECK-NEXT: [[ADD_PTR644:%.*]] = getelementptr i8, ptr [[PIX2]], i64 [[IDX_EXT63]] 19df0fd3a8SAlexey Bataev; CHECK-NEXT: [[TMP11:%.*]] = load i8, ptr [[ADD_PTR3]], align 1 20df0fd3a8SAlexey Bataev; CHECK-NEXT: [[CONV_1:%.*]] = zext i8 [[TMP11]] to i32 21daf4a06eSAlexey Bataev; CHECK-NEXT: [[ARRAYIDX3_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 4 22daf4a06eSAlexey Bataev; CHECK-NEXT: [[ARRAYIDX5_1:%.*]] = getelementptr i8, ptr [[ADD_PTR644]], i64 4 23df856e49SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX8_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 1 24f9bc00e4SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX27_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 3 257f6bbb3cSPhilip Reames; CHECK-NEXT: [[TMP5:%.*]] = load i8, ptr [[ARRAYIDX27_1]], align 1 26f9bc00e4SAlexey Bataev; CHECK-NEXT: [[CONV33_1:%.*]] = zext i8 [[TMP5]] to i32 277b9bf80aSAlexey Bataev; CHECK-NEXT: [[ADD_PTR_1:%.*]] = getelementptr i8, ptr [[ADD_PTR]], i64 [[IDX_EXT]] 287b9bf80aSAlexey Bataev; CHECK-NEXT: [[ADD_PTR64_1:%.*]] = getelementptr i8, ptr [[ADD_PTR64]], i64 [[IDX_EXT63]] 29df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX3_2:%.*]] = getelementptr i8, ptr [[ADD_PTR_1]], i64 4 30df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX5_2:%.*]] = getelementptr i8, ptr [[ADD_PTR64_1]], i64 4 31*5921295dSSimon Pilgrim; CHECK-NEXT: [[ARRAYIDX8_2:%.*]] = getelementptr i8, ptr [[ADD_PTR_1]], i64 1 32f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP4:%.*]] = load <4 x i8>, ptr [[ADD_PTR_1]], align 1 33*5921295dSSimon Pilgrim; CHECK-NEXT: [[TMP7:%.*]] = load i8, ptr [[ARRAYIDX8_2]], align 1 34*5921295dSSimon Pilgrim; CHECK-NEXT: [[TMP6:%.*]] = load i8, ptr [[ADD_PTR_1]], align 1 35f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP19:%.*]] = shufflevector <4 x i8> [[TMP4]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 36b16e6949SAlexey Bataev; CHECK-NEXT: [[TMP21:%.*]] = zext <2 x i8> [[TMP19]] to <2 x i32> 37*5921295dSSimon Pilgrim; CHECK-NEXT: [[CONV_2:%.*]] = zext i8 [[TMP6]] to i32 38f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP9:%.*]] = load <4 x i8>, ptr [[ADD_PTR64_1]], align 1 39f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP22:%.*]] = shufflevector <4 x i8> [[TMP9]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 40a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP31:%.*]] = zext <2 x i8> [[TMP22]] to <2 x i32> 41a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP23:%.*]] = sub <2 x i32> [[TMP21]], [[TMP31]] 42f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP13:%.*]] = load <4 x i8>, ptr [[ARRAYIDX3_2]], align 1 43f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP49:%.*]] = shufflevector <4 x i8> [[TMP13]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 44a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP26:%.*]] = zext <2 x i8> [[TMP49]] to <2 x i32> 45f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP16:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5_2]], align 1 46f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP27:%.*]] = shufflevector <4 x i8> [[TMP16]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 47a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP50:%.*]] = zext <2 x i8> [[TMP27]] to <2 x i32> 48a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP24:%.*]] = sub <2 x i32> [[TMP26]], [[TMP50]] 4938fffa63SPaul Walker; CHECK-NEXT: [[TMP25:%.*]] = shl <2 x i32> [[TMP24]], splat (i32 16) 50a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP30:%.*]] = add <2 x i32> [[TMP25]], [[TMP23]] 51f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP32:%.*]] = shufflevector <4 x i8> [[TMP4]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 52a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP51:%.*]] = zext <2 x i8> [[TMP32]] to <2 x i32> 53*5921295dSSimon Pilgrim; CHECK-NEXT: [[CONV9_2:%.*]] = zext i8 [[TMP7]] to i32 54f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP56:%.*]] = shufflevector <4 x i8> [[TMP9]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 55a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP57:%.*]] = zext <2 x i8> [[TMP56]] to <2 x i32> 56a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP35:%.*]] = sub <2 x i32> [[TMP51]], [[TMP57]] 57f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP38:%.*]] = shufflevector <4 x i8> [[TMP13]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 587f6bbb3cSPhilip Reames; CHECK-NEXT: [[TMP39:%.*]] = zext <2 x i8> [[TMP38]] to <2 x i32> 59f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP40:%.*]] = shufflevector <4 x i8> [[TMP16]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 60a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP61:%.*]] = zext <2 x i8> [[TMP40]] to <2 x i32> 61a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP36:%.*]] = sub <2 x i32> [[TMP39]], [[TMP61]] 6238fffa63SPaul Walker; CHECK-NEXT: [[TMP37:%.*]] = shl <2 x i32> [[TMP36]], splat (i32 16) 63a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP42:%.*]] = add <2 x i32> [[TMP37]], [[TMP35]] 6407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP34:%.*]] = add <2 x i32> [[TMP42]], [[TMP30]] 65a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP44:%.*]] = sub <2 x i32> [[TMP30]], [[TMP42]] 6607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP43:%.*]] = extractelement <2 x i32> [[TMP34]], i32 0 67*5921295dSSimon Pilgrim; CHECK-NEXT: [[TMP45:%.*]] = extractelement <2 x i32> [[TMP34]], i32 1 68*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD48_2:%.*]] = add i32 [[TMP45]], [[TMP43]] 6907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP46:%.*]] = extractelement <2 x i32> [[TMP44]], i32 0 7007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP47:%.*]] = extractelement <2 x i32> [[TMP44]], i32 1 7107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD55_2:%.*]] = add i32 [[TMP47]], [[TMP46]] 72daf4a06eSAlexey Bataev; CHECK-NEXT: [[ARRAYIDX5_3:%.*]] = getelementptr i8, ptr null, i64 4 73f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP53:%.*]] = load <2 x i8>, ptr null, align 1 74a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP52:%.*]] = load i8, ptr null, align 1 75a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP62:%.*]] = zext <2 x i8> [[TMP53]] to <2 x i32> 76a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP77:%.*]] = zext i8 [[TMP52]] to i32 77f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP54:%.*]] = load <2 x i8>, ptr null, align 1 78a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP55:%.*]] = zext <2 x i8> [[TMP54]] to <2 x i32> 79a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP59:%.*]] = sub <2 x i32> [[TMP62]], [[TMP55]] 8038fffa63SPaul Walker; CHECK-NEXT: [[TMP41:%.*]] = call <2 x i8> @llvm.experimental.vp.strided.load.v2i8.p0.i64(ptr align 1 null, i64 4, <2 x i1> splat (i1 true), i32 2) 81a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP58:%.*]] = zext <2 x i8> [[TMP41]] to <2 x i32> 8207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP48:%.*]] = shufflevector <2 x i32> [[TMP58]], <2 x i32> poison, <2 x i32> <i32 1, i32 0> 83f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP63:%.*]] = load <2 x i8>, ptr [[ARRAYIDX5_3]], align 1 84a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP76:%.*]] = zext <2 x i8> [[TMP63]] to <2 x i32> 8507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP81:%.*]] = sub <2 x i32> [[TMP48]], [[TMP76]] 8607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP167:%.*]] = shl <2 x i32> [[TMP81]], splat (i32 16) 8707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP75:%.*]] = add <2 x i32> [[TMP167]], [[TMP59]] 88f9bc00e4SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX20_3:%.*]] = getelementptr i8, ptr null, i64 2 89f9bc00e4SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX22_3:%.*]] = getelementptr i8, ptr null, i64 2 90f9bc00e4SAlexey Bataev; CHECK-NEXT: [[ARRAYIDX27_3:%.*]] = getelementptr i8, ptr null, i64 6 91f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP64:%.*]] = load <2 x i8>, ptr [[ARRAYIDX20_3]], align 1 92a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP79:%.*]] = zext <2 x i8> [[TMP64]] to <2 x i32> 93f9bc00e4SAlexey Bataev; CHECK-NEXT: [[TMP82:%.*]] = load <2 x i8>, ptr [[ARRAYIDX22_3]], align 1 94a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP91:%.*]] = zext <2 x i8> [[TMP82]] to <2 x i32> 95a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP65:%.*]] = sub <2 x i32> [[TMP79]], [[TMP91]] 9607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP170:%.*]] = call <2 x i8> @llvm.masked.gather.v2i8.v2p0(<2 x ptr> zeroinitializer, i32 1, <2 x i1> splat (i1 true), <2 x i8> poison) 9707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP171:%.*]] = zext <2 x i8> [[TMP170]] to <2 x i32> 9807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP172:%.*]] = load <2 x i8>, ptr [[ARRAYIDX27_3]], align 1 9907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP173:%.*]] = zext <2 x i8> [[TMP172]] to <2 x i32> 10007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP66:%.*]] = sub <2 x i32> [[TMP171]], [[TMP173]] 10107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP67:%.*]] = shl <2 x i32> [[TMP66]], splat (i32 16) 10207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP69:%.*]] = add <2 x i32> [[TMP67]], [[TMP65]] 10307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP176:%.*]] = extractelement <2 x i32> [[TMP75]], i32 0 10407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP197:%.*]] = extractelement <2 x i32> [[TMP75]], i32 1 10507d284d4SAlexey Bataev; CHECK-NEXT: [[SUB59:%.*]] = add i32 [[TMP197]], [[TMP176]] 10607d284d4SAlexey Bataev; CHECK-NEXT: [[SUB45_3:%.*]] = sub i32 [[TMP176]], [[TMP197]] 10707d284d4SAlexey Bataev; CHECK-NEXT: [[ADD112_2:%.*]] = extractelement <2 x i32> [[TMP69]], i32 0 10807d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I63_2:%.*]] = extractelement <2 x i32> [[TMP69]], i32 1 10907d284d4SAlexey Bataev; CHECK-NEXT: [[SUB59_1:%.*]] = add i32 [[XOR_I63_2]], [[ADD112_2]] 11007d284d4SAlexey Bataev; CHECK-NEXT: [[SUB47_3:%.*]] = sub i32 [[ADD112_2]], [[XOR_I63_2]] 11107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD94:%.*]] = add i32 [[SUB59_1]], [[SUB59]] 11207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP70:%.*]] = shufflevector <2 x i32> [[TMP34]], <2 x i32> poison, <2 x i32> <i32 poison, i32 0> 11307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP71:%.*]] = insertelement <2 x i32> [[TMP70]], i32 [[SUB59]], i32 0 11407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP72:%.*]] = insertelement <2 x i32> [[TMP34]], i32 [[SUB59_1]], i32 0 11507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP222:%.*]] = sub <2 x i32> [[TMP71]], [[TMP72]] 11607d284d4SAlexey Bataev; CHECK-NEXT: [[ADD55_3:%.*]] = add i32 [[SUB47_3]], [[SUB45_3]] 11707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP74:%.*]] = shufflevector <2 x i32> [[TMP44]], <2 x i32> poison, <2 x i32> <i32 poison, i32 0> 11807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP78:%.*]] = insertelement <2 x i32> [[TMP74]], i32 [[SUB45_3]], i32 0 11907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP80:%.*]] = insertelement <2 x i32> [[TMP44]], i32 [[SUB47_3]], i32 0 12007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP85:%.*]] = sub <2 x i32> [[TMP78]], [[TMP80]] 12107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD95:%.*]] = add i32 [[ADD94]], [[ADD48_2]] 12207d284d4SAlexey Bataev; CHECK-NEXT: [[SUB86_3:%.*]] = sub i32 [[ADD48_2]], [[ADD94]] 123*5921295dSSimon Pilgrim; CHECK-NEXT: [[SHR_I:%.*]] = lshr i32 [[TMP77]], 15 124*5921295dSSimon Pilgrim; CHECK-NEXT: [[AND_I:%.*]] = and i32 [[SHR_I]], 65537 125*5921295dSSimon Pilgrim; CHECK-NEXT: [[MUL_I:%.*]] = mul i32 [[AND_I]], 65535 126*5921295dSSimon Pilgrim; CHECK-NEXT: [[SHR_I49:%.*]] = lshr i32 [[TMP45]], 15 127*5921295dSSimon Pilgrim; CHECK-NEXT: [[AND_I50:%.*]] = and i32 [[SHR_I49]], 65537 128*5921295dSSimon Pilgrim; CHECK-NEXT: [[MUL_I51:%.*]] = mul i32 [[AND_I50]], 65535 129*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD94_1:%.*]] = add i32 [[ADD55_3]], [[ADD55_2]] 130*5921295dSSimon Pilgrim; CHECK-NEXT: [[SUB102_1:%.*]] = sub i32 [[ADD55_2]], [[ADD55_3]] 131*5921295dSSimon Pilgrim; CHECK-NEXT: [[SHR_I_1:%.*]] = lshr i32 [[CONV9_2]], 15 132daf4a06eSAlexey Bataev; CHECK-NEXT: [[AND_I_1:%.*]] = and i32 [[SHR_I_1]], 65537 133daf4a06eSAlexey Bataev; CHECK-NEXT: [[MUL_I_1:%.*]] = mul i32 [[AND_I_1]], 65535 13407d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I49_1:%.*]] = lshr i32 [[CONV_2]], 15 13579108124SPhilip Reames; CHECK-NEXT: [[AND_I50_1:%.*]] = and i32 [[SHR_I49_1]], 65537 13607d284d4SAlexey Bataev; CHECK-NEXT: [[MUL_I51_1:%.*]] = mul i32 [[AND_I50_1]], 65535 13707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP86:%.*]] = extractelement <2 x i32> [[TMP222]], i32 0 13807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP87:%.*]] = extractelement <2 x i32> [[TMP222]], i32 1 13907d284d4SAlexey Bataev; CHECK-NEXT: [[ADD94_3:%.*]] = add i32 [[TMP86]], [[TMP87]] 14007d284d4SAlexey Bataev; CHECK-NEXT: [[ADD112_1:%.*]] = sub i32 [[TMP87]], [[TMP86]] 1417f6bbb3cSPhilip Reames; CHECK-NEXT: [[SHR_I49_2:%.*]] = lshr i32 [[CONV_1]], 15 1427f6bbb3cSPhilip Reames; CHECK-NEXT: [[AND_I50_2:%.*]] = and i32 [[SHR_I49_2]], 65537 1437f6bbb3cSPhilip Reames; CHECK-NEXT: [[MUL_I51_2:%.*]] = mul i32 [[AND_I50_2]], 65535 14407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP88:%.*]] = extractelement <2 x i32> [[TMP85]], i32 0 14507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP89:%.*]] = extractelement <2 x i32> [[TMP85]], i32 1 14607d284d4SAlexey Bataev; CHECK-NEXT: [[ADD94_4:%.*]] = add i32 [[TMP88]], [[TMP89]] 14707d284d4SAlexey Bataev; CHECK-NEXT: [[SUB102_3:%.*]] = sub i32 [[TMP89]], [[TMP88]] 14807d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I49_3:%.*]] = lshr i32 [[CONV1]], 15 14907d284d4SAlexey Bataev; CHECK-NEXT: [[AND_I50_3:%.*]] = and i32 [[SHR_I49_3]], 65537 15007d284d4SAlexey Bataev; CHECK-NEXT: [[MUL_I51_3:%.*]] = mul i32 [[AND_I50_3]], 65535 15107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP90:%.*]] = load <2 x i8>, ptr [[ARRAYIDX8]], align 1 15207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP102:%.*]] = zext <2 x i8> [[TMP90]] to <2 x i32> 15307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP92:%.*]] = load <4 x i8>, ptr [[PIX2]], align 1 15407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP93:%.*]] = shufflevector <4 x i8> [[TMP92]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 15507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP94:%.*]] = zext <2 x i8> [[TMP93]] to <2 x i32> 15607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP95:%.*]] = load <4 x i8>, ptr [[TMP1]], align 1 15707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP96:%.*]] = shufflevector <4 x i8> [[TMP95]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 15807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP97:%.*]] = zext <2 x i8> [[TMP96]] to <2 x i32> 15907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP98:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5]], align 1 16007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP99:%.*]] = shufflevector <4 x i8> [[TMP98]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 16107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP100:%.*]] = zext <2 x i8> [[TMP99]] to <2 x i32> 16207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP101:%.*]] = sub <2 x i32> [[TMP97]], [[TMP100]] 16307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP224:%.*]] = shl <2 x i32> [[TMP101]], splat (i32 16) 16407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP103:%.*]] = shufflevector <4 x i8> [[TMP92]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 16507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP104:%.*]] = zext <2 x i8> [[TMP103]] to <2 x i32> 16607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP105:%.*]] = shufflevector <4 x i8> [[TMP95]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 16707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP106:%.*]] = zext <2 x i8> [[TMP105]] to <2 x i32> 16807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP107:%.*]] = shufflevector <4 x i8> [[TMP98]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 16907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP108:%.*]] = zext <2 x i8> [[TMP107]] to <2 x i32> 17007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP109:%.*]] = sub <2 x i32> [[TMP106]], [[TMP108]] 17107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP110:%.*]] = shl <2 x i32> [[TMP109]], splat (i32 16) 17207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP111:%.*]] = insertelement <2 x i32> [[TMP102]], i32 [[CONV33]], i32 1 17307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP112:%.*]] = sub <2 x i32> [[TMP111]], [[TMP104]] 17407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP113:%.*]] = add <2 x i32> [[TMP110]], [[TMP112]] 17507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP114:%.*]] = insertelement <2 x i32> [[TMP102]], i32 [[CONV1]], i32 0 17607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP115:%.*]] = sub <2 x i32> [[TMP114]], [[TMP94]] 17707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP116:%.*]] = add <2 x i32> [[TMP224]], [[TMP115]] 17807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP117:%.*]] = shufflevector <2 x i32> [[TMP113]], <2 x i32> [[TMP116]], <2 x i32> <i32 0, i32 2> 17907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP126:%.*]] = add <2 x i32> [[TMP113]], [[TMP116]] 18007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP119:%.*]] = sub <2 x i32> [[TMP116]], [[TMP113]] 18107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP120:%.*]] = extractelement <2 x i32> [[TMP126]], i32 0 18207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP127:%.*]] = extractelement <2 x i32> [[TMP126]], i32 1 18307d284d4SAlexey Bataev; CHECK-NEXT: [[ADD48:%.*]] = add i32 [[TMP127]], [[TMP120]] 18407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP166:%.*]] = sub i32 [[TMP120]], [[TMP127]] 18507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP128:%.*]] = extractelement <2 x i32> [[TMP119]], i32 0 18607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP129:%.*]] = extractelement <2 x i32> [[TMP119]], i32 1 18707d284d4SAlexey Bataev; CHECK-NEXT: [[ADD55:%.*]] = add i32 [[TMP129]], [[TMP128]] 18807d284d4SAlexey Bataev; CHECK-NEXT: [[SUB60:%.*]] = sub i32 [[TMP128]], [[TMP129]] 18907d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I59:%.*]] = lshr i32 [[TMP127]], 15 19007d284d4SAlexey Bataev; CHECK-NEXT: [[AND_I60:%.*]] = and i32 [[SHR_I59]], 65537 19107d284d4SAlexey Bataev; CHECK-NEXT: [[MUL_I61:%.*]] = mul i32 [[AND_I60]], 65535 19207d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I59_1:%.*]] = lshr i32 [[TMP129]], 15 193df0fd3a8SAlexey Bataev; CHECK-NEXT: [[AND_I60_1:%.*]] = and i32 [[SHR_I59_1]], 65537 194df0fd3a8SAlexey Bataev; CHECK-NEXT: [[MUL_I61_1:%.*]] = mul i32 [[AND_I60_1]], 65535 19507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP130:%.*]] = load <2 x i8>, ptr [[ARRAYIDX8_1]], align 1 19607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP131:%.*]] = zext <2 x i8> [[TMP130]] to <2 x i32> 19707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP132:%.*]] = load <4 x i8>, ptr [[ADD_PTR644]], align 1 19807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP133:%.*]] = shufflevector <4 x i8> [[TMP132]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 19907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP134:%.*]] = zext <2 x i8> [[TMP133]] to <2 x i32> 20007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP135:%.*]] = load <4 x i8>, ptr [[ARRAYIDX3_1]], align 1 20107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP136:%.*]] = shufflevector <4 x i8> [[TMP135]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 20207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP137:%.*]] = zext <2 x i8> [[TMP136]] to <2 x i32> 20307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP138:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5_1]], align 1 20407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP139:%.*]] = shufflevector <4 x i8> [[TMP138]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 20507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP140:%.*]] = zext <2 x i8> [[TMP139]] to <2 x i32> 20607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP141:%.*]] = sub <2 x i32> [[TMP137]], [[TMP140]] 20707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP142:%.*]] = shl <2 x i32> [[TMP141]], splat (i32 16) 20807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP143:%.*]] = shufflevector <4 x i8> [[TMP132]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 20907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP144:%.*]] = zext <2 x i8> [[TMP143]] to <2 x i32> 21007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP145:%.*]] = shufflevector <4 x i8> [[TMP135]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 21107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP146:%.*]] = zext <2 x i8> [[TMP145]] to <2 x i32> 21207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP147:%.*]] = shufflevector <4 x i8> [[TMP138]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 21307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP148:%.*]] = zext <2 x i8> [[TMP147]] to <2 x i32> 21407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP149:%.*]] = sub <2 x i32> [[TMP146]], [[TMP148]] 21507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP150:%.*]] = shl <2 x i32> [[TMP149]], splat (i32 16) 21607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP151:%.*]] = insertelement <2 x i32> [[TMP131]], i32 [[CONV33_1]], i32 1 21707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP225:%.*]] = sub <2 x i32> [[TMP151]], [[TMP144]] 21807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP153:%.*]] = add <2 x i32> [[TMP150]], [[TMP225]] 21907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP154:%.*]] = insertelement <2 x i32> [[TMP131]], i32 [[CONV_1]], i32 0 22007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP155:%.*]] = sub <2 x i32> [[TMP154]], [[TMP134]] 22107d284d4SAlexey Bataev; CHECK-NEXT: [[TMP156:%.*]] = add <2 x i32> [[TMP142]], [[TMP155]] 22207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP157:%.*]] = add <2 x i32> [[TMP153]], [[TMP156]] 22307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP158:%.*]] = sub <2 x i32> [[TMP156]], [[TMP153]] 22407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP159:%.*]] = extractelement <2 x i32> [[TMP157]], i32 0 22507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP160:%.*]] = extractelement <2 x i32> [[TMP157]], i32 1 22607d284d4SAlexey Bataev; CHECK-NEXT: [[ADD48_1:%.*]] = add i32 [[TMP160]], [[TMP159]] 22707d284d4SAlexey Bataev; CHECK-NEXT: [[SUB51_1:%.*]] = sub i32 [[TMP159]], [[TMP160]] 22807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP161:%.*]] = extractelement <2 x i32> [[TMP158]], i32 0 22907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP162:%.*]] = extractelement <2 x i32> [[TMP158]], i32 1 23007d284d4SAlexey Bataev; CHECK-NEXT: [[ADD55_1:%.*]] = add i32 [[TMP162]], [[TMP161]] 23107d284d4SAlexey Bataev; CHECK-NEXT: [[SUB59_2:%.*]] = sub i32 [[TMP161]], [[TMP162]] 23207d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I54:%.*]] = lshr i32 [[TMP160]], 15 2337f6bbb3cSPhilip Reames; CHECK-NEXT: [[AND_I55:%.*]] = and i32 [[SHR_I54]], 65537 2347f6bbb3cSPhilip Reames; CHECK-NEXT: [[MUL_I56:%.*]] = mul i32 [[AND_I55]], 65535 23507d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I54_1:%.*]] = lshr i32 [[TMP162]], 15 236a65a5febSAlexey Bataev; CHECK-NEXT: [[AND_I55_1:%.*]] = and i32 [[SHR_I54_1]], 65537 237a65a5febSAlexey Bataev; CHECK-NEXT: [[MUL_I56_1:%.*]] = mul i32 [[AND_I55_1]], 65535 23807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP163:%.*]] = lshr <2 x i32> [[TMP131]], splat (i32 15) 23907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP164:%.*]] = and <2 x i32> [[TMP163]], splat (i32 65537) 24007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP165:%.*]] = mul <2 x i32> [[TMP164]], splat (i32 65535) 24107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD78:%.*]] = add i32 [[ADD48_1]], [[ADD48]] 24207d284d4SAlexey Bataev; CHECK-NEXT: [[SUB86:%.*]] = sub i32 [[ADD48]], [[ADD48_1]] 24307d284d4SAlexey Bataev; CHECK-NEXT: [[ADD103:%.*]] = add i32 [[ADD95]], [[ADD78]] 24407d284d4SAlexey Bataev; CHECK-NEXT: [[SUB104:%.*]] = sub i32 [[ADD78]], [[ADD95]] 24507d284d4SAlexey Bataev; CHECK-NEXT: [[ADD105:%.*]] = add i32 [[SUB86_3]], [[SUB86]] 24607d284d4SAlexey Bataev; CHECK-NEXT: [[SUB106:%.*]] = sub i32 [[SUB86]], [[SUB86_3]] 247*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD_I:%.*]] = add i32 [[MUL_I]], [[ADD103]] 24879108124SPhilip Reames; CHECK-NEXT: [[XOR_I:%.*]] = xor i32 [[ADD_I]], [[TMP77]] 249*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD_I52:%.*]] = add i32 [[MUL_I51]], [[ADD105]] 250*5921295dSSimon Pilgrim; CHECK-NEXT: [[XOR_I53:%.*]] = xor i32 [[ADD_I52]], [[TMP45]] 251b16e6949SAlexey Bataev; CHECK-NEXT: [[ADD_I57:%.*]] = add i32 [[MUL_I56]], [[SUB104]] 25207d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I58:%.*]] = xor i32 [[ADD_I57]], [[TMP160]] 25307d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I62:%.*]] = add i32 [[MUL_I61]], [[SUB106]] 25407d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I63:%.*]] = xor i32 [[ADD_I62]], [[TMP127]] 255df856e49SAlexey Bataev; CHECK-NEXT: [[ADD110:%.*]] = add i32 [[XOR_I53]], [[XOR_I]] 256df856e49SAlexey Bataev; CHECK-NEXT: [[ADD112:%.*]] = add i32 [[ADD110]], [[XOR_I58]] 25707d284d4SAlexey Bataev; CHECK-NEXT: [[ADD105_3:%.*]] = add i32 [[ADD112]], [[XOR_I63]] 258*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD78_1:%.*]] = add i32 [[ADD55_1]], [[ADD55]] 259*5921295dSSimon Pilgrim; CHECK-NEXT: [[SUB86_1:%.*]] = sub i32 [[ADD55]], [[ADD55_1]] 260*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD103_1:%.*]] = add i32 [[ADD94_1]], [[ADD78_1]] 261b16e6949SAlexey Bataev; CHECK-NEXT: [[SUB104_1:%.*]] = sub i32 [[ADD78_1]], [[ADD94_1]] 262*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD105_1:%.*]] = add i32 [[SUB102_1]], [[SUB86_1]] 26307d284d4SAlexey Bataev; CHECK-NEXT: [[SUB106_1:%.*]] = sub i32 [[SUB86_1]], [[SUB102_1]] 264*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD_I_1:%.*]] = add i32 [[MUL_I_1]], [[ADD103_1]] 265*5921295dSSimon Pilgrim; CHECK-NEXT: [[XOR_I_1:%.*]] = xor i32 [[ADD_I_1]], [[CONV9_2]] 266*5921295dSSimon Pilgrim; CHECK-NEXT: [[ADD_I52_1:%.*]] = add i32 [[MUL_I51_1]], [[ADD105_1]] 267*5921295dSSimon Pilgrim; CHECK-NEXT: [[XOR_I53_1:%.*]] = xor i32 [[ADD_I52_1]], [[CONV_2]] 26807d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I57_1:%.*]] = add i32 [[MUL_I56_1]], [[SUB104_1]] 26907d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I58_1:%.*]] = xor i32 [[ADD_I57_1]], [[TMP162]] 27007d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I62_1:%.*]] = add i32 [[MUL_I61_1]], [[SUB106_1]] 27107d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I63_1:%.*]] = xor i32 [[ADD_I62_1]], [[TMP129]] 27207d284d4SAlexey Bataev; CHECK-NEXT: [[ADD108_1:%.*]] = add i32 [[XOR_I53_1]], [[ADD105_3]] 273b16e6949SAlexey Bataev; CHECK-NEXT: [[ADD110_1:%.*]] = add i32 [[ADD108_1]], [[XOR_I_1]] 27407d284d4SAlexey Bataev; CHECK-NEXT: [[ADD112_5:%.*]] = add i32 [[ADD110_1]], [[XOR_I58_1]] 27507d284d4SAlexey Bataev; CHECK-NEXT: [[ADD113_2:%.*]] = add i32 [[ADD112_5]], [[XOR_I63_1]] 27607d284d4SAlexey Bataev; CHECK-NEXT: [[ADD78_3:%.*]] = add i32 [[SUB51_1]], [[TMP166]] 27707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP204:%.*]] = sub i32 [[TMP166]], [[SUB51_1]] 278a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP177:%.*]] = insertelement <2 x i32> poison, i32 [[ADD78_3]], i32 0 279a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP178:%.*]] = shufflevector <2 x i32> [[TMP177]], <2 x i32> poison, <2 x i32> zeroinitializer 280a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP179:%.*]] = insertelement <2 x i32> poison, i32 [[ADD94_3]], i32 0 281a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP180:%.*]] = shufflevector <2 x i32> [[TMP179]], <2 x i32> poison, <2 x i32> zeroinitializer 28207d284d4SAlexey Bataev; CHECK-NEXT: [[TMP199:%.*]] = add <2 x i32> [[TMP178]], [[TMP180]] 28307d284d4SAlexey Bataev; CHECK-NEXT: [[TMP200:%.*]] = sub <2 x i32> [[TMP178]], [[TMP180]] 28407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP201:%.*]] = shufflevector <2 x i32> [[TMP199]], <2 x i32> [[TMP200]], <2 x i32> <i32 0, i32 3> 28507d284d4SAlexey Bataev; CHECK-NEXT: [[ADD113_1:%.*]] = add i32 [[ADD112_1]], [[TMP204]] 28607d284d4SAlexey Bataev; CHECK-NEXT: [[SUB106_2:%.*]] = sub i32 [[TMP204]], [[ADD112_1]] 28707d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I52_2:%.*]] = add i32 [[MUL_I51_2]], [[ADD113_1]] 28807d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I53_2:%.*]] = xor i32 [[ADD_I52_2]], [[CONV_1]] 28907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP208:%.*]] = add <2 x i32> [[TMP165]], [[TMP201]] 29007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP209:%.*]] = xor <2 x i32> [[TMP208]], [[TMP131]] 29107d284d4SAlexey Bataev; CHECK-NEXT: [[SHR_I59_2:%.*]] = lshr i32 [[TMP120]], 15 29207d284d4SAlexey Bataev; CHECK-NEXT: [[AND_I60_2:%.*]] = and i32 [[SHR_I59_2]], 65537 29307d284d4SAlexey Bataev; CHECK-NEXT: [[MUL_I61_2:%.*]] = mul i32 [[AND_I60_2]], 65535 29407d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I62_2:%.*]] = add i32 [[MUL_I61_2]], [[SUB106_2]] 29507d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I63_4:%.*]] = xor i32 [[ADD_I62_2]], [[TMP120]] 29607d284d4SAlexey Bataev; CHECK-NEXT: [[ADD108_2:%.*]] = add i32 [[XOR_I53_2]], [[ADD113_2]] 29707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP211:%.*]] = extractelement <2 x i32> [[TMP209]], i32 0 29807d284d4SAlexey Bataev; CHECK-NEXT: [[ADD110_2:%.*]] = add i32 [[ADD108_2]], [[TMP211]] 29907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP212:%.*]] = extractelement <2 x i32> [[TMP209]], i32 1 30007d284d4SAlexey Bataev; CHECK-NEXT: [[ADD112_4:%.*]] = add i32 [[ADD110_2]], [[TMP212]] 30107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD113_4:%.*]] = add i32 [[ADD112_4]], [[XOR_I63_4]] 30207d284d4SAlexey Bataev; CHECK-NEXT: [[ADD78_4:%.*]] = add i32 [[SUB59_2]], [[SUB60]] 30307d284d4SAlexey Bataev; CHECK-NEXT: [[SUB86_4:%.*]] = sub i32 [[SUB60]], [[SUB59_2]] 30407d284d4SAlexey Bataev; CHECK-NEXT: [[TMP213:%.*]] = insertelement <2 x i32> poison, i32 [[ADD78_4]], i32 0 30507d284d4SAlexey Bataev; CHECK-NEXT: [[TMP214:%.*]] = shufflevector <2 x i32> [[TMP213]], <2 x i32> poison, <2 x i32> zeroinitializer 30607d284d4SAlexey Bataev; CHECK-NEXT: [[TMP215:%.*]] = insertelement <2 x i32> poison, i32 [[ADD94_4]], i32 0 30707d284d4SAlexey Bataev; CHECK-NEXT: [[TMP216:%.*]] = shufflevector <2 x i32> [[TMP215]], <2 x i32> poison, <2 x i32> zeroinitializer 30807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP217:%.*]] = add <2 x i32> [[TMP214]], [[TMP216]] 30907d284d4SAlexey Bataev; CHECK-NEXT: [[TMP218:%.*]] = sub <2 x i32> [[TMP214]], [[TMP216]] 31007d284d4SAlexey Bataev; CHECK-NEXT: [[TMP219:%.*]] = shufflevector <2 x i32> [[TMP217]], <2 x i32> [[TMP218]], <2 x i32> <i32 0, i32 3> 31107d284d4SAlexey Bataev; CHECK-NEXT: [[ADD105_4:%.*]] = add i32 [[SUB102_3]], [[SUB86_4]] 31207d284d4SAlexey Bataev; CHECK-NEXT: [[SUB106_3:%.*]] = sub i32 [[SUB86_4]], [[SUB102_3]] 31307d284d4SAlexey Bataev; CHECK-NEXT: [[ADD_I52_4:%.*]] = add i32 [[MUL_I51_3]], [[ADD105_4]] 31407d284d4SAlexey Bataev; CHECK-NEXT: [[XOR_I53_3:%.*]] = xor i32 [[ADD_I52_4]], [[CONV1]] 31538fffa63SPaul Walker; CHECK-NEXT: [[TMP185:%.*]] = lshr <2 x i32> [[TMP102]], splat (i32 15) 31638fffa63SPaul Walker; CHECK-NEXT: [[TMP193:%.*]] = and <2 x i32> [[TMP185]], splat (i32 65537) 31738fffa63SPaul Walker; CHECK-NEXT: [[TMP186:%.*]] = mul <2 x i32> [[TMP193]], splat (i32 65535) 31807d284d4SAlexey Bataev; CHECK-NEXT: [[TMP187:%.*]] = add <2 x i32> [[TMP186]], [[TMP219]] 319a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP188:%.*]] = xor <2 x i32> [[TMP187]], [[TMP102]] 320df0fd3a8SAlexey Bataev; CHECK-NEXT: [[SHR_I59_3:%.*]] = lshr i32 [[CONV33]], 15 321df0fd3a8SAlexey Bataev; CHECK-NEXT: [[AND_I60_3:%.*]] = and i32 [[SHR_I59_3]], 65537 322df0fd3a8SAlexey Bataev; CHECK-NEXT: [[MUL_I61_3:%.*]] = mul i32 [[AND_I60_3]], 65535 323df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ADD_I62_3:%.*]] = add i32 [[MUL_I61_3]], [[SUB106_3]] 324df0fd3a8SAlexey Bataev; CHECK-NEXT: [[XOR_I63_3:%.*]] = xor i32 [[ADD_I62_3]], [[CONV33]] 32507d284d4SAlexey Bataev; CHECK-NEXT: [[ADD108_3:%.*]] = add i32 [[XOR_I53_3]], [[ADD113_4]] 326a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP189:%.*]] = extractelement <2 x i32> [[TMP188]], i32 0 327a65a5febSAlexey Bataev; CHECK-NEXT: [[ADD110_3:%.*]] = add i32 [[ADD108_3]], [[TMP189]] 328a65a5febSAlexey Bataev; CHECK-NEXT: [[TMP190:%.*]] = extractelement <2 x i32> [[TMP188]], i32 1 329a65a5febSAlexey Bataev; CHECK-NEXT: [[ADD112_3:%.*]] = add i32 [[ADD110_3]], [[TMP190]] 330df0fd3a8SAlexey Bataev; CHECK-NEXT: [[ADD113_3:%.*]] = add i32 [[ADD112_3]], [[XOR_I63_3]] 331df856e49SAlexey Bataev; CHECK-NEXT: ret i32 [[ADD113_3]] 3327b9bf80aSAlexey Bataev; 333834ad102SAlexey Bataev; THR15-LABEL: define i32 @test( 334834ad102SAlexey Bataev; THR15-SAME: ptr [[PIX1:%.*]], ptr [[PIX2:%.*]], i64 [[IDX_EXT:%.*]], i64 [[IDX_EXT63:%.*]], ptr [[ADD_PTR:%.*]], ptr [[ADD_PTR64:%.*]]) #[[ATTR0:[0-9]+]] { 335834ad102SAlexey Bataev; THR15-NEXT: entry: 336834ad102SAlexey Bataev; THR15-NEXT: [[TMP0:%.*]] = load i8, ptr [[PIX1]], align 1 337834ad102SAlexey Bataev; THR15-NEXT: [[CONV:%.*]] = zext i8 [[TMP0]] to i32 338834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX3:%.*]] = getelementptr i8, ptr [[PIX1]], i64 4 339834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX5:%.*]] = getelementptr i8, ptr [[PIX2]], i64 4 340834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX8:%.*]] = getelementptr i8, ptr [[PIX1]], i64 1 341834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX32:%.*]] = getelementptr i8, ptr [[PIX1]], i64 3 342834ad102SAlexey Bataev; THR15-NEXT: [[TMP1:%.*]] = load i8, ptr [[ARRAYIDX32]], align 1 343834ad102SAlexey Bataev; THR15-NEXT: [[CONV33:%.*]] = zext i8 [[TMP1]] to i32 344834ad102SAlexey Bataev; THR15-NEXT: [[ADD_PTR3:%.*]] = getelementptr i8, ptr [[PIX1]], i64 [[IDX_EXT]] 345834ad102SAlexey Bataev; THR15-NEXT: [[ADD_PTR644:%.*]] = getelementptr i8, ptr [[PIX2]], i64 [[IDX_EXT63]] 346834ad102SAlexey Bataev; THR15-NEXT: [[TMP2:%.*]] = load i8, ptr [[ADD_PTR3]], align 1 347834ad102SAlexey Bataev; THR15-NEXT: [[CONV_1:%.*]] = zext i8 [[TMP2]] to i32 348834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX3_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 4 349834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX5_1:%.*]] = getelementptr i8, ptr [[ADD_PTR644]], i64 4 350834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX8_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 1 351f9bc00e4SAlexey Bataev; THR15-NEXT: [[ARRAYIDX27_1:%.*]] = getelementptr i8, ptr [[ADD_PTR3]], i64 3 3527f6bbb3cSPhilip Reames; THR15-NEXT: [[TMP5:%.*]] = load i8, ptr [[ARRAYIDX27_1]], align 1 353f9bc00e4SAlexey Bataev; THR15-NEXT: [[CONV33_1:%.*]] = zext i8 [[TMP5]] to i32 354834ad102SAlexey Bataev; THR15-NEXT: [[ADD_PTR_1:%.*]] = getelementptr i8, ptr [[ADD_PTR]], i64 [[IDX_EXT]] 355834ad102SAlexey Bataev; THR15-NEXT: [[ADD_PTR64_1:%.*]] = getelementptr i8, ptr [[ADD_PTR64]], i64 [[IDX_EXT63]] 356834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX3_2:%.*]] = getelementptr i8, ptr [[ADD_PTR_1]], i64 4 357834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX5_2:%.*]] = getelementptr i8, ptr [[ADD_PTR64_1]], i64 4 358f9bc00e4SAlexey Bataev; THR15-NEXT: [[ARRAYIDX8_2:%.*]] = getelementptr i8, ptr [[ADD_PTR_1]], i64 1 359f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP4:%.*]] = load <4 x i8>, ptr [[ADD_PTR_1]], align 1 360f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP7:%.*]] = load i8, ptr [[ARRAYIDX8_2]], align 1 361f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP6:%.*]] = load i8, ptr [[ADD_PTR_1]], align 1 362f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP19:%.*]] = shufflevector <4 x i8> [[TMP4]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 363a65a5febSAlexey Bataev; THR15-NEXT: [[TMP20:%.*]] = zext <2 x i8> [[TMP19]] to <2 x i32> 364f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP87:%.*]] = zext i8 [[TMP6]] to i32 365f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP9:%.*]] = load <4 x i8>, ptr [[ADD_PTR64_1]], align 1 366f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP21:%.*]] = shufflevector <4 x i8> [[TMP9]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 3677f6bbb3cSPhilip Reames; THR15-NEXT: [[TMP22:%.*]] = zext <2 x i8> [[TMP21]] to <2 x i32> 368a65a5febSAlexey Bataev; THR15-NEXT: [[TMP23:%.*]] = sub <2 x i32> [[TMP20]], [[TMP22]] 369f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP13:%.*]] = load <4 x i8>, ptr [[ARRAYIDX3_2]], align 1 370f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP24:%.*]] = shufflevector <4 x i8> [[TMP13]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 371a65a5febSAlexey Bataev; THR15-NEXT: [[TMP25:%.*]] = zext <2 x i8> [[TMP24]] to <2 x i32> 372f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP16:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5_2]], align 1 373f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP26:%.*]] = shufflevector <4 x i8> [[TMP16]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 374a65a5febSAlexey Bataev; THR15-NEXT: [[TMP27:%.*]] = zext <2 x i8> [[TMP26]] to <2 x i32> 375a65a5febSAlexey Bataev; THR15-NEXT: [[TMP28:%.*]] = sub <2 x i32> [[TMP25]], [[TMP27]] 37638fffa63SPaul Walker; THR15-NEXT: [[TMP29:%.*]] = shl <2 x i32> [[TMP28]], splat (i32 16) 377f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP59:%.*]] = add <2 x i32> [[TMP29]], [[TMP23]] 378f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP31:%.*]] = shufflevector <4 x i8> [[TMP4]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 379a65a5febSAlexey Bataev; THR15-NEXT: [[TMP32:%.*]] = zext <2 x i8> [[TMP31]] to <2 x i32> 380f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP86:%.*]] = zext i8 [[TMP7]] to i32 381f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP33:%.*]] = shufflevector <4 x i8> [[TMP9]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 382a65a5febSAlexey Bataev; THR15-NEXT: [[TMP34:%.*]] = zext <2 x i8> [[TMP33]] to <2 x i32> 383a65a5febSAlexey Bataev; THR15-NEXT: [[TMP35:%.*]] = sub <2 x i32> [[TMP32]], [[TMP34]] 384f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP36:%.*]] = shufflevector <4 x i8> [[TMP13]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 385a65a5febSAlexey Bataev; THR15-NEXT: [[TMP37:%.*]] = zext <2 x i8> [[TMP36]] to <2 x i32> 386f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP38:%.*]] = shufflevector <4 x i8> [[TMP16]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 3877f6bbb3cSPhilip Reames; THR15-NEXT: [[TMP39:%.*]] = zext <2 x i8> [[TMP38]] to <2 x i32> 388a65a5febSAlexey Bataev; THR15-NEXT: [[TMP40:%.*]] = sub <2 x i32> [[TMP37]], [[TMP39]] 38938fffa63SPaul Walker; THR15-NEXT: [[TMP41:%.*]] = shl <2 x i32> [[TMP40]], splat (i32 16) 390f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP76:%.*]] = add <2 x i32> [[TMP41]], [[TMP35]] 391f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP30:%.*]] = add <2 x i32> [[TMP76]], [[TMP59]] 392f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP42:%.*]] = sub <2 x i32> [[TMP59]], [[TMP76]] 393a65a5febSAlexey Bataev; THR15-NEXT: [[TMP43:%.*]] = extractelement <2 x i32> [[TMP30]], i32 0 394a65a5febSAlexey Bataev; THR15-NEXT: [[TMP44:%.*]] = extractelement <2 x i32> [[TMP30]], i32 1 395a65a5febSAlexey Bataev; THR15-NEXT: [[ADD44_2:%.*]] = add i32 [[TMP44]], [[TMP43]] 396a65a5febSAlexey Bataev; THR15-NEXT: [[TMP45:%.*]] = extractelement <2 x i32> [[TMP42]], i32 0 397a65a5febSAlexey Bataev; THR15-NEXT: [[TMP46:%.*]] = extractelement <2 x i32> [[TMP42]], i32 1 398a65a5febSAlexey Bataev; THR15-NEXT: [[ADD46_2:%.*]] = add i32 [[TMP46]], [[TMP45]] 399834ad102SAlexey Bataev; THR15-NEXT: [[ARRAYIDX5_3:%.*]] = getelementptr i8, ptr null, i64 4 400f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP47:%.*]] = load <2 x i8>, ptr null, align 1 401b16e6949SAlexey Bataev; THR15-NEXT: [[TMP48:%.*]] = load i8, ptr null, align 1 402a65a5febSAlexey Bataev; THR15-NEXT: [[TMP49:%.*]] = zext <2 x i8> [[TMP47]] to <2 x i32> 403a65a5febSAlexey Bataev; THR15-NEXT: [[CONV_3:%.*]] = zext i8 [[TMP48]] to i32 404f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP50:%.*]] = load <2 x i8>, ptr null, align 1 405a65a5febSAlexey Bataev; THR15-NEXT: [[TMP51:%.*]] = zext <2 x i8> [[TMP50]] to <2 x i32> 406a65a5febSAlexey Bataev; THR15-NEXT: [[TMP52:%.*]] = sub <2 x i32> [[TMP49]], [[TMP51]] 40738fffa63SPaul Walker; THR15-NEXT: [[TMP53:%.*]] = call <2 x i8> @llvm.experimental.vp.strided.load.v2i8.p0.i64(ptr align 1 null, i64 4, <2 x i1> splat (i1 true), i32 2) 408a65a5febSAlexey Bataev; THR15-NEXT: [[TMP54:%.*]] = zext <2 x i8> [[TMP53]] to <2 x i32> 409f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP77:%.*]] = shufflevector <2 x i32> [[TMP54]], <2 x i32> poison, <2 x i32> <i32 1, i32 0> 410f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP55:%.*]] = load <2 x i8>, ptr [[ARRAYIDX5_3]], align 1 411a65a5febSAlexey Bataev; THR15-NEXT: [[TMP56:%.*]] = zext <2 x i8> [[TMP55]] to <2 x i32> 412f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP57:%.*]] = sub <2 x i32> [[TMP77]], [[TMP56]] 41338fffa63SPaul Walker; THR15-NEXT: [[TMP58:%.*]] = shl <2 x i32> [[TMP57]], splat (i32 16) 414f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP72:%.*]] = add <2 x i32> [[TMP58]], [[TMP52]] 415f9bc00e4SAlexey Bataev; THR15-NEXT: [[ARRAYIDX20_3:%.*]] = getelementptr i8, ptr null, i64 2 416f9bc00e4SAlexey Bataev; THR15-NEXT: [[ARRAYIDX22_3:%.*]] = getelementptr i8, ptr null, i64 2 417f9bc00e4SAlexey Bataev; THR15-NEXT: [[ARRAYIDX27_3:%.*]] = getelementptr i8, ptr null, i64 6 418f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP60:%.*]] = load <2 x i8>, ptr [[ARRAYIDX20_3]], align 1 419a65a5febSAlexey Bataev; THR15-NEXT: [[TMP61:%.*]] = zext <2 x i8> [[TMP60]] to <2 x i32> 420f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP62:%.*]] = load <2 x i8>, ptr [[ARRAYIDX22_3]], align 1 421a65a5febSAlexey Bataev; THR15-NEXT: [[TMP63:%.*]] = zext <2 x i8> [[TMP62]] to <2 x i32> 422a65a5febSAlexey Bataev; THR15-NEXT: [[TMP64:%.*]] = sub <2 x i32> [[TMP61]], [[TMP63]] 42338fffa63SPaul Walker; THR15-NEXT: [[TMP65:%.*]] = call <2 x i8> @llvm.masked.gather.v2i8.v2p0(<2 x ptr> zeroinitializer, i32 1, <2 x i1> splat (i1 true), <2 x i8> poison) 424a65a5febSAlexey Bataev; THR15-NEXT: [[TMP66:%.*]] = zext <2 x i8> [[TMP65]] to <2 x i32> 425f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP67:%.*]] = load <2 x i8>, ptr [[ARRAYIDX27_3]], align 1 426a65a5febSAlexey Bataev; THR15-NEXT: [[TMP68:%.*]] = zext <2 x i8> [[TMP67]] to <2 x i32> 427a65a5febSAlexey Bataev; THR15-NEXT: [[TMP69:%.*]] = sub <2 x i32> [[TMP66]], [[TMP68]] 42838fffa63SPaul Walker; THR15-NEXT: [[TMP70:%.*]] = shl <2 x i32> [[TMP69]], splat (i32 16) 429f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP73:%.*]] = add <2 x i32> [[TMP70]], [[TMP64]] 430a65a5febSAlexey Bataev; THR15-NEXT: [[TMP74:%.*]] = extractelement <2 x i32> [[TMP72]], i32 0 431a65a5febSAlexey Bataev; THR15-NEXT: [[TMP75:%.*]] = extractelement <2 x i32> [[TMP72]], i32 1 432a65a5febSAlexey Bataev; THR15-NEXT: [[ADD48_3:%.*]] = add i32 [[TMP75]], [[TMP74]] 433f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB45_3:%.*]] = sub i32 [[TMP74]], [[TMP75]] 434a65a5febSAlexey Bataev; THR15-NEXT: [[TMP80:%.*]] = extractelement <2 x i32> [[TMP73]], i32 0 435a65a5febSAlexey Bataev; THR15-NEXT: [[TMP81:%.*]] = extractelement <2 x i32> [[TMP73]], i32 1 436a65a5febSAlexey Bataev; THR15-NEXT: [[ADD55_3:%.*]] = add i32 [[TMP81]], [[TMP80]] 437f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB47_3:%.*]] = sub i32 [[TMP80]], [[TMP81]] 438f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD48_4:%.*]] = add i32 [[ADD55_3]], [[ADD48_3]] 439f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP78:%.*]] = shufflevector <2 x i32> [[TMP30]], <2 x i32> poison, <2 x i32> <i32 poison, i32 0> 440f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP71:%.*]] = insertelement <2 x i32> [[TMP78]], i32 [[ADD48_3]], i32 0 441f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP83:%.*]] = insertelement <2 x i32> [[TMP30]], i32 [[ADD55_3]], i32 0 442f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP79:%.*]] = sub <2 x i32> [[TMP71]], [[TMP83]] 443f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD55_4:%.*]] = add i32 [[SUB47_3]], [[SUB45_3]] 444f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP137:%.*]] = shufflevector <2 x i32> [[TMP42]], <2 x i32> poison, <2 x i32> <i32 poison, i32 0> 445f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP82:%.*]] = insertelement <2 x i32> [[TMP137]], i32 [[SUB45_3]], i32 0 446f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP84:%.*]] = insertelement <2 x i32> [[TMP42]], i32 [[SUB47_3]], i32 0 447a65a5febSAlexey Bataev; THR15-NEXT: [[TMP85:%.*]] = sub <2 x i32> [[TMP82]], [[TMP84]] 448f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD94:%.*]] = add i32 [[ADD48_4]], [[ADD44_2]] 449f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB102:%.*]] = sub i32 [[ADD44_2]], [[ADD48_4]] 450a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I:%.*]] = lshr i32 [[CONV_3]], 15 451834ad102SAlexey Bataev; THR15-NEXT: [[AND_I:%.*]] = and i32 [[SHR_I]], 65537 452834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I:%.*]] = mul i32 [[AND_I]], 65535 453f9bc00e4SAlexey Bataev; THR15-NEXT: [[SHR_I49:%.*]] = lshr i32 [[TMP44]], 15 454834ad102SAlexey Bataev; THR15-NEXT: [[AND_I50:%.*]] = and i32 [[SHR_I49]], 65537 455834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I51:%.*]] = mul i32 [[AND_I50]], 65535 456f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD94_1:%.*]] = add i32 [[ADD55_4]], [[ADD46_2]] 457f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB102_1:%.*]] = sub i32 [[ADD46_2]], [[ADD55_4]] 458a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I_1:%.*]] = lshr i32 [[TMP86]], 15 4597f6bbb3cSPhilip Reames; THR15-NEXT: [[AND_I_1:%.*]] = and i32 [[SHR_I_1]], 65537 4607f6bbb3cSPhilip Reames; THR15-NEXT: [[MUL_I_1:%.*]] = mul i32 [[AND_I_1]], 65535 461a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I49_1:%.*]] = lshr i32 [[TMP87]], 15 462a65a5febSAlexey Bataev; THR15-NEXT: [[AND_I50_1:%.*]] = and i32 [[SHR_I49_1]], 65537 463a65a5febSAlexey Bataev; THR15-NEXT: [[MUL_I51_1:%.*]] = mul i32 [[AND_I50_1]], 65535 464a65a5febSAlexey Bataev; THR15-NEXT: [[TMP88:%.*]] = extractelement <2 x i32> [[TMP79]], i32 0 465a65a5febSAlexey Bataev; THR15-NEXT: [[TMP89:%.*]] = extractelement <2 x i32> [[TMP79]], i32 1 466a65a5febSAlexey Bataev; THR15-NEXT: [[ADD94_2:%.*]] = add i32 [[TMP88]], [[TMP89]] 467a65a5febSAlexey Bataev; THR15-NEXT: [[SUB102_2:%.*]] = sub i32 [[TMP89]], [[TMP88]] 468a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I49_2:%.*]] = lshr i32 [[CONV_1]], 15 469834ad102SAlexey Bataev; THR15-NEXT: [[AND_I50_2:%.*]] = and i32 [[SHR_I49_2]], 65537 470834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I51_2:%.*]] = mul i32 [[AND_I50_2]], 65535 471a65a5febSAlexey Bataev; THR15-NEXT: [[TMP90:%.*]] = extractelement <2 x i32> [[TMP85]], i32 0 472a65a5febSAlexey Bataev; THR15-NEXT: [[TMP91:%.*]] = extractelement <2 x i32> [[TMP85]], i32 1 473a65a5febSAlexey Bataev; THR15-NEXT: [[ADD94_3:%.*]] = add i32 [[TMP90]], [[TMP91]] 474a65a5febSAlexey Bataev; THR15-NEXT: [[SUB102_3:%.*]] = sub i32 [[TMP91]], [[TMP90]] 475a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I49_3:%.*]] = lshr i32 [[CONV]], 15 476834ad102SAlexey Bataev; THR15-NEXT: [[AND_I50_3:%.*]] = and i32 [[SHR_I49_3]], 65537 477834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I51_3:%.*]] = mul i32 [[AND_I50_3]], 65535 478a65a5febSAlexey Bataev; THR15-NEXT: [[TMP92:%.*]] = load <2 x i8>, ptr [[ARRAYIDX8]], align 1 479a65a5febSAlexey Bataev; THR15-NEXT: [[TMP93:%.*]] = zext <2 x i8> [[TMP92]] to <2 x i32> 480f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP143:%.*]] = load <4 x i8>, ptr [[PIX2]], align 1 481f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP94:%.*]] = shufflevector <4 x i8> [[TMP143]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 482a65a5febSAlexey Bataev; THR15-NEXT: [[TMP95:%.*]] = zext <2 x i8> [[TMP94]] to <2 x i32> 483f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP146:%.*]] = load <4 x i8>, ptr [[ARRAYIDX3]], align 1 484f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP96:%.*]] = shufflevector <4 x i8> [[TMP146]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 485a65a5febSAlexey Bataev; THR15-NEXT: [[TMP97:%.*]] = zext <2 x i8> [[TMP96]] to <2 x i32> 486f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP147:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5]], align 1 487f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP98:%.*]] = shufflevector <4 x i8> [[TMP147]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 488a65a5febSAlexey Bataev; THR15-NEXT: [[TMP99:%.*]] = zext <2 x i8> [[TMP98]] to <2 x i32> 489a65a5febSAlexey Bataev; THR15-NEXT: [[TMP100:%.*]] = sub <2 x i32> [[TMP97]], [[TMP99]] 49038fffa63SPaul Walker; THR15-NEXT: [[TMP101:%.*]] = shl <2 x i32> [[TMP100]], splat (i32 16) 491f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP102:%.*]] = shufflevector <4 x i8> [[TMP143]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 492a65a5febSAlexey Bataev; THR15-NEXT: [[TMP103:%.*]] = zext <2 x i8> [[TMP102]] to <2 x i32> 493f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP104:%.*]] = shufflevector <4 x i8> [[TMP146]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 494a65a5febSAlexey Bataev; THR15-NEXT: [[TMP105:%.*]] = zext <2 x i8> [[TMP104]] to <2 x i32> 495f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP106:%.*]] = shufflevector <4 x i8> [[TMP147]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 496a65a5febSAlexey Bataev; THR15-NEXT: [[TMP107:%.*]] = zext <2 x i8> [[TMP106]] to <2 x i32> 497a65a5febSAlexey Bataev; THR15-NEXT: [[TMP108:%.*]] = sub <2 x i32> [[TMP105]], [[TMP107]] 49838fffa63SPaul Walker; THR15-NEXT: [[TMP109:%.*]] = shl <2 x i32> [[TMP108]], splat (i32 16) 499a65a5febSAlexey Bataev; THR15-NEXT: [[TMP110:%.*]] = insertelement <2 x i32> [[TMP93]], i32 [[CONV33]], i32 1 500a65a5febSAlexey Bataev; THR15-NEXT: [[TMP111:%.*]] = sub <2 x i32> [[TMP110]], [[TMP103]] 501a65a5febSAlexey Bataev; THR15-NEXT: [[TMP112:%.*]] = add <2 x i32> [[TMP109]], [[TMP111]] 502a65a5febSAlexey Bataev; THR15-NEXT: [[TMP113:%.*]] = insertelement <2 x i32> [[TMP93]], i32 [[CONV]], i32 0 503a65a5febSAlexey Bataev; THR15-NEXT: [[TMP114:%.*]] = sub <2 x i32> [[TMP113]], [[TMP95]] 504a65a5febSAlexey Bataev; THR15-NEXT: [[TMP115:%.*]] = add <2 x i32> [[TMP101]], [[TMP114]] 505a65a5febSAlexey Bataev; THR15-NEXT: [[TMP116:%.*]] = shufflevector <2 x i32> [[TMP112]], <2 x i32> [[TMP115]], <2 x i32> <i32 0, i32 2> 506a65a5febSAlexey Bataev; THR15-NEXT: [[TMP117:%.*]] = add <2 x i32> [[TMP112]], [[TMP115]] 507a65a5febSAlexey Bataev; THR15-NEXT: [[TMP118:%.*]] = sub <2 x i32> [[TMP115]], [[TMP112]] 508a65a5febSAlexey Bataev; THR15-NEXT: [[TMP119:%.*]] = extractelement <2 x i32> [[TMP117]], i32 0 509a65a5febSAlexey Bataev; THR15-NEXT: [[TMP120:%.*]] = extractelement <2 x i32> [[TMP117]], i32 1 510a65a5febSAlexey Bataev; THR15-NEXT: [[ADD48:%.*]] = add i32 [[TMP120]], [[TMP119]] 511a65a5febSAlexey Bataev; THR15-NEXT: [[SUB51:%.*]] = sub i32 [[TMP119]], [[TMP120]] 512a65a5febSAlexey Bataev; THR15-NEXT: [[TMP121:%.*]] = extractelement <2 x i32> [[TMP118]], i32 0 513a65a5febSAlexey Bataev; THR15-NEXT: [[TMP122:%.*]] = extractelement <2 x i32> [[TMP118]], i32 1 514a65a5febSAlexey Bataev; THR15-NEXT: [[ADD55:%.*]] = add i32 [[TMP122]], [[TMP121]] 515f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB59:%.*]] = sub i32 [[TMP121]], [[TMP122]] 516a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I59:%.*]] = lshr i32 [[TMP120]], 15 517834ad102SAlexey Bataev; THR15-NEXT: [[AND_I60:%.*]] = and i32 [[SHR_I59]], 65537 518834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I61:%.*]] = mul i32 [[AND_I60]], 65535 519a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I59_1:%.*]] = lshr i32 [[TMP122]], 15 520834ad102SAlexey Bataev; THR15-NEXT: [[AND_I60_1:%.*]] = and i32 [[SHR_I59_1]], 65537 521834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I61_1:%.*]] = mul i32 [[AND_I60_1]], 65535 522a65a5febSAlexey Bataev; THR15-NEXT: [[TMP123:%.*]] = load <2 x i8>, ptr [[ARRAYIDX8_1]], align 1 523a65a5febSAlexey Bataev; THR15-NEXT: [[TMP124:%.*]] = zext <2 x i8> [[TMP123]] to <2 x i32> 524f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP148:%.*]] = load <4 x i8>, ptr [[ADD_PTR644]], align 1 525f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP125:%.*]] = shufflevector <4 x i8> [[TMP148]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 526a65a5febSAlexey Bataev; THR15-NEXT: [[TMP126:%.*]] = zext <2 x i8> [[TMP125]] to <2 x i32> 527f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP152:%.*]] = load <4 x i8>, ptr [[ARRAYIDX3_1]], align 1 528f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP127:%.*]] = shufflevector <4 x i8> [[TMP152]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 5297f6bbb3cSPhilip Reames; THR15-NEXT: [[TMP128:%.*]] = zext <2 x i8> [[TMP127]] to <2 x i32> 530f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP153:%.*]] = load <4 x i8>, ptr [[ARRAYIDX5_1]], align 1 531f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP129:%.*]] = shufflevector <4 x i8> [[TMP153]], <4 x i8> poison, <2 x i32> <i32 0, i32 2> 532a65a5febSAlexey Bataev; THR15-NEXT: [[TMP130:%.*]] = zext <2 x i8> [[TMP129]] to <2 x i32> 533a65a5febSAlexey Bataev; THR15-NEXT: [[TMP131:%.*]] = sub <2 x i32> [[TMP128]], [[TMP130]] 53438fffa63SPaul Walker; THR15-NEXT: [[TMP132:%.*]] = shl <2 x i32> [[TMP131]], splat (i32 16) 535f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP138:%.*]] = shufflevector <4 x i8> [[TMP148]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 536a65a5febSAlexey Bataev; THR15-NEXT: [[TMP139:%.*]] = zext <2 x i8> [[TMP138]] to <2 x i32> 537f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP154:%.*]] = shufflevector <4 x i8> [[TMP152]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 538f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP155:%.*]] = zext <2 x i8> [[TMP154]] to <2 x i32> 539f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP133:%.*]] = shufflevector <4 x i8> [[TMP153]], <4 x i8> poison, <2 x i32> <i32 1, i32 3> 540f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP134:%.*]] = zext <2 x i8> [[TMP133]] to <2 x i32> 541f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP135:%.*]] = sub <2 x i32> [[TMP155]], [[TMP134]] 54238fffa63SPaul Walker; THR15-NEXT: [[TMP170:%.*]] = shl <2 x i32> [[TMP135]], splat (i32 16) 543f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP140:%.*]] = insertelement <2 x i32> [[TMP124]], i32 [[CONV33_1]], i32 1 544a65a5febSAlexey Bataev; THR15-NEXT: [[TMP141:%.*]] = sub <2 x i32> [[TMP140]], [[TMP139]] 545f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP171:%.*]] = add <2 x i32> [[TMP170]], [[TMP141]] 546f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP186:%.*]] = insertelement <2 x i32> [[TMP124]], i32 [[CONV_1]], i32 0 547f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP187:%.*]] = sub <2 x i32> [[TMP186]], [[TMP126]] 548f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP142:%.*]] = add <2 x i32> [[TMP132]], [[TMP187]] 549f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP136:%.*]] = add <2 x i32> [[TMP171]], [[TMP142]] 550f9bc00e4SAlexey Bataev; THR15-NEXT: [[TMP149:%.*]] = sub <2 x i32> [[TMP142]], [[TMP171]] 551a65a5febSAlexey Bataev; THR15-NEXT: [[TMP144:%.*]] = extractelement <2 x i32> [[TMP136]], i32 0 552a65a5febSAlexey Bataev; THR15-NEXT: [[TMP145:%.*]] = extractelement <2 x i32> [[TMP136]], i32 1 553f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD48_2:%.*]] = add i32 [[TMP145]], [[TMP144]] 554a65a5febSAlexey Bataev; THR15-NEXT: [[SUB45_1:%.*]] = sub i32 [[TMP144]], [[TMP145]] 555a65a5febSAlexey Bataev; THR15-NEXT: [[TMP150:%.*]] = extractelement <2 x i32> [[TMP149]], i32 0 556a65a5febSAlexey Bataev; THR15-NEXT: [[TMP151:%.*]] = extractelement <2 x i32> [[TMP149]], i32 1 557a65a5febSAlexey Bataev; THR15-NEXT: [[ADD48_1:%.*]] = add i32 [[TMP151]], [[TMP150]] 558a65a5febSAlexey Bataev; THR15-NEXT: [[SUB51_1:%.*]] = sub i32 [[TMP150]], [[TMP151]] 559f9bc00e4SAlexey Bataev; THR15-NEXT: [[SHR_I54:%.*]] = lshr i32 [[TMP145]], 15 560a65a5febSAlexey Bataev; THR15-NEXT: [[AND_I55:%.*]] = and i32 [[SHR_I54]], 65537 561a65a5febSAlexey Bataev; THR15-NEXT: [[MUL_I56:%.*]] = mul i32 [[AND_I55]], 65535 562f9bc00e4SAlexey Bataev; THR15-NEXT: [[SHR_I54_1:%.*]] = lshr i32 [[TMP151]], 15 563834ad102SAlexey Bataev; THR15-NEXT: [[AND_I55_1:%.*]] = and i32 [[SHR_I54_1]], 65537 564834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I56_1:%.*]] = mul i32 [[AND_I55_1]], 65535 56538fffa63SPaul Walker; THR15-NEXT: [[TMP156:%.*]] = lshr <2 x i32> [[TMP124]], splat (i32 15) 56638fffa63SPaul Walker; THR15-NEXT: [[TMP157:%.*]] = and <2 x i32> [[TMP156]], splat (i32 65537) 56738fffa63SPaul Walker; THR15-NEXT: [[TMP158:%.*]] = mul <2 x i32> [[TMP157]], splat (i32 65535) 568f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD78:%.*]] = add i32 [[ADD48_2]], [[ADD48]] 569f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB86:%.*]] = sub i32 [[ADD48]], [[ADD48_2]] 570834ad102SAlexey Bataev; THR15-NEXT: [[ADD103:%.*]] = add i32 [[ADD94]], [[ADD78]] 571834ad102SAlexey Bataev; THR15-NEXT: [[SUB104:%.*]] = sub i32 [[ADD78]], [[ADD94]] 572834ad102SAlexey Bataev; THR15-NEXT: [[ADD105:%.*]] = add i32 [[SUB102]], [[SUB86]] 573834ad102SAlexey Bataev; THR15-NEXT: [[SUB106:%.*]] = sub i32 [[SUB86]], [[SUB102]] 574834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I:%.*]] = add i32 [[MUL_I]], [[ADD103]] 575a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I:%.*]] = xor i32 [[ADD_I]], [[CONV_3]] 576834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I52:%.*]] = add i32 [[MUL_I51]], [[ADD105]] 577f9bc00e4SAlexey Bataev; THR15-NEXT: [[XOR_I53:%.*]] = xor i32 [[ADD_I52]], [[TMP44]] 578a65a5febSAlexey Bataev; THR15-NEXT: [[ADD_I57:%.*]] = add i32 [[MUL_I56]], [[SUB104]] 579f9bc00e4SAlexey Bataev; THR15-NEXT: [[XOR_I58:%.*]] = xor i32 [[ADD_I57]], [[TMP145]] 580834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I62:%.*]] = add i32 [[MUL_I61]], [[SUB106]] 581a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I63:%.*]] = xor i32 [[ADD_I62]], [[TMP120]] 582834ad102SAlexey Bataev; THR15-NEXT: [[ADD110:%.*]] = add i32 [[XOR_I53]], [[XOR_I]] 583834ad102SAlexey Bataev; THR15-NEXT: [[ADD112:%.*]] = add i32 [[ADD110]], [[XOR_I58]] 584834ad102SAlexey Bataev; THR15-NEXT: [[ADD113:%.*]] = add i32 [[ADD112]], [[XOR_I63]] 585f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD78_1:%.*]] = add i32 [[ADD48_1]], [[ADD55]] 586f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB86_1:%.*]] = sub i32 [[ADD55]], [[ADD48_1]] 5877f6bbb3cSPhilip Reames; THR15-NEXT: [[ADD103_1:%.*]] = add i32 [[ADD94_1]], [[ADD78_1]] 5887f6bbb3cSPhilip Reames; THR15-NEXT: [[SUB104_1:%.*]] = sub i32 [[ADD78_1]], [[ADD94_1]] 589daf4a06eSAlexey Bataev; THR15-NEXT: [[ADD105_1:%.*]] = add i32 [[SUB102_1]], [[SUB86_1]] 590daf4a06eSAlexey Bataev; THR15-NEXT: [[SUB106_1:%.*]] = sub i32 [[SUB86_1]], [[SUB102_1]] 5917f6bbb3cSPhilip Reames; THR15-NEXT: [[ADD_I_1:%.*]] = add i32 [[MUL_I_1]], [[ADD103_1]] 592a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I_1:%.*]] = xor i32 [[ADD_I_1]], [[TMP86]] 593a65a5febSAlexey Bataev; THR15-NEXT: [[ADD_I52_1:%.*]] = add i32 [[MUL_I51_1]], [[ADD105_1]] 594a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I53_1:%.*]] = xor i32 [[ADD_I52_1]], [[TMP87]] 595a65a5febSAlexey Bataev; THR15-NEXT: [[ADD_I57_1:%.*]] = add i32 [[MUL_I56_1]], [[SUB104_1]] 596f9bc00e4SAlexey Bataev; THR15-NEXT: [[XOR_I58_1:%.*]] = xor i32 [[ADD_I57_1]], [[TMP151]] 597834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I62_1:%.*]] = add i32 [[MUL_I61_1]], [[SUB106_1]] 598a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I63_1:%.*]] = xor i32 [[ADD_I62_1]], [[TMP122]] 599daf4a06eSAlexey Bataev; THR15-NEXT: [[ADD108_1:%.*]] = add i32 [[XOR_I53_1]], [[ADD113]] 6007f6bbb3cSPhilip Reames; THR15-NEXT: [[ADD110_1:%.*]] = add i32 [[ADD108_1]], [[XOR_I_1]] 6017f6bbb3cSPhilip Reames; THR15-NEXT: [[ADD112_1:%.*]] = add i32 [[ADD110_1]], [[XOR_I58_1]] 602834ad102SAlexey Bataev; THR15-NEXT: [[ADD113_1:%.*]] = add i32 [[ADD112_1]], [[XOR_I63_1]] 603f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD78_2:%.*]] = add i32 [[SUB45_1]], [[SUB51]] 604f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB86_2:%.*]] = sub i32 [[SUB51]], [[SUB45_1]] 605a65a5febSAlexey Bataev; THR15-NEXT: [[TMP159:%.*]] = insertelement <2 x i32> poison, i32 [[ADD78_2]], i32 0 606a65a5febSAlexey Bataev; THR15-NEXT: [[TMP160:%.*]] = shufflevector <2 x i32> [[TMP159]], <2 x i32> poison, <2 x i32> zeroinitializer 607a65a5febSAlexey Bataev; THR15-NEXT: [[TMP161:%.*]] = insertelement <2 x i32> poison, i32 [[ADD94_2]], i32 0 608a65a5febSAlexey Bataev; THR15-NEXT: [[TMP162:%.*]] = shufflevector <2 x i32> [[TMP161]], <2 x i32> poison, <2 x i32> zeroinitializer 609a65a5febSAlexey Bataev; THR15-NEXT: [[TMP163:%.*]] = add <2 x i32> [[TMP160]], [[TMP162]] 610a65a5febSAlexey Bataev; THR15-NEXT: [[TMP164:%.*]] = sub <2 x i32> [[TMP160]], [[TMP162]] 611a65a5febSAlexey Bataev; THR15-NEXT: [[TMP165:%.*]] = shufflevector <2 x i32> [[TMP163]], <2 x i32> [[TMP164]], <2 x i32> <i32 0, i32 3> 612834ad102SAlexey Bataev; THR15-NEXT: [[ADD105_2:%.*]] = add i32 [[SUB102_2]], [[SUB86_2]] 613834ad102SAlexey Bataev; THR15-NEXT: [[SUB106_2:%.*]] = sub i32 [[SUB86_2]], [[SUB102_2]] 614a65a5febSAlexey Bataev; THR15-NEXT: [[ADD_I52_2:%.*]] = add i32 [[MUL_I51_2]], [[ADD105_2]] 615834ad102SAlexey Bataev; THR15-NEXT: [[XOR_I53_2:%.*]] = xor i32 [[ADD_I52_2]], [[CONV_1]] 616a65a5febSAlexey Bataev; THR15-NEXT: [[TMP166:%.*]] = add <2 x i32> [[TMP158]], [[TMP165]] 617a65a5febSAlexey Bataev; THR15-NEXT: [[TMP167:%.*]] = xor <2 x i32> [[TMP166]], [[TMP124]] 618a65a5febSAlexey Bataev; THR15-NEXT: [[SHR_I59_2:%.*]] = lshr i32 [[TMP119]], 15 619834ad102SAlexey Bataev; THR15-NEXT: [[AND_I60_2:%.*]] = and i32 [[SHR_I59_2]], 65537 620834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I61_2:%.*]] = mul i32 [[AND_I60_2]], 65535 621834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I62_2:%.*]] = add i32 [[MUL_I61_2]], [[SUB106_2]] 622a65a5febSAlexey Bataev; THR15-NEXT: [[XOR_I63_2:%.*]] = xor i32 [[ADD_I62_2]], [[TMP119]] 623834ad102SAlexey Bataev; THR15-NEXT: [[ADD108_2:%.*]] = add i32 [[XOR_I53_2]], [[ADD113_1]] 624a65a5febSAlexey Bataev; THR15-NEXT: [[TMP168:%.*]] = extractelement <2 x i32> [[TMP167]], i32 0 625a65a5febSAlexey Bataev; THR15-NEXT: [[ADD110_2:%.*]] = add i32 [[ADD108_2]], [[TMP168]] 626a65a5febSAlexey Bataev; THR15-NEXT: [[TMP169:%.*]] = extractelement <2 x i32> [[TMP167]], i32 1 627a65a5febSAlexey Bataev; THR15-NEXT: [[ADD112_2:%.*]] = add i32 [[ADD110_2]], [[TMP169]] 628834ad102SAlexey Bataev; THR15-NEXT: [[ADD113_2:%.*]] = add i32 [[ADD112_2]], [[XOR_I63_2]] 629f9bc00e4SAlexey Bataev; THR15-NEXT: [[ADD78_3:%.*]] = add i32 [[SUB51_1]], [[SUB59]] 630f9bc00e4SAlexey Bataev; THR15-NEXT: [[SUB86_3:%.*]] = sub i32 [[SUB59]], [[SUB51_1]] 631a65a5febSAlexey Bataev; THR15-NEXT: [[TMP172:%.*]] = insertelement <2 x i32> poison, i32 [[ADD78_3]], i32 0 632a65a5febSAlexey Bataev; THR15-NEXT: [[TMP173:%.*]] = shufflevector <2 x i32> [[TMP172]], <2 x i32> poison, <2 x i32> zeroinitializer 633a65a5febSAlexey Bataev; THR15-NEXT: [[TMP174:%.*]] = insertelement <2 x i32> poison, i32 [[ADD94_3]], i32 0 634a65a5febSAlexey Bataev; THR15-NEXT: [[TMP175:%.*]] = shufflevector <2 x i32> [[TMP174]], <2 x i32> poison, <2 x i32> zeroinitializer 635a65a5febSAlexey Bataev; THR15-NEXT: [[TMP176:%.*]] = add <2 x i32> [[TMP173]], [[TMP175]] 636a65a5febSAlexey Bataev; THR15-NEXT: [[TMP177:%.*]] = sub <2 x i32> [[TMP173]], [[TMP175]] 637a65a5febSAlexey Bataev; THR15-NEXT: [[TMP178:%.*]] = shufflevector <2 x i32> [[TMP176]], <2 x i32> [[TMP177]], <2 x i32> <i32 0, i32 3> 638834ad102SAlexey Bataev; THR15-NEXT: [[ADD105_3:%.*]] = add i32 [[SUB102_3]], [[SUB86_3]] 639834ad102SAlexey Bataev; THR15-NEXT: [[SUB106_3:%.*]] = sub i32 [[SUB86_3]], [[SUB102_3]] 640a65a5febSAlexey Bataev; THR15-NEXT: [[ADD_I52_3:%.*]] = add i32 [[MUL_I51_3]], [[ADD105_3]] 641834ad102SAlexey Bataev; THR15-NEXT: [[XOR_I53_3:%.*]] = xor i32 [[ADD_I52_3]], [[CONV]] 64238fffa63SPaul Walker; THR15-NEXT: [[TMP179:%.*]] = lshr <2 x i32> [[TMP93]], splat (i32 15) 64338fffa63SPaul Walker; THR15-NEXT: [[TMP180:%.*]] = and <2 x i32> [[TMP179]], splat (i32 65537) 64438fffa63SPaul Walker; THR15-NEXT: [[TMP181:%.*]] = mul <2 x i32> [[TMP180]], splat (i32 65535) 645a65a5febSAlexey Bataev; THR15-NEXT: [[TMP182:%.*]] = add <2 x i32> [[TMP181]], [[TMP178]] 646a65a5febSAlexey Bataev; THR15-NEXT: [[TMP183:%.*]] = xor <2 x i32> [[TMP182]], [[TMP93]] 647834ad102SAlexey Bataev; THR15-NEXT: [[SHR_I59_3:%.*]] = lshr i32 [[CONV33]], 15 648834ad102SAlexey Bataev; THR15-NEXT: [[AND_I60_3:%.*]] = and i32 [[SHR_I59_3]], 65537 649834ad102SAlexey Bataev; THR15-NEXT: [[MUL_I61_3:%.*]] = mul i32 [[AND_I60_3]], 65535 650834ad102SAlexey Bataev; THR15-NEXT: [[ADD_I62_3:%.*]] = add i32 [[MUL_I61_3]], [[SUB106_3]] 651834ad102SAlexey Bataev; THR15-NEXT: [[XOR_I63_3:%.*]] = xor i32 [[ADD_I62_3]], [[CONV33]] 652834ad102SAlexey Bataev; THR15-NEXT: [[ADD108_3:%.*]] = add i32 [[XOR_I53_3]], [[ADD113_2]] 653a65a5febSAlexey Bataev; THR15-NEXT: [[TMP184:%.*]] = extractelement <2 x i32> [[TMP183]], i32 0 654a65a5febSAlexey Bataev; THR15-NEXT: [[ADD110_3:%.*]] = add i32 [[ADD108_3]], [[TMP184]] 655a65a5febSAlexey Bataev; THR15-NEXT: [[TMP185:%.*]] = extractelement <2 x i32> [[TMP183]], i32 1 656a65a5febSAlexey Bataev; THR15-NEXT: [[ADD112_3:%.*]] = add i32 [[ADD110_3]], [[TMP185]] 657834ad102SAlexey Bataev; THR15-NEXT: [[ADD113_3:%.*]] = add i32 [[ADD112_3]], [[XOR_I63_3]] 658834ad102SAlexey Bataev; THR15-NEXT: ret i32 [[ADD113_3]] 659834ad102SAlexey Bataev; 6607b9bf80aSAlexey Bataeventry: 6617b9bf80aSAlexey Bataev %0 = load i8, ptr %pix1, align 1 6627b9bf80aSAlexey Bataev %conv = zext i8 %0 to i32 6637b9bf80aSAlexey Bataev %1 = load i8, ptr %pix2, align 1 6647b9bf80aSAlexey Bataev %conv2 = zext i8 %1 to i32 6657b9bf80aSAlexey Bataev %sub = sub i32 %conv, %conv2 6667b9bf80aSAlexey Bataev %arrayidx3 = getelementptr i8, ptr %pix1, i64 4 6677b9bf80aSAlexey Bataev %2 = load i8, ptr %arrayidx3, align 1 6687b9bf80aSAlexey Bataev %conv4 = zext i8 %2 to i32 6697b9bf80aSAlexey Bataev %arrayidx5 = getelementptr i8, ptr %pix2, i64 4 6707b9bf80aSAlexey Bataev %3 = load i8, ptr %arrayidx5, align 1 6717b9bf80aSAlexey Bataev %conv6 = zext i8 %3 to i32 6727b9bf80aSAlexey Bataev %sub7 = sub i32 %conv4, %conv6 6737b9bf80aSAlexey Bataev %shl = shl i32 %sub7, 16 6747b9bf80aSAlexey Bataev %add = add i32 %shl, %sub 6757b9bf80aSAlexey Bataev %arrayidx8 = getelementptr i8, ptr %pix1, i64 1 6767b9bf80aSAlexey Bataev %4 = load i8, ptr %arrayidx8, align 1 6777b9bf80aSAlexey Bataev %conv9 = zext i8 %4 to i32 6787b9bf80aSAlexey Bataev %arrayidx10 = getelementptr i8, ptr %pix2, i64 1 6797b9bf80aSAlexey Bataev %5 = load i8, ptr %arrayidx10, align 1 6807b9bf80aSAlexey Bataev %conv11 = zext i8 %5 to i32 6817b9bf80aSAlexey Bataev %sub12 = sub i32 %conv9, %conv11 6827b9bf80aSAlexey Bataev %arrayidx13 = getelementptr i8, ptr %pix1, i64 5 6837b9bf80aSAlexey Bataev %6 = load i8, ptr %arrayidx13, align 1 6847b9bf80aSAlexey Bataev %conv14 = zext i8 %6 to i32 6857b9bf80aSAlexey Bataev %arrayidx15 = getelementptr i8, ptr %pix2, i64 5 6867b9bf80aSAlexey Bataev %7 = load i8, ptr %arrayidx15, align 1 6877b9bf80aSAlexey Bataev %conv16 = zext i8 %7 to i32 6887b9bf80aSAlexey Bataev %sub17 = sub i32 %conv14, %conv16 6897b9bf80aSAlexey Bataev %shl18 = shl i32 %sub17, 16 6907b9bf80aSAlexey Bataev %add19 = add i32 %shl18, %sub12 6917b9bf80aSAlexey Bataev %arrayidx20 = getelementptr i8, ptr %pix1, i64 2 6927b9bf80aSAlexey Bataev %8 = load i8, ptr %arrayidx20, align 1 6937b9bf80aSAlexey Bataev %conv21 = zext i8 %8 to i32 6947b9bf80aSAlexey Bataev %arrayidx22 = getelementptr i8, ptr %pix2, i64 2 6957b9bf80aSAlexey Bataev %9 = load i8, ptr %arrayidx22, align 1 6967b9bf80aSAlexey Bataev %conv23 = zext i8 %9 to i32 6977b9bf80aSAlexey Bataev %sub24 = sub i32 %conv21, %conv23 6987b9bf80aSAlexey Bataev %arrayidx25 = getelementptr i8, ptr %pix1, i64 6 6997b9bf80aSAlexey Bataev %10 = load i8, ptr %arrayidx25, align 1 7007b9bf80aSAlexey Bataev %conv26 = zext i8 %10 to i32 7017b9bf80aSAlexey Bataev %arrayidx27 = getelementptr i8, ptr %pix2, i64 6 7027b9bf80aSAlexey Bataev %11 = load i8, ptr %arrayidx27, align 1 7037b9bf80aSAlexey Bataev %conv28 = zext i8 %11 to i32 7047b9bf80aSAlexey Bataev %sub29 = sub i32 %conv26, %conv28 7057b9bf80aSAlexey Bataev %shl30 = shl i32 %sub29, 16 7067b9bf80aSAlexey Bataev %add31 = add i32 %shl30, %sub24 7077b9bf80aSAlexey Bataev %arrayidx32 = getelementptr i8, ptr %pix1, i64 3 7087b9bf80aSAlexey Bataev %12 = load i8, ptr %arrayidx32, align 1 7097b9bf80aSAlexey Bataev %conv33 = zext i8 %12 to i32 7107b9bf80aSAlexey Bataev %arrayidx34 = getelementptr i8, ptr %pix2, i64 3 7117b9bf80aSAlexey Bataev %13 = load i8, ptr %arrayidx34, align 1 7127b9bf80aSAlexey Bataev %conv35 = zext i8 %13 to i32 7137b9bf80aSAlexey Bataev %sub36 = sub i32 %conv33, %conv35 7147b9bf80aSAlexey Bataev %arrayidx37 = getelementptr i8, ptr %pix1, i64 7 7157b9bf80aSAlexey Bataev %14 = load i8, ptr %arrayidx37, align 1 7167b9bf80aSAlexey Bataev %conv38 = zext i8 %14 to i32 7177b9bf80aSAlexey Bataev %arrayidx39 = getelementptr i8, ptr %pix2, i64 7 7187b9bf80aSAlexey Bataev %15 = load i8, ptr %arrayidx39, align 1 7197b9bf80aSAlexey Bataev %conv40 = zext i8 %15 to i32 7207b9bf80aSAlexey Bataev %sub41 = sub i32 %conv38, %conv40 7217b9bf80aSAlexey Bataev %shl42 = shl i32 %sub41, 16 7227b9bf80aSAlexey Bataev %add43 = add i32 %shl42, %sub36 7237b9bf80aSAlexey Bataev %add44 = add i32 %add19, %add 7247b9bf80aSAlexey Bataev %sub45 = sub i32 %add, %add19 7257b9bf80aSAlexey Bataev %add46 = add i32 %add43, %add31 7267b9bf80aSAlexey Bataev %sub47 = sub i32 %add31, %add43 7277b9bf80aSAlexey Bataev %add48 = add i32 %add46, %add44 7287b9bf80aSAlexey Bataev %sub51 = sub i32 %add44, %add46 7297b9bf80aSAlexey Bataev %add55 = add i32 %sub47, %sub45 7307b9bf80aSAlexey Bataev %sub59 = sub i32 %sub45, %sub47 7317b9bf80aSAlexey Bataev %add.ptr3 = getelementptr i8, ptr %pix1, i64 %idx.ext 7327b9bf80aSAlexey Bataev %add.ptr644 = getelementptr i8, ptr %pix2, i64 %idx.ext63 7337b9bf80aSAlexey Bataev %16 = load i8, ptr %add.ptr3, align 1 7347b9bf80aSAlexey Bataev %conv.1 = zext i8 %16 to i32 7357b9bf80aSAlexey Bataev %17 = load i8, ptr %add.ptr644, align 1 7367b9bf80aSAlexey Bataev %conv2.1 = zext i8 %17 to i32 7377b9bf80aSAlexey Bataev %sub.1 = sub i32 %conv.1, %conv2.1 7387b9bf80aSAlexey Bataev %arrayidx3.1 = getelementptr i8, ptr %add.ptr3, i64 4 7397b9bf80aSAlexey Bataev %18 = load i8, ptr %arrayidx3.1, align 1 7407b9bf80aSAlexey Bataev %conv4.1 = zext i8 %18 to i32 7417b9bf80aSAlexey Bataev %arrayidx5.1 = getelementptr i8, ptr %add.ptr644, i64 4 7427b9bf80aSAlexey Bataev %19 = load i8, ptr %arrayidx5.1, align 1 7437b9bf80aSAlexey Bataev %conv6.1 = zext i8 %19 to i32 7447b9bf80aSAlexey Bataev %sub7.1 = sub i32 %conv4.1, %conv6.1 7457b9bf80aSAlexey Bataev %shl.1 = shl i32 %sub7.1, 16 7467b9bf80aSAlexey Bataev %add.1 = add i32 %shl.1, %sub.1 7477b9bf80aSAlexey Bataev %arrayidx8.1 = getelementptr i8, ptr %add.ptr3, i64 1 7487b9bf80aSAlexey Bataev %20 = load i8, ptr %arrayidx8.1, align 1 7497b9bf80aSAlexey Bataev %conv9.1 = zext i8 %20 to i32 7507b9bf80aSAlexey Bataev %arrayidx10.1 = getelementptr i8, ptr %add.ptr644, i64 1 7517b9bf80aSAlexey Bataev %21 = load i8, ptr %arrayidx10.1, align 1 7527b9bf80aSAlexey Bataev %conv11.1 = zext i8 %21 to i32 7537b9bf80aSAlexey Bataev %sub12.1 = sub i32 %conv9.1, %conv11.1 7547b9bf80aSAlexey Bataev %arrayidx13.1 = getelementptr i8, ptr %add.ptr3, i64 5 7557b9bf80aSAlexey Bataev %22 = load i8, ptr %arrayidx13.1, align 1 7567b9bf80aSAlexey Bataev %conv14.1 = zext i8 %22 to i32 7577b9bf80aSAlexey Bataev %arrayidx15.1 = getelementptr i8, ptr %add.ptr644, i64 5 7587b9bf80aSAlexey Bataev %23 = load i8, ptr %arrayidx15.1, align 1 7597b9bf80aSAlexey Bataev %conv16.1 = zext i8 %23 to i32 7607b9bf80aSAlexey Bataev %sub17.1 = sub i32 %conv14.1, %conv16.1 7617b9bf80aSAlexey Bataev %shl18.1 = shl i32 %sub17.1, 16 7627b9bf80aSAlexey Bataev %add19.1 = add i32 %shl18.1, %sub12.1 7637b9bf80aSAlexey Bataev %arrayidx20.1 = getelementptr i8, ptr %add.ptr3, i64 2 7647b9bf80aSAlexey Bataev %24 = load i8, ptr %arrayidx20.1, align 1 7657b9bf80aSAlexey Bataev %conv21.1 = zext i8 %24 to i32 7667b9bf80aSAlexey Bataev %arrayidx22.1 = getelementptr i8, ptr %add.ptr644, i64 2 7677b9bf80aSAlexey Bataev %25 = load i8, ptr %arrayidx22.1, align 1 7687b9bf80aSAlexey Bataev %conv23.1 = zext i8 %25 to i32 7697b9bf80aSAlexey Bataev %sub24.1 = sub i32 %conv21.1, %conv23.1 7707b9bf80aSAlexey Bataev %arrayidx25.1 = getelementptr i8, ptr %add.ptr3, i64 6 7717b9bf80aSAlexey Bataev %26 = load i8, ptr %arrayidx25.1, align 1 7727b9bf80aSAlexey Bataev %conv26.1 = zext i8 %26 to i32 7737b9bf80aSAlexey Bataev %arrayidx27.1 = getelementptr i8, ptr %add.ptr644, i64 6 7747b9bf80aSAlexey Bataev %27 = load i8, ptr %arrayidx27.1, align 1 7757b9bf80aSAlexey Bataev %conv28.1 = zext i8 %27 to i32 7767b9bf80aSAlexey Bataev %sub29.1 = sub i32 %conv26.1, %conv28.1 7777b9bf80aSAlexey Bataev %shl30.1 = shl i32 %sub29.1, 16 7787b9bf80aSAlexey Bataev %add31.1 = add i32 %shl30.1, %sub24.1 7797b9bf80aSAlexey Bataev %arrayidx32.1 = getelementptr i8, ptr %add.ptr3, i64 3 7807b9bf80aSAlexey Bataev %28 = load i8, ptr %arrayidx32.1, align 1 7817b9bf80aSAlexey Bataev %conv33.1 = zext i8 %28 to i32 7827b9bf80aSAlexey Bataev %arrayidx34.1 = getelementptr i8, ptr %add.ptr644, i64 3 7837b9bf80aSAlexey Bataev %29 = load i8, ptr %arrayidx34.1, align 1 7847b9bf80aSAlexey Bataev %conv35.1 = zext i8 %29 to i32 7857b9bf80aSAlexey Bataev %sub36.1 = sub i32 %conv33.1, %conv35.1 7867b9bf80aSAlexey Bataev %arrayidx37.1 = getelementptr i8, ptr %add.ptr3, i64 7 7877b9bf80aSAlexey Bataev %30 = load i8, ptr %arrayidx37.1, align 1 7887b9bf80aSAlexey Bataev %conv38.1 = zext i8 %30 to i32 7897b9bf80aSAlexey Bataev %arrayidx39.1 = getelementptr i8, ptr %add.ptr644, i64 7 7907b9bf80aSAlexey Bataev %31 = load i8, ptr %arrayidx39.1, align 1 7917b9bf80aSAlexey Bataev %conv40.1 = zext i8 %31 to i32 7927b9bf80aSAlexey Bataev %sub41.1 = sub i32 %conv38.1, %conv40.1 7937b9bf80aSAlexey Bataev %shl42.1 = shl i32 %sub41.1, 16 7947b9bf80aSAlexey Bataev %add43.1 = add i32 %shl42.1, %sub36.1 7957b9bf80aSAlexey Bataev %add44.1 = add i32 %add19.1, %add.1 7967b9bf80aSAlexey Bataev %sub45.1 = sub i32 %add.1, %add19.1 7977b9bf80aSAlexey Bataev %add46.1 = add i32 %add43.1, %add31.1 7987b9bf80aSAlexey Bataev %sub47.1 = sub i32 %add31.1, %add43.1 7997b9bf80aSAlexey Bataev %add48.1 = add i32 %add46.1, %add44.1 8007b9bf80aSAlexey Bataev %sub51.1 = sub i32 %add44.1, %add46.1 8017b9bf80aSAlexey Bataev %add55.1 = add i32 %sub47.1, %sub45.1 8027b9bf80aSAlexey Bataev %sub59.1 = sub i32 %sub45.1, %sub47.1 8037b9bf80aSAlexey Bataev %add.ptr.1 = getelementptr i8, ptr %add.ptr, i64 %idx.ext 8047b9bf80aSAlexey Bataev %add.ptr64.1 = getelementptr i8, ptr %add.ptr64, i64 %idx.ext63 8057b9bf80aSAlexey Bataev %32 = load i8, ptr %add.ptr.1, align 1 8067b9bf80aSAlexey Bataev %conv.2 = zext i8 %32 to i32 8077b9bf80aSAlexey Bataev %33 = load i8, ptr %add.ptr64.1, align 1 8087b9bf80aSAlexey Bataev %conv2.2 = zext i8 %33 to i32 8097b9bf80aSAlexey Bataev %sub.2 = sub i32 %conv.2, %conv2.2 8107b9bf80aSAlexey Bataev %arrayidx3.2 = getelementptr i8, ptr %add.ptr.1, i64 4 8117b9bf80aSAlexey Bataev %34 = load i8, ptr %arrayidx3.2, align 1 8127b9bf80aSAlexey Bataev %conv4.2 = zext i8 %34 to i32 8137b9bf80aSAlexey Bataev %arrayidx5.2 = getelementptr i8, ptr %add.ptr64.1, i64 4 8147b9bf80aSAlexey Bataev %35 = load i8, ptr %arrayidx5.2, align 1 8157b9bf80aSAlexey Bataev %conv6.2 = zext i8 %35 to i32 8167b9bf80aSAlexey Bataev %sub7.2 = sub i32 %conv4.2, %conv6.2 8177b9bf80aSAlexey Bataev %shl.2 = shl i32 %sub7.2, 16 8187b9bf80aSAlexey Bataev %add.2 = add i32 %shl.2, %sub.2 8197b9bf80aSAlexey Bataev %arrayidx8.2 = getelementptr i8, ptr %add.ptr.1, i64 1 8207b9bf80aSAlexey Bataev %36 = load i8, ptr %arrayidx8.2, align 1 8217b9bf80aSAlexey Bataev %conv9.2 = zext i8 %36 to i32 8227b9bf80aSAlexey Bataev %arrayidx10.2 = getelementptr i8, ptr %add.ptr64.1, i64 1 8237b9bf80aSAlexey Bataev %37 = load i8, ptr %arrayidx10.2, align 1 8247b9bf80aSAlexey Bataev %conv11.2 = zext i8 %37 to i32 8257b9bf80aSAlexey Bataev %sub12.2 = sub i32 %conv9.2, %conv11.2 8267b9bf80aSAlexey Bataev %arrayidx13.2 = getelementptr i8, ptr %add.ptr.1, i64 5 8277b9bf80aSAlexey Bataev %38 = load i8, ptr %arrayidx13.2, align 1 8287b9bf80aSAlexey Bataev %conv14.2 = zext i8 %38 to i32 8297b9bf80aSAlexey Bataev %arrayidx15.2 = getelementptr i8, ptr %add.ptr64.1, i64 5 8307b9bf80aSAlexey Bataev %39 = load i8, ptr %arrayidx15.2, align 1 8317b9bf80aSAlexey Bataev %conv16.2 = zext i8 %39 to i32 8327b9bf80aSAlexey Bataev %sub17.2 = sub i32 %conv14.2, %conv16.2 8337b9bf80aSAlexey Bataev %shl18.2 = shl i32 %sub17.2, 16 8347b9bf80aSAlexey Bataev %add19.2 = add i32 %shl18.2, %sub12.2 8357b9bf80aSAlexey Bataev %arrayidx20.2 = getelementptr i8, ptr %add.ptr.1, i64 2 8367b9bf80aSAlexey Bataev %40 = load i8, ptr %arrayidx20.2, align 1 8377b9bf80aSAlexey Bataev %conv21.2 = zext i8 %40 to i32 8387b9bf80aSAlexey Bataev %arrayidx22.2 = getelementptr i8, ptr %add.ptr64.1, i64 2 8397b9bf80aSAlexey Bataev %41 = load i8, ptr %arrayidx22.2, align 1 8407b9bf80aSAlexey Bataev %conv23.2 = zext i8 %41 to i32 8417b9bf80aSAlexey Bataev %sub24.2 = sub i32 %conv21.2, %conv23.2 8427b9bf80aSAlexey Bataev %arrayidx25.2 = getelementptr i8, ptr %add.ptr.1, i64 6 8437b9bf80aSAlexey Bataev %42 = load i8, ptr %arrayidx25.2, align 1 8447b9bf80aSAlexey Bataev %conv26.2 = zext i8 %42 to i32 8457b9bf80aSAlexey Bataev %arrayidx27.2 = getelementptr i8, ptr %add.ptr64.1, i64 6 8467b9bf80aSAlexey Bataev %43 = load i8, ptr %arrayidx27.2, align 1 8477b9bf80aSAlexey Bataev %conv28.2 = zext i8 %43 to i32 8487b9bf80aSAlexey Bataev %sub29.2 = sub i32 %conv26.2, %conv28.2 8497b9bf80aSAlexey Bataev %shl30.2 = shl i32 %sub29.2, 16 8507b9bf80aSAlexey Bataev %add31.2 = add i32 %shl30.2, %sub24.2 8517b9bf80aSAlexey Bataev %arrayidx32.2 = getelementptr i8, ptr %add.ptr.1, i64 3 8527b9bf80aSAlexey Bataev %44 = load i8, ptr %arrayidx32.2, align 1 8537b9bf80aSAlexey Bataev %conv33.2 = zext i8 %44 to i32 8547b9bf80aSAlexey Bataev %arrayidx34.2 = getelementptr i8, ptr %add.ptr64.1, i64 3 8557b9bf80aSAlexey Bataev %45 = load i8, ptr %arrayidx34.2, align 1 8567b9bf80aSAlexey Bataev %conv35.2 = zext i8 %45 to i32 8577b9bf80aSAlexey Bataev %sub36.2 = sub i32 %conv33.2, %conv35.2 8587b9bf80aSAlexey Bataev %arrayidx37.2 = getelementptr i8, ptr %add.ptr.1, i64 7 8597b9bf80aSAlexey Bataev %46 = load i8, ptr %arrayidx37.2, align 1 8607b9bf80aSAlexey Bataev %conv38.2 = zext i8 %46 to i32 8617b9bf80aSAlexey Bataev %arrayidx39.2 = getelementptr i8, ptr %add.ptr64.1, i64 7 8627b9bf80aSAlexey Bataev %47 = load i8, ptr %arrayidx39.2, align 1 8637b9bf80aSAlexey Bataev %conv40.2 = zext i8 %47 to i32 8647b9bf80aSAlexey Bataev %sub41.2 = sub i32 %conv38.2, %conv40.2 8657b9bf80aSAlexey Bataev %shl42.2 = shl i32 %sub41.2, 16 8667b9bf80aSAlexey Bataev %add43.2 = add i32 %shl42.2, %sub36.2 8677b9bf80aSAlexey Bataev %add44.2 = add i32 %add19.2, %add.2 8687b9bf80aSAlexey Bataev %sub45.2 = sub i32 %add.2, %add19.2 8697b9bf80aSAlexey Bataev %add46.2 = add i32 %add43.2, %add31.2 8707b9bf80aSAlexey Bataev %sub47.2 = sub i32 %add31.2, %add43.2 8717b9bf80aSAlexey Bataev %add48.2 = add i32 %add46.2, %add44.2 8727b9bf80aSAlexey Bataev %sub51.2 = sub i32 %add44.2, %add46.2 8737b9bf80aSAlexey Bataev %add55.2 = add i32 %sub47.2, %sub45.2 8747b9bf80aSAlexey Bataev %sub59.2 = sub i32 %sub45.2, %sub47.2 8757b9bf80aSAlexey Bataev %48 = load i8, ptr null, align 1 8767b9bf80aSAlexey Bataev %conv.3 = zext i8 %48 to i32 8777b9bf80aSAlexey Bataev %49 = load i8, ptr null, align 1 8787b9bf80aSAlexey Bataev %conv2.3 = zext i8 %49 to i32 8797b9bf80aSAlexey Bataev %sub.3 = sub i32 %conv.3, %conv2.3 8807b9bf80aSAlexey Bataev %arrayidx3.3 = getelementptr i8, ptr null, i64 4 8817b9bf80aSAlexey Bataev %50 = load i8, ptr %arrayidx3.3, align 1 8827b9bf80aSAlexey Bataev %conv4.3 = zext i8 %50 to i32 8837b9bf80aSAlexey Bataev %arrayidx5.3 = getelementptr i8, ptr null, i64 4 8847b9bf80aSAlexey Bataev %51 = load i8, ptr %arrayidx5.3, align 1 8857b9bf80aSAlexey Bataev %conv6.3 = zext i8 %51 to i32 8867b9bf80aSAlexey Bataev %sub7.3 = sub i32 %conv4.3, %conv6.3 8877b9bf80aSAlexey Bataev %shl.3 = shl i32 %sub7.3, 16 8887b9bf80aSAlexey Bataev %add.3 = add i32 %shl.3, %sub.3 8897b9bf80aSAlexey Bataev %arrayidx8.3 = getelementptr i8, ptr null, i64 1 8907b9bf80aSAlexey Bataev %52 = load i8, ptr %arrayidx8.3, align 1 8917b9bf80aSAlexey Bataev %conv9.3 = zext i8 %52 to i32 8927b9bf80aSAlexey Bataev %arrayidx10.3 = getelementptr i8, ptr null, i64 1 8937b9bf80aSAlexey Bataev %53 = load i8, ptr %arrayidx10.3, align 1 8947b9bf80aSAlexey Bataev %conv11.3 = zext i8 %53 to i32 8957b9bf80aSAlexey Bataev %sub12.3 = sub i32 %conv9.3, %conv11.3 8967b9bf80aSAlexey Bataev %54 = load i8, ptr null, align 1 8977b9bf80aSAlexey Bataev %conv14.3 = zext i8 %54 to i32 8987b9bf80aSAlexey Bataev %arrayidx15.3 = getelementptr i8, ptr null, i64 5 8997b9bf80aSAlexey Bataev %55 = load i8, ptr %arrayidx15.3, align 1 9007b9bf80aSAlexey Bataev %conv16.3 = zext i8 %55 to i32 9017b9bf80aSAlexey Bataev %sub17.3 = sub i32 %conv14.3, %conv16.3 9027b9bf80aSAlexey Bataev %shl18.3 = shl i32 %sub17.3, 16 9037b9bf80aSAlexey Bataev %add19.3 = add i32 %shl18.3, %sub12.3 9047b9bf80aSAlexey Bataev %arrayidx20.3 = getelementptr i8, ptr null, i64 2 9057b9bf80aSAlexey Bataev %56 = load i8, ptr %arrayidx20.3, align 1 9067b9bf80aSAlexey Bataev %conv21.3 = zext i8 %56 to i32 9077b9bf80aSAlexey Bataev %arrayidx22.3 = getelementptr i8, ptr null, i64 2 9087b9bf80aSAlexey Bataev %57 = load i8, ptr %arrayidx22.3, align 1 9097b9bf80aSAlexey Bataev %conv23.3 = zext i8 %57 to i32 9107b9bf80aSAlexey Bataev %sub24.3 = sub i32 %conv21.3, %conv23.3 9117b9bf80aSAlexey Bataev %58 = load i8, ptr null, align 1 9127b9bf80aSAlexey Bataev %conv26.3 = zext i8 %58 to i32 9137b9bf80aSAlexey Bataev %arrayidx27.3 = getelementptr i8, ptr null, i64 6 9147b9bf80aSAlexey Bataev %59 = load i8, ptr %arrayidx27.3, align 1 9157b9bf80aSAlexey Bataev %conv28.3 = zext i8 %59 to i32 9167b9bf80aSAlexey Bataev %sub29.3 = sub i32 %conv26.3, %conv28.3 9177b9bf80aSAlexey Bataev %shl30.3 = shl i32 %sub29.3, 16 9187b9bf80aSAlexey Bataev %add31.3 = add i32 %shl30.3, %sub24.3 9197b9bf80aSAlexey Bataev %arrayidx32.3 = getelementptr i8, ptr null, i64 3 9207b9bf80aSAlexey Bataev %60 = load i8, ptr %arrayidx32.3, align 1 9217b9bf80aSAlexey Bataev %conv33.3 = zext i8 %60 to i32 9227b9bf80aSAlexey Bataev %arrayidx34.3 = getelementptr i8, ptr null, i64 3 9237b9bf80aSAlexey Bataev %61 = load i8, ptr %arrayidx34.3, align 1 9247b9bf80aSAlexey Bataev %conv35.3 = zext i8 %61 to i32 9257b9bf80aSAlexey Bataev %sub36.3 = sub i32 %conv33.3, %conv35.3 9267b9bf80aSAlexey Bataev %62 = load i8, ptr null, align 1 9277b9bf80aSAlexey Bataev %conv38.3 = zext i8 %62 to i32 9287b9bf80aSAlexey Bataev %arrayidx39.3 = getelementptr i8, ptr null, i64 7 9297b9bf80aSAlexey Bataev %63 = load i8, ptr %arrayidx39.3, align 1 9307b9bf80aSAlexey Bataev %conv40.3 = zext i8 %63 to i32 9317b9bf80aSAlexey Bataev %sub41.3 = sub i32 %conv38.3, %conv40.3 9327b9bf80aSAlexey Bataev %shl42.3 = shl i32 %sub41.3, 16 9337b9bf80aSAlexey Bataev %add43.3 = add i32 %shl42.3, %sub36.3 9347b9bf80aSAlexey Bataev %add44.3 = add i32 %add19.3, %add.3 9357b9bf80aSAlexey Bataev %sub45.3 = sub i32 %add.3, %add19.3 9367b9bf80aSAlexey Bataev %add46.3 = add i32 %add43.3, %add31.3 9377b9bf80aSAlexey Bataev %sub47.3 = sub i32 %add31.3, %add43.3 9387b9bf80aSAlexey Bataev %add48.3 = add i32 %add46.3, %add44.3 9397b9bf80aSAlexey Bataev %sub51.3 = sub i32 %add44.3, %add46.3 9407b9bf80aSAlexey Bataev %add55.3 = add i32 %sub47.3, %sub45.3 9417b9bf80aSAlexey Bataev %sub59.3 = sub i32 %sub45.3, %sub47.3 9427b9bf80aSAlexey Bataev %add78 = add i32 %add48.1, %add48 9437b9bf80aSAlexey Bataev %sub86 = sub i32 %add48, %add48.1 9447b9bf80aSAlexey Bataev %add94 = add i32 %add48.3, %add48.2 9457b9bf80aSAlexey Bataev %sub102 = sub i32 %add48.2, %add48.3 9467b9bf80aSAlexey Bataev %add103 = add i32 %add94, %add78 9477b9bf80aSAlexey Bataev %sub104 = sub i32 %add78, %add94 9487b9bf80aSAlexey Bataev %add105 = add i32 %sub102, %sub86 9497b9bf80aSAlexey Bataev %sub106 = sub i32 %sub86, %sub102 9507b9bf80aSAlexey Bataev %shr.i = lshr i32 %conv.3, 15 9517b9bf80aSAlexey Bataev %and.i = and i32 %shr.i, 65537 9527b9bf80aSAlexey Bataev %mul.i = mul i32 %and.i, 65535 9537b9bf80aSAlexey Bataev %add.i = add i32 %mul.i, %add103 9547b9bf80aSAlexey Bataev %xor.i = xor i32 %add.i, %conv.3 9557b9bf80aSAlexey Bataev %shr.i49 = lshr i32 %add46.2, 15 9567b9bf80aSAlexey Bataev %and.i50 = and i32 %shr.i49, 65537 9577b9bf80aSAlexey Bataev %mul.i51 = mul i32 %and.i50, 65535 9587b9bf80aSAlexey Bataev %add.i52 = add i32 %mul.i51, %add105 9597b9bf80aSAlexey Bataev %xor.i53 = xor i32 %add.i52, %add46.2 9607b9bf80aSAlexey Bataev %shr.i54 = lshr i32 %add46.1, 15 9617b9bf80aSAlexey Bataev %and.i55 = and i32 %shr.i54, 65537 9627b9bf80aSAlexey Bataev %mul.i56 = mul i32 %and.i55, 65535 9637b9bf80aSAlexey Bataev %add.i57 = add i32 %mul.i56, %sub104 9647b9bf80aSAlexey Bataev %xor.i58 = xor i32 %add.i57, %add46.1 9657b9bf80aSAlexey Bataev %shr.i59 = lshr i32 %add46, 15 9667b9bf80aSAlexey Bataev %and.i60 = and i32 %shr.i59, 65537 9677b9bf80aSAlexey Bataev %mul.i61 = mul i32 %and.i60, 65535 9687b9bf80aSAlexey Bataev %add.i62 = add i32 %mul.i61, %sub106 9697b9bf80aSAlexey Bataev %xor.i63 = xor i32 %add.i62, %add46 9707b9bf80aSAlexey Bataev %add110 = add i32 %xor.i53, %xor.i 9717b9bf80aSAlexey Bataev %add112 = add i32 %add110, %xor.i58 9727b9bf80aSAlexey Bataev %add113 = add i32 %add112, %xor.i63 9737b9bf80aSAlexey Bataev %add78.1 = add i32 %add55.1, %add55 9747b9bf80aSAlexey Bataev %sub86.1 = sub i32 %add55, %add55.1 9757b9bf80aSAlexey Bataev %add94.1 = add i32 %add55.3, %add55.2 9767b9bf80aSAlexey Bataev %sub102.1 = sub i32 %add55.2, %add55.3 9777b9bf80aSAlexey Bataev %add103.1 = add i32 %add94.1, %add78.1 9787b9bf80aSAlexey Bataev %sub104.1 = sub i32 %add78.1, %add94.1 9797b9bf80aSAlexey Bataev %add105.1 = add i32 %sub102.1, %sub86.1 9807b9bf80aSAlexey Bataev %sub106.1 = sub i32 %sub86.1, %sub102.1 9817b9bf80aSAlexey Bataev %shr.i.1 = lshr i32 %conv9.2, 15 9827b9bf80aSAlexey Bataev %and.i.1 = and i32 %shr.i.1, 65537 9837b9bf80aSAlexey Bataev %mul.i.1 = mul i32 %and.i.1, 65535 9847b9bf80aSAlexey Bataev %add.i.1 = add i32 %mul.i.1, %add103.1 9857b9bf80aSAlexey Bataev %xor.i.1 = xor i32 %add.i.1, %conv9.2 9867b9bf80aSAlexey Bataev %shr.i49.1 = lshr i32 %conv.2, 15 9877b9bf80aSAlexey Bataev %and.i50.1 = and i32 %shr.i49.1, 65537 9887b9bf80aSAlexey Bataev %mul.i51.1 = mul i32 %and.i50.1, 65535 9897b9bf80aSAlexey Bataev %add.i52.1 = add i32 %mul.i51.1, %add105.1 9907b9bf80aSAlexey Bataev %xor.i53.1 = xor i32 %add.i52.1, %conv.2 9917b9bf80aSAlexey Bataev %shr.i54.1 = lshr i32 %sub47.1, 15 9927b9bf80aSAlexey Bataev %and.i55.1 = and i32 %shr.i54.1, 65537 9937b9bf80aSAlexey Bataev %mul.i56.1 = mul i32 %and.i55.1, 65535 9947b9bf80aSAlexey Bataev %add.i57.1 = add i32 %mul.i56.1, %sub104.1 9957b9bf80aSAlexey Bataev %xor.i58.1 = xor i32 %add.i57.1, %sub47.1 9967b9bf80aSAlexey Bataev %shr.i59.1 = lshr i32 %sub47, 15 9977b9bf80aSAlexey Bataev %and.i60.1 = and i32 %shr.i59.1, 65537 9987b9bf80aSAlexey Bataev %mul.i61.1 = mul i32 %and.i60.1, 65535 9997b9bf80aSAlexey Bataev %add.i62.1 = add i32 %mul.i61.1, %sub106.1 10007b9bf80aSAlexey Bataev %xor.i63.1 = xor i32 %add.i62.1, %sub47 10017b9bf80aSAlexey Bataev %add108.1 = add i32 %xor.i53.1, %add113 10027b9bf80aSAlexey Bataev %add110.1 = add i32 %add108.1, %xor.i.1 10037b9bf80aSAlexey Bataev %add112.1 = add i32 %add110.1, %xor.i58.1 10047b9bf80aSAlexey Bataev %add113.1 = add i32 %add112.1, %xor.i63.1 10057b9bf80aSAlexey Bataev %add78.2 = add i32 %sub51.1, %sub51 10067b9bf80aSAlexey Bataev %sub86.2 = sub i32 %sub51, %sub51.1 10077b9bf80aSAlexey Bataev %add94.2 = add i32 %sub51.3, %sub51.2 10087b9bf80aSAlexey Bataev %sub102.2 = sub i32 %sub51.2, %sub51.3 10097b9bf80aSAlexey Bataev %add103.2 = add i32 %add94.2, %add78.2 10107b9bf80aSAlexey Bataev %sub104.2 = sub i32 %add78.2, %add94.2 10117b9bf80aSAlexey Bataev %add105.2 = add i32 %sub102.2, %sub86.2 10127b9bf80aSAlexey Bataev %sub106.2 = sub i32 %sub86.2, %sub102.2 10137b9bf80aSAlexey Bataev %shr.i.2 = lshr i32 %conv9.1, 15 10147b9bf80aSAlexey Bataev %and.i.2 = and i32 %shr.i.2, 65537 10157b9bf80aSAlexey Bataev %mul.i.2 = mul i32 %and.i.2, 65535 10167b9bf80aSAlexey Bataev %add.i.2 = add i32 %mul.i.2, %add103.2 10177b9bf80aSAlexey Bataev %xor.i.2 = xor i32 %add.i.2, %conv9.1 10187b9bf80aSAlexey Bataev %shr.i49.2 = lshr i32 %conv.1, 15 10197b9bf80aSAlexey Bataev %and.i50.2 = and i32 %shr.i49.2, 65537 10207b9bf80aSAlexey Bataev %mul.i51.2 = mul i32 %and.i50.2, 65535 10217b9bf80aSAlexey Bataev %add.i52.2 = add i32 %mul.i51.2, %add105.2 10227b9bf80aSAlexey Bataev %xor.i53.2 = xor i32 %add.i52.2, %conv.1 10237b9bf80aSAlexey Bataev %shr.i54.2 = lshr i32 %conv21.1, 15 10247b9bf80aSAlexey Bataev %and.i55.2 = and i32 %shr.i54.2, 65537 10257b9bf80aSAlexey Bataev %mul.i56.2 = mul i32 %and.i55.2, 65535 10267b9bf80aSAlexey Bataev %add.i57.2 = add i32 %mul.i56.2, %sub104.2 10277b9bf80aSAlexey Bataev %xor.i58.2 = xor i32 %add.i57.2, %conv21.1 10287b9bf80aSAlexey Bataev %shr.i59.2 = lshr i32 %add44, 15 10297b9bf80aSAlexey Bataev %and.i60.2 = and i32 %shr.i59.2, 65537 10307b9bf80aSAlexey Bataev %mul.i61.2 = mul i32 %and.i60.2, 65535 10317b9bf80aSAlexey Bataev %add.i62.2 = add i32 %mul.i61.2, %sub106.2 10327b9bf80aSAlexey Bataev %xor.i63.2 = xor i32 %add.i62.2, %add44 10337b9bf80aSAlexey Bataev %add108.2 = add i32 %xor.i53.2, %add113.1 10347b9bf80aSAlexey Bataev %add110.2 = add i32 %add108.2, %xor.i.2 10357b9bf80aSAlexey Bataev %add112.2 = add i32 %add110.2, %xor.i58.2 10367b9bf80aSAlexey Bataev %add113.2 = add i32 %add112.2, %xor.i63.2 10377b9bf80aSAlexey Bataev %add78.3 = add i32 %sub59.1, %sub59 10387b9bf80aSAlexey Bataev %sub86.3 = sub i32 %sub59, %sub59.1 10397b9bf80aSAlexey Bataev %add94.3 = add i32 %sub59.3, %sub59.2 10407b9bf80aSAlexey Bataev %sub102.3 = sub i32 %sub59.2, %sub59.3 10417b9bf80aSAlexey Bataev %add103.3 = add i32 %add94.3, %add78.3 10427b9bf80aSAlexey Bataev %sub104.3 = sub i32 %add78.3, %add94.3 10437b9bf80aSAlexey Bataev %add105.3 = add i32 %sub102.3, %sub86.3 10447b9bf80aSAlexey Bataev %sub106.3 = sub i32 %sub86.3, %sub102.3 10457b9bf80aSAlexey Bataev %shr.i.3 = lshr i32 %conv9, 15 10467b9bf80aSAlexey Bataev %and.i.3 = and i32 %shr.i.3, 65537 10477b9bf80aSAlexey Bataev %mul.i.3 = mul i32 %and.i.3, 65535 10487b9bf80aSAlexey Bataev %add.i.3 = add i32 %mul.i.3, %add103.3 10497b9bf80aSAlexey Bataev %xor.i.3 = xor i32 %add.i.3, %conv9 10507b9bf80aSAlexey Bataev %shr.i49.3 = lshr i32 %conv, 15 10517b9bf80aSAlexey Bataev %and.i50.3 = and i32 %shr.i49.3, 65537 10527b9bf80aSAlexey Bataev %mul.i51.3 = mul i32 %and.i50.3, 65535 10537b9bf80aSAlexey Bataev %add.i52.3 = add i32 %mul.i51.3, %add105.3 10547b9bf80aSAlexey Bataev %xor.i53.3 = xor i32 %add.i52.3, %conv 10557b9bf80aSAlexey Bataev %shr.i54.3 = lshr i32 %conv21, 15 10567b9bf80aSAlexey Bataev %and.i55.3 = and i32 %shr.i54.3, 65537 10577b9bf80aSAlexey Bataev %mul.i56.3 = mul i32 %and.i55.3, 65535 10587b9bf80aSAlexey Bataev %add.i57.3 = add i32 %mul.i56.3, %sub104.3 10597b9bf80aSAlexey Bataev %xor.i58.3 = xor i32 %add.i57.3, %conv21 10607b9bf80aSAlexey Bataev %shr.i59.3 = lshr i32 %conv33, 15 10617b9bf80aSAlexey Bataev %and.i60.3 = and i32 %shr.i59.3, 65537 10627b9bf80aSAlexey Bataev %mul.i61.3 = mul i32 %and.i60.3, 65535 10637b9bf80aSAlexey Bataev %add.i62.3 = add i32 %mul.i61.3, %sub106.3 10647b9bf80aSAlexey Bataev %xor.i63.3 = xor i32 %add.i62.3, %conv33 10657b9bf80aSAlexey Bataev %add108.3 = add i32 %xor.i53.3, %add113.2 10667b9bf80aSAlexey Bataev %add110.3 = add i32 %add108.3, %xor.i.3 10677b9bf80aSAlexey Bataev %add112.3 = add i32 %add110.3, %xor.i58.3 10687b9bf80aSAlexey Bataev %add113.3 = add i32 %add112.3, %xor.i63.3 10697b9bf80aSAlexey Bataev ret i32 %add113.3 10707b9bf80aSAlexey Bataev} 1071