brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.8 KiB · e497edc Raw
597 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -O3 -verify-machineinstrs -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -mattr=+simd128 | FileCheck %s3 4 5target triple = "wasm64"6 7 8define i16 @legal_bitcast_v16i8(<16 x i8> %x) {9; CHECK-LABEL: legal_bitcast_v16i8:10; CHECK:         .functype legal_bitcast_v16i8 (v128) -> (i32)11; CHECK-NEXT:  # %bb.0:12; CHECK-NEXT:    v128.const $push0=, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1613; CHECK-NEXT:    i8x16.eq $push1=, $0, $pop014; CHECK-NEXT:    i8x16.bitmask $push2=, $pop115; CHECK-NEXT:    return $pop216    %z = icmp eq <16 x i8> %x, splat (i8 16)17    %res = bitcast <16 x i1> %z to i1618    ret i16 %res19}20 21define i32 @optimize_illegal_bitcast_v32i8(<32 x i8> %x) {22; CHECK-LABEL: optimize_illegal_bitcast_v32i8:23; CHECK:         .functype optimize_illegal_bitcast_v32i8 (v128, v128) -> (i32)24; CHECK-NEXT:  # %bb.0:25; CHECK-NEXT:    i32.const $push2=, 1626; CHECK-NEXT:    v128.const $push10=, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3227; CHECK-NEXT:    local.tee $push9=, $2=, $pop1028; CHECK-NEXT:    i8x16.eq $push0=, $0, $pop929; CHECK-NEXT:    i8x16.bitmask $push1=, $pop030; CHECK-NEXT:    i32.const $push8=, 1631; CHECK-NEXT:    i32.add $push3=, $pop1, $pop832; CHECK-NEXT:    i32.shl $push4=, $pop2, $pop333; CHECK-NEXT:    i8x16.eq $push5=, $1, $234; CHECK-NEXT:    i8x16.bitmask $push6=, $pop535; CHECK-NEXT:    i32.add $push7=, $pop4, $pop636; CHECK-NEXT:    return $pop737    %z = icmp eq <32 x i8> %x, splat (i8 32)38    %res = bitcast <32 x i1> %z to i3239    ret i32 %res40}41 42 43define i32 @optimize_illegal_bitcast_v32i8_const_step_vec(<32 x i8> %x) {44; CHECK-LABEL: optimize_illegal_bitcast_v32i8_const_step_vec:45; CHECK:         .functype optimize_illegal_bitcast_v32i8_const_step_vec (v128, v128) -> (i32)46; CHECK-NEXT:  # %bb.0:47; CHECK-NEXT:    i32.const $push3=, 1648; CHECK-NEXT:    v128.const $push0=, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1649; CHECK-NEXT:    i8x16.eq $push1=, $0, $pop050; CHECK-NEXT:    i8x16.bitmask $push2=, $pop151; CHECK-NEXT:    i32.const $push10=, 1652; CHECK-NEXT:    i32.add $push4=, $pop2, $pop1053; CHECK-NEXT:    i32.shl $push5=, $pop3, $pop454; CHECK-NEXT:    v128.const $push6=, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 3255; CHECK-NEXT:    i8x16.eq $push7=, $1, $pop656; CHECK-NEXT:    i8x16.bitmask $push8=, $pop757; CHECK-NEXT:    i32.add $push9=, $pop5, $pop858; CHECK-NEXT:    return $pop959    %const_step_vec =  add <32 x i8> <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8,60                              i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15, i8 16,61                              i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24,62                              i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31, i8 32>, zeroinitializer63    %z = icmp eq <32 x i8> %x, %const_step_vec64    %res = bitcast <32 x i1> %z to i3265    ret i32 %res66}67 68 69define i32 @optimize_illegal_bitcast_v32i8_non_const_vec(<32 x i8> %x, <32 x i8> %y) {70; CHECK-LABEL: optimize_illegal_bitcast_v32i8_non_const_vec:71; CHECK:         .functype optimize_illegal_bitcast_v32i8_non_const_vec (v128, v128, v128, v128) -> (i32)72; CHECK-NEXT:  # %bb.0:73; CHECK-NEXT:    i32.const $push2=, 1674; CHECK-NEXT:    i8x16.eq $push0=, $0, $275; CHECK-NEXT:    i8x16.bitmask $push1=, $pop076; CHECK-NEXT:    i32.const $push8=, 1677; CHECK-NEXT:    i32.add $push3=, $pop1, $pop878; CHECK-NEXT:    i32.shl $push4=, $pop2, $pop379; CHECK-NEXT:    i8x16.eq $push5=, $1, $380; CHECK-NEXT:    i8x16.bitmask $push6=, $pop581; CHECK-NEXT:    i32.add $push7=, $pop4, $pop682; CHECK-NEXT:    return $pop783    %z = icmp eq <32 x i8> %x, %y84    %res = bitcast <32 x i1> %z to i3285    ret i32 %res86}87 88 89 90 91define i64 @optimize_illegal_bitcast_v64i8(<64 x i8> %x) {92; CHECK-LABEL: optimize_illegal_bitcast_v64i8:93; CHECK:         .functype optimize_illegal_bitcast_v64i8 (v128, v128, v128, v128) -> (i64)94; CHECK-NEXT:  # %bb.0:95; CHECK-NEXT:    i64.const $push3=, 1696; CHECK-NEXT:    i64.const $push24=, 1697; CHECK-NEXT:    i64.const $push23=, 1698; CHECK-NEXT:    v128.const $push22=, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 6499; CHECK-NEXT:    local.tee $push21=, $4=, $pop22100; CHECK-NEXT:    i8x16.eq $push0=, $0, $pop21101; CHECK-NEXT:    i8x16.bitmask $push1=, $pop0102; CHECK-NEXT:    i64.extend_i32_u $push2=, $pop1103; CHECK-NEXT:    i64.const $push20=, 16104; CHECK-NEXT:    i64.add $push4=, $pop2, $pop20105; CHECK-NEXT:    i64.shl $push5=, $pop23, $pop4106; CHECK-NEXT:    i8x16.eq $push6=, $1, $4107; CHECK-NEXT:    i8x16.bitmask $push7=, $pop6108; CHECK-NEXT:    i64.extend_i32_u $push8=, $pop7109; CHECK-NEXT:    i64.add $push9=, $pop5, $pop8110; CHECK-NEXT:    i64.shl $push10=, $pop24, $pop9111; CHECK-NEXT:    i8x16.eq $push11=, $2, $4112; CHECK-NEXT:    i8x16.bitmask $push12=, $pop11113; CHECK-NEXT:    i64.extend_i32_u $push13=, $pop12114; CHECK-NEXT:    i64.add $push14=, $pop10, $pop13115; CHECK-NEXT:    i64.shl $push15=, $pop3, $pop14116; CHECK-NEXT:    i8x16.eq $push16=, $3, $4117; CHECK-NEXT:    i8x16.bitmask $push17=, $pop16118; CHECK-NEXT:    i64.extend_i32_u $push18=, $pop17119; CHECK-NEXT:    i64.add $push19=, $pop15, $pop18120; CHECK-NEXT:    return $pop19121    %z = icmp eq <64 x i8> %x, splat (i8 64)122    %res = bitcast <64 x i1> %z to i64123    ret i64 %res124}125 126define i64 @optimize_illegal_bitcast_v64i4(<64 x i4> %x) {127; CHECK-LABEL: optimize_illegal_bitcast_v64i4:128; CHECK:         .functype optimize_illegal_bitcast_v64i4 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> (i64)129; CHECK-NEXT:  # %bb.0:130; CHECK-NEXT:    global.get $push355=, __stack_pointer131; CHECK-NEXT:    i64.const $push356=, 16132; CHECK-NEXT:    i64.sub $drop=, $pop355, $pop356133; CHECK-NEXT:    i8x16.splat $push273=, $0134; CHECK-NEXT:    i8x16.replace_lane $push274=, $pop273, 1, $1135; CHECK-NEXT:    i8x16.replace_lane $push275=, $pop274, 2, $2136; CHECK-NEXT:    i8x16.replace_lane $push276=, $pop275, 3, $3137; CHECK-NEXT:    i8x16.replace_lane $push277=, $pop276, 4, $4138; CHECK-NEXT:    i8x16.replace_lane $push278=, $pop277, 5, $5139; CHECK-NEXT:    i8x16.replace_lane $push279=, $pop278, 6, $6140; CHECK-NEXT:    i8x16.replace_lane $push280=, $pop279, 7, $7141; CHECK-NEXT:    i8x16.replace_lane $push281=, $pop280, 8, $8142; CHECK-NEXT:    i8x16.replace_lane $push282=, $pop281, 9, $9143; CHECK-NEXT:    i8x16.replace_lane $push283=, $pop282, 10, $10144; CHECK-NEXT:    i8x16.replace_lane $push284=, $pop283, 11, $11145; CHECK-NEXT:    i8x16.replace_lane $push285=, $pop284, 12, $12146; CHECK-NEXT:    i8x16.replace_lane $push286=, $pop285, 13, $13147; CHECK-NEXT:    i8x16.replace_lane $push287=, $pop286, 14, $14148; CHECK-NEXT:    i8x16.replace_lane $push288=, $pop287, 15, $15149; CHECK-NEXT:    v128.const $push460=, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15150; CHECK-NEXT:    local.tee $push459=, $64=, $pop460151; CHECK-NEXT:    v128.and $push289=, $pop288, $pop459152; CHECK-NEXT:    v128.const $push458=, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0153; CHECK-NEXT:    local.tee $push457=, $65=, $pop458154; CHECK-NEXT:    i8x16.eq $push456=, $pop289, $pop457155; CHECK-NEXT:    local.tee $push455=, $66=, $pop456156; CHECK-NEXT:    i8x16.extract_lane_u $push290=, $pop455, 0157; CHECK-NEXT:    i32.const $push18=, 1158; CHECK-NEXT:    i32.and $push291=, $pop290, $pop18159; CHECK-NEXT:    i8x16.extract_lane_u $push292=, $66, 1160; CHECK-NEXT:    i32.const $push454=, 1161; CHECK-NEXT:    i32.and $push293=, $pop292, $pop454162; CHECK-NEXT:    i32.const $push453=, 1163; CHECK-NEXT:    i32.shl $push294=, $pop293, $pop453164; CHECK-NEXT:    i32.or $push295=, $pop291, $pop294165; CHECK-NEXT:    i8x16.extract_lane_u $push296=, $66, 2166; CHECK-NEXT:    i32.const $push452=, 1167; CHECK-NEXT:    i32.and $push297=, $pop296, $pop452168; CHECK-NEXT:    i32.const $push121=, 2169; CHECK-NEXT:    i32.shl $push298=, $pop297, $pop121170; CHECK-NEXT:    i32.or $push299=, $pop295, $pop298171; CHECK-NEXT:    i8x16.extract_lane_u $push300=, $66, 3172; CHECK-NEXT:    i32.const $push451=, 1173; CHECK-NEXT:    i32.and $push301=, $pop300, $pop451174; CHECK-NEXT:    i32.const $push126=, 3175; CHECK-NEXT:    i32.shl $push302=, $pop301, $pop126176; CHECK-NEXT:    i32.or $push303=, $pop299, $pop302177; CHECK-NEXT:    i8x16.extract_lane_u $push304=, $66, 4178; CHECK-NEXT:    i32.const $push450=, 1179; CHECK-NEXT:    i32.and $push305=, $pop304, $pop450180; CHECK-NEXT:    i32.const $push131=, 4181; CHECK-NEXT:    i32.shl $push306=, $pop305, $pop131182; CHECK-NEXT:    i32.or $push307=, $pop303, $pop306183; CHECK-NEXT:    i8x16.extract_lane_u $push308=, $66, 5184; CHECK-NEXT:    i32.const $push449=, 1185; CHECK-NEXT:    i32.and $push309=, $pop308, $pop449186; CHECK-NEXT:    i32.const $push136=, 5187; CHECK-NEXT:    i32.shl $push310=, $pop309, $pop136188; CHECK-NEXT:    i32.or $push311=, $pop307, $pop310189; CHECK-NEXT:    i8x16.extract_lane_u $push312=, $66, 6190; CHECK-NEXT:    i32.const $push448=, 1191; CHECK-NEXT:    i32.and $push313=, $pop312, $pop448192; CHECK-NEXT:    i32.const $push141=, 6193; CHECK-NEXT:    i32.shl $push314=, $pop313, $pop141194; CHECK-NEXT:    i32.or $push315=, $pop311, $pop314195; CHECK-NEXT:    i8x16.extract_lane_u $push316=, $66, 7196; CHECK-NEXT:    i32.const $push447=, 1197; CHECK-NEXT:    i32.and $push317=, $pop316, $pop447198; CHECK-NEXT:    i32.const $push146=, 7199; CHECK-NEXT:    i32.shl $push318=, $pop317, $pop146200; CHECK-NEXT:    i32.or $push319=, $pop315, $pop318201; CHECK-NEXT:    i8x16.extract_lane_u $push320=, $66, 8202; CHECK-NEXT:    i32.const $push446=, 1203; CHECK-NEXT:    i32.and $push321=, $pop320, $pop446204; CHECK-NEXT:    i32.const $push151=, 8205; CHECK-NEXT:    i32.shl $push322=, $pop321, $pop151206; CHECK-NEXT:    i32.or $push323=, $pop319, $pop322207; CHECK-NEXT:    i8x16.extract_lane_u $push324=, $66, 9208; CHECK-NEXT:    i32.const $push445=, 1209; CHECK-NEXT:    i32.and $push325=, $pop324, $pop445210; CHECK-NEXT:    i32.const $push156=, 9211; CHECK-NEXT:    i32.shl $push326=, $pop325, $pop156212; CHECK-NEXT:    i32.or $push327=, $pop323, $pop326213; CHECK-NEXT:    i8x16.extract_lane_u $push328=, $66, 10214; CHECK-NEXT:    i32.const $push444=, 1215; CHECK-NEXT:    i32.and $push329=, $pop328, $pop444216; CHECK-NEXT:    i32.const $push161=, 10217; CHECK-NEXT:    i32.shl $push330=, $pop329, $pop161218; CHECK-NEXT:    i32.or $push331=, $pop327, $pop330219; CHECK-NEXT:    i8x16.extract_lane_u $push332=, $66, 11220; CHECK-NEXT:    i32.const $push443=, 1221; CHECK-NEXT:    i32.and $push333=, $pop332, $pop443222; CHECK-NEXT:    i32.const $push166=, 11223; CHECK-NEXT:    i32.shl $push334=, $pop333, $pop166224; CHECK-NEXT:    i32.or $push335=, $pop331, $pop334225; CHECK-NEXT:    i8x16.extract_lane_u $push336=, $66, 12226; CHECK-NEXT:    i32.const $push442=, 1227; CHECK-NEXT:    i32.and $push337=, $pop336, $pop442228; CHECK-NEXT:    i32.const $push171=, 12229; CHECK-NEXT:    i32.shl $push338=, $pop337, $pop171230; CHECK-NEXT:    i32.or $push339=, $pop335, $pop338231; CHECK-NEXT:    i8x16.extract_lane_u $push340=, $66, 13232; CHECK-NEXT:    i32.const $push441=, 1233; CHECK-NEXT:    i32.and $push341=, $pop340, $pop441234; CHECK-NEXT:    i32.const $push176=, 13235; CHECK-NEXT:    i32.shl $push342=, $pop341, $pop176236; CHECK-NEXT:    i32.or $push343=, $pop339, $pop342237; CHECK-NEXT:    i8x16.extract_lane_u $push344=, $66, 14238; CHECK-NEXT:    i32.const $push440=, 1239; CHECK-NEXT:    i32.and $push345=, $pop344, $pop440240; CHECK-NEXT:    i32.const $push181=, 14241; CHECK-NEXT:    i32.shl $push346=, $pop345, $pop181242; CHECK-NEXT:    i32.or $push347=, $pop343, $pop346243; CHECK-NEXT:    i8x16.extract_lane_u $push348=, $66, 15244; CHECK-NEXT:    i32.const $push185=, 15245; CHECK-NEXT:    i32.shl $push349=, $pop348, $pop185246; CHECK-NEXT:    i32.or $push350=, $pop347, $pop349247; CHECK-NEXT:    i32.const $push188=, 65535248; CHECK-NEXT:    i32.and $push351=, $pop350, $pop188249; CHECK-NEXT:    i8x16.splat $push194=, $16250; CHECK-NEXT:    i8x16.replace_lane $push195=, $pop194, 1, $17251; CHECK-NEXT:    i8x16.replace_lane $push196=, $pop195, 2, $18252; CHECK-NEXT:    i8x16.replace_lane $push197=, $pop196, 3, $19253; CHECK-NEXT:    i8x16.replace_lane $push198=, $pop197, 4, $20254; CHECK-NEXT:    i8x16.replace_lane $push199=, $pop198, 5, $21255; CHECK-NEXT:    i8x16.replace_lane $push200=, $pop199, 6, $22256; CHECK-NEXT:    i8x16.replace_lane $push201=, $pop200, 7, $23257; CHECK-NEXT:    i8x16.replace_lane $push202=, $pop201, 8, $24258; CHECK-NEXT:    i8x16.replace_lane $push203=, $pop202, 9, $25259; CHECK-NEXT:    i8x16.replace_lane $push204=, $pop203, 10, $26260; CHECK-NEXT:    i8x16.replace_lane $push205=, $pop204, 11, $27261; CHECK-NEXT:    i8x16.replace_lane $push206=, $pop205, 12, $28262; CHECK-NEXT:    i8x16.replace_lane $push207=, $pop206, 13, $29263; CHECK-NEXT:    i8x16.replace_lane $push208=, $pop207, 14, $30264; CHECK-NEXT:    i8x16.replace_lane $push209=, $pop208, 15, $31265; CHECK-NEXT:    v128.and $push210=, $pop209, $64266; CHECK-NEXT:    i8x16.eq $push439=, $pop210, $65267; CHECK-NEXT:    local.tee $push438=, $66=, $pop439268; CHECK-NEXT:    i8x16.extract_lane_u $push270=, $pop438, 15269; CHECK-NEXT:    i32.const $push93=, 31270; CHECK-NEXT:    i32.shl $push271=, $pop270, $pop93271; CHECK-NEXT:    i8x16.extract_lane_u $push266=, $66, 14272; CHECK-NEXT:    i32.const $push437=, 1273; CHECK-NEXT:    i32.and $push267=, $pop266, $pop437274; CHECK-NEXT:    i32.const $push89=, 30275; CHECK-NEXT:    i32.shl $push268=, $pop267, $pop89276; CHECK-NEXT:    i8x16.extract_lane_u $push262=, $66, 13277; CHECK-NEXT:    i32.const $push436=, 1278; CHECK-NEXT:    i32.and $push263=, $pop262, $pop436279; CHECK-NEXT:    i32.const $push84=, 29280; CHECK-NEXT:    i32.shl $push264=, $pop263, $pop84281; CHECK-NEXT:    i8x16.extract_lane_u $push258=, $66, 12282; CHECK-NEXT:    i32.const $push435=, 1283; CHECK-NEXT:    i32.and $push259=, $pop258, $pop435284; CHECK-NEXT:    i32.const $push79=, 28285; CHECK-NEXT:    i32.shl $push260=, $pop259, $pop79286; CHECK-NEXT:    i8x16.extract_lane_u $push254=, $66, 11287; CHECK-NEXT:    i32.const $push434=, 1288; CHECK-NEXT:    i32.and $push255=, $pop254, $pop434289; CHECK-NEXT:    i32.const $push74=, 27290; CHECK-NEXT:    i32.shl $push256=, $pop255, $pop74291; CHECK-NEXT:    i8x16.extract_lane_u $push250=, $66, 10292; CHECK-NEXT:    i32.const $push433=, 1293; CHECK-NEXT:    i32.and $push251=, $pop250, $pop433294; CHECK-NEXT:    i32.const $push69=, 26295; CHECK-NEXT:    i32.shl $push252=, $pop251, $pop69296; CHECK-NEXT:    i8x16.extract_lane_u $push246=, $66, 9297; CHECK-NEXT:    i32.const $push432=, 1298; CHECK-NEXT:    i32.and $push247=, $pop246, $pop432299; CHECK-NEXT:    i32.const $push64=, 25300; CHECK-NEXT:    i32.shl $push248=, $pop247, $pop64301; CHECK-NEXT:    i8x16.extract_lane_u $push242=, $66, 8302; CHECK-NEXT:    i32.const $push431=, 1303; CHECK-NEXT:    i32.and $push243=, $pop242, $pop431304; CHECK-NEXT:    i32.const $push59=, 24305; CHECK-NEXT:    i32.shl $push244=, $pop243, $pop59306; CHECK-NEXT:    i8x16.extract_lane_u $push238=, $66, 7307; CHECK-NEXT:    i32.const $push430=, 1308; CHECK-NEXT:    i32.and $push239=, $pop238, $pop430309; CHECK-NEXT:    i32.const $push54=, 23310; CHECK-NEXT:    i32.shl $push240=, $pop239, $pop54311; CHECK-NEXT:    i8x16.extract_lane_u $push234=, $66, 6312; CHECK-NEXT:    i32.const $push429=, 1313; CHECK-NEXT:    i32.and $push235=, $pop234, $pop429314; CHECK-NEXT:    i32.const $push49=, 22315; CHECK-NEXT:    i32.shl $push236=, $pop235, $pop49316; CHECK-NEXT:    i8x16.extract_lane_u $push230=, $66, 5317; CHECK-NEXT:    i32.const $push428=, 1318; CHECK-NEXT:    i32.and $push231=, $pop230, $pop428319; CHECK-NEXT:    i32.const $push44=, 21320; CHECK-NEXT:    i32.shl $push232=, $pop231, $pop44321; CHECK-NEXT:    i8x16.extract_lane_u $push226=, $66, 4322; CHECK-NEXT:    i32.const $push427=, 1323; CHECK-NEXT:    i32.and $push227=, $pop226, $pop427324; CHECK-NEXT:    i32.const $push39=, 20325; CHECK-NEXT:    i32.shl $push228=, $pop227, $pop39326; CHECK-NEXT:    i8x16.extract_lane_u $push222=, $66, 3327; CHECK-NEXT:    i32.const $push426=, 1328; CHECK-NEXT:    i32.and $push223=, $pop222, $pop426329; CHECK-NEXT:    i32.const $push34=, 19330; CHECK-NEXT:    i32.shl $push224=, $pop223, $pop34331; CHECK-NEXT:    i8x16.extract_lane_u $push218=, $66, 2332; CHECK-NEXT:    i32.const $push425=, 1333; CHECK-NEXT:    i32.and $push219=, $pop218, $pop425334; CHECK-NEXT:    i32.const $push29=, 18335; CHECK-NEXT:    i32.shl $push220=, $pop219, $pop29336; CHECK-NEXT:    i8x16.extract_lane_u $push214=, $66, 1337; CHECK-NEXT:    i32.const $push424=, 1338; CHECK-NEXT:    i32.and $push215=, $pop214, $pop424339; CHECK-NEXT:    i32.const $push24=, 17340; CHECK-NEXT:    i32.shl $push216=, $pop215, $pop24341; CHECK-NEXT:    i8x16.extract_lane_u $push211=, $66, 0342; CHECK-NEXT:    i32.const $push423=, 1343; CHECK-NEXT:    i32.and $push212=, $pop211, $pop423344; CHECK-NEXT:    i32.const $push20=, 16345; CHECK-NEXT:    i32.shl $push213=, $pop212, $pop20346; CHECK-NEXT:    i32.or $push217=, $pop216, $pop213347; CHECK-NEXT:    i32.or $push221=, $pop220, $pop217348; CHECK-NEXT:    i32.or $push225=, $pop224, $pop221349; CHECK-NEXT:    i32.or $push229=, $pop228, $pop225350; CHECK-NEXT:    i32.or $push233=, $pop232, $pop229351; CHECK-NEXT:    i32.or $push237=, $pop236, $pop233352; CHECK-NEXT:    i32.or $push241=, $pop240, $pop237353; CHECK-NEXT:    i32.or $push245=, $pop244, $pop241354; CHECK-NEXT:    i32.or $push249=, $pop248, $pop245355; CHECK-NEXT:    i32.or $push253=, $pop252, $pop249356; CHECK-NEXT:    i32.or $push257=, $pop256, $pop253357; CHECK-NEXT:    i32.or $push261=, $pop260, $pop257358; CHECK-NEXT:    i32.or $push265=, $pop264, $pop261359; CHECK-NEXT:    i32.or $push269=, $pop268, $pop265360; CHECK-NEXT:    i32.or $push272=, $pop271, $pop269361; CHECK-NEXT:    i32.or $push352=, $pop351, $pop272362; CHECK-NEXT:    i64.extend_i32_u $push353=, $pop352363; CHECK-NEXT:    i8x16.splat $push96=, $32364; CHECK-NEXT:    i8x16.replace_lane $push97=, $pop96, 1, $33365; CHECK-NEXT:    i8x16.replace_lane $push98=, $pop97, 2, $34366; CHECK-NEXT:    i8x16.replace_lane $push99=, $pop98, 3, $35367; CHECK-NEXT:    i8x16.replace_lane $push100=, $pop99, 4, $36368; CHECK-NEXT:    i8x16.replace_lane $push101=, $pop100, 5, $37369; CHECK-NEXT:    i8x16.replace_lane $push102=, $pop101, 6, $38370; CHECK-NEXT:    i8x16.replace_lane $push103=, $pop102, 7, $39371; CHECK-NEXT:    i8x16.replace_lane $push104=, $pop103, 8, $40372; CHECK-NEXT:    i8x16.replace_lane $push105=, $pop104, 9, $41373; CHECK-NEXT:    i8x16.replace_lane $push106=, $pop105, 10, $42374; CHECK-NEXT:    i8x16.replace_lane $push107=, $pop106, 11, $43375; CHECK-NEXT:    i8x16.replace_lane $push108=, $pop107, 12, $44376; CHECK-NEXT:    i8x16.replace_lane $push109=, $pop108, 13, $45377; CHECK-NEXT:    i8x16.replace_lane $push110=, $pop109, 14, $46378; CHECK-NEXT:    i8x16.replace_lane $push111=, $pop110, 15, $47379; CHECK-NEXT:    v128.and $push112=, $pop111, $64380; CHECK-NEXT:    i8x16.eq $push422=, $pop112, $65381; CHECK-NEXT:    local.tee $push421=, $66=, $pop422382; CHECK-NEXT:    i8x16.extract_lane_u $push113=, $pop421, 0383; CHECK-NEXT:    i32.const $push420=, 1384; CHECK-NEXT:    i32.and $push114=, $pop113, $pop420385; CHECK-NEXT:    i8x16.extract_lane_u $push115=, $66, 1386; CHECK-NEXT:    i32.const $push419=, 1387; CHECK-NEXT:    i32.and $push116=, $pop115, $pop419388; CHECK-NEXT:    i32.const $push418=, 1389; CHECK-NEXT:    i32.shl $push117=, $pop116, $pop418390; CHECK-NEXT:    i32.or $push118=, $pop114, $pop117391; CHECK-NEXT:    i8x16.extract_lane_u $push119=, $66, 2392; CHECK-NEXT:    i32.const $push417=, 1393; CHECK-NEXT:    i32.and $push120=, $pop119, $pop417394; CHECK-NEXT:    i32.const $push416=, 2395; CHECK-NEXT:    i32.shl $push122=, $pop120, $pop416396; CHECK-NEXT:    i32.or $push123=, $pop118, $pop122397; CHECK-NEXT:    i8x16.extract_lane_u $push124=, $66, 3398; CHECK-NEXT:    i32.const $push415=, 1399; CHECK-NEXT:    i32.and $push125=, $pop124, $pop415400; CHECK-NEXT:    i32.const $push414=, 3401; CHECK-NEXT:    i32.shl $push127=, $pop125, $pop414402; CHECK-NEXT:    i32.or $push128=, $pop123, $pop127403; CHECK-NEXT:    i8x16.extract_lane_u $push129=, $66, 4404; CHECK-NEXT:    i32.const $push413=, 1405; CHECK-NEXT:    i32.and $push130=, $pop129, $pop413406; CHECK-NEXT:    i32.const $push412=, 4407; CHECK-NEXT:    i32.shl $push132=, $pop130, $pop412408; CHECK-NEXT:    i32.or $push133=, $pop128, $pop132409; CHECK-NEXT:    i8x16.extract_lane_u $push134=, $66, 5410; CHECK-NEXT:    i32.const $push411=, 1411; CHECK-NEXT:    i32.and $push135=, $pop134, $pop411412; CHECK-NEXT:    i32.const $push410=, 5413; CHECK-NEXT:    i32.shl $push137=, $pop135, $pop410414; CHECK-NEXT:    i32.or $push138=, $pop133, $pop137415; CHECK-NEXT:    i8x16.extract_lane_u $push139=, $66, 6416; CHECK-NEXT:    i32.const $push409=, 1417; CHECK-NEXT:    i32.and $push140=, $pop139, $pop409418; CHECK-NEXT:    i32.const $push408=, 6419; CHECK-NEXT:    i32.shl $push142=, $pop140, $pop408420; CHECK-NEXT:    i32.or $push143=, $pop138, $pop142421; CHECK-NEXT:    i8x16.extract_lane_u $push144=, $66, 7422; CHECK-NEXT:    i32.const $push407=, 1423; CHECK-NEXT:    i32.and $push145=, $pop144, $pop407424; CHECK-NEXT:    i32.const $push406=, 7425; CHECK-NEXT:    i32.shl $push147=, $pop145, $pop406426; CHECK-NEXT:    i32.or $push148=, $pop143, $pop147427; CHECK-NEXT:    i8x16.extract_lane_u $push149=, $66, 8428; CHECK-NEXT:    i32.const $push405=, 1429; CHECK-NEXT:    i32.and $push150=, $pop149, $pop405430; CHECK-NEXT:    i32.const $push404=, 8431; CHECK-NEXT:    i32.shl $push152=, $pop150, $pop404432; CHECK-NEXT:    i32.or $push153=, $pop148, $pop152433; CHECK-NEXT:    i8x16.extract_lane_u $push154=, $66, 9434; CHECK-NEXT:    i32.const $push403=, 1435; CHECK-NEXT:    i32.and $push155=, $pop154, $pop403436; CHECK-NEXT:    i32.const $push402=, 9437; CHECK-NEXT:    i32.shl $push157=, $pop155, $pop402438; CHECK-NEXT:    i32.or $push158=, $pop153, $pop157439; CHECK-NEXT:    i8x16.extract_lane_u $push159=, $66, 10440; CHECK-NEXT:    i32.const $push401=, 1441; CHECK-NEXT:    i32.and $push160=, $pop159, $pop401442; CHECK-NEXT:    i32.const $push400=, 10443; CHECK-NEXT:    i32.shl $push162=, $pop160, $pop400444; CHECK-NEXT:    i32.or $push163=, $pop158, $pop162445; CHECK-NEXT:    i8x16.extract_lane_u $push164=, $66, 11446; CHECK-NEXT:    i32.const $push399=, 1447; CHECK-NEXT:    i32.and $push165=, $pop164, $pop399448; CHECK-NEXT:    i32.const $push398=, 11449; CHECK-NEXT:    i32.shl $push167=, $pop165, $pop398450; CHECK-NEXT:    i32.or $push168=, $pop163, $pop167451; CHECK-NEXT:    i8x16.extract_lane_u $push169=, $66, 12452; CHECK-NEXT:    i32.const $push397=, 1453; CHECK-NEXT:    i32.and $push170=, $pop169, $pop397454; CHECK-NEXT:    i32.const $push396=, 12455; CHECK-NEXT:    i32.shl $push172=, $pop170, $pop396456; CHECK-NEXT:    i32.or $push173=, $pop168, $pop172457; CHECK-NEXT:    i8x16.extract_lane_u $push174=, $66, 13458; CHECK-NEXT:    i32.const $push395=, 1459; CHECK-NEXT:    i32.and $push175=, $pop174, $pop395460; CHECK-NEXT:    i32.const $push394=, 13461; CHECK-NEXT:    i32.shl $push177=, $pop175, $pop394462; CHECK-NEXT:    i32.or $push178=, $pop173, $pop177463; CHECK-NEXT:    i8x16.extract_lane_u $push179=, $66, 14464; CHECK-NEXT:    i32.const $push393=, 1465; CHECK-NEXT:    i32.and $push180=, $pop179, $pop393466; CHECK-NEXT:    i32.const $push392=, 14467; CHECK-NEXT:    i32.shl $push182=, $pop180, $pop392468; CHECK-NEXT:    i32.or $push183=, $pop178, $pop182469; CHECK-NEXT:    i8x16.extract_lane_u $push184=, $66, 15470; CHECK-NEXT:    i32.const $push391=, 15471; CHECK-NEXT:    i32.shl $push186=, $pop184, $pop391472; CHECK-NEXT:    i32.or $push187=, $pop183, $pop186473; CHECK-NEXT:    i32.const $push390=, 65535474; CHECK-NEXT:    i32.and $push189=, $pop187, $pop390475; CHECK-NEXT:    i8x16.splat $push0=, $48476; CHECK-NEXT:    i8x16.replace_lane $push1=, $pop0, 1, $49477; CHECK-NEXT:    i8x16.replace_lane $push2=, $pop1, 2, $50478; CHECK-NEXT:    i8x16.replace_lane $push3=, $pop2, 3, $51479; CHECK-NEXT:    i8x16.replace_lane $push4=, $pop3, 4, $52480; CHECK-NEXT:    i8x16.replace_lane $push5=, $pop4, 5, $53481; CHECK-NEXT:    i8x16.replace_lane $push6=, $pop5, 6, $54482; CHECK-NEXT:    i8x16.replace_lane $push7=, $pop6, 7, $55483; CHECK-NEXT:    i8x16.replace_lane $push8=, $pop7, 8, $56484; CHECK-NEXT:    i8x16.replace_lane $push9=, $pop8, 9, $57485; CHECK-NEXT:    i8x16.replace_lane $push10=, $pop9, 10, $58486; CHECK-NEXT:    i8x16.replace_lane $push11=, $pop10, 11, $59487; CHECK-NEXT:    i8x16.replace_lane $push12=, $pop11, 12, $60488; CHECK-NEXT:    i8x16.replace_lane $push13=, $pop12, 13, $61489; CHECK-NEXT:    i8x16.replace_lane $push14=, $pop13, 14, $62490; CHECK-NEXT:    i8x16.replace_lane $push15=, $pop14, 15, $63491; CHECK-NEXT:    v128.and $push16=, $pop15, $64492; CHECK-NEXT:    i8x16.eq $push389=, $pop16, $65493; CHECK-NEXT:    local.tee $push388=, $66=, $pop389494; CHECK-NEXT:    i8x16.extract_lane_u $push92=, $pop388, 15495; CHECK-NEXT:    i32.const $push387=, 31496; CHECK-NEXT:    i32.shl $push94=, $pop92, $pop387497; CHECK-NEXT:    i8x16.extract_lane_u $push87=, $66, 14498; CHECK-NEXT:    i32.const $push386=, 1499; CHECK-NEXT:    i32.and $push88=, $pop87, $pop386500; CHECK-NEXT:    i32.const $push385=, 30501; CHECK-NEXT:    i32.shl $push90=, $pop88, $pop385502; CHECK-NEXT:    i8x16.extract_lane_u $push82=, $66, 13503; CHECK-NEXT:    i32.const $push384=, 1504; CHECK-NEXT:    i32.and $push83=, $pop82, $pop384505; CHECK-NEXT:    i32.const $push383=, 29506; CHECK-NEXT:    i32.shl $push85=, $pop83, $pop383507; CHECK-NEXT:    i8x16.extract_lane_u $push77=, $66, 12508; CHECK-NEXT:    i32.const $push382=, 1509; CHECK-NEXT:    i32.and $push78=, $pop77, $pop382510; CHECK-NEXT:    i32.const $push381=, 28511; CHECK-NEXT:    i32.shl $push80=, $pop78, $pop381512; CHECK-NEXT:    i8x16.extract_lane_u $push72=, $66, 11513; CHECK-NEXT:    i32.const $push380=, 1514; CHECK-NEXT:    i32.and $push73=, $pop72, $pop380515; CHECK-NEXT:    i32.const $push379=, 27516; CHECK-NEXT:    i32.shl $push75=, $pop73, $pop379517; CHECK-NEXT:    i8x16.extract_lane_u $push67=, $66, 10518; CHECK-NEXT:    i32.const $push378=, 1519; CHECK-NEXT:    i32.and $push68=, $pop67, $pop378520; CHECK-NEXT:    i32.const $push377=, 26521; CHECK-NEXT:    i32.shl $push70=, $pop68, $pop377522; CHECK-NEXT:    i8x16.extract_lane_u $push62=, $66, 9523; CHECK-NEXT:    i32.const $push376=, 1524; CHECK-NEXT:    i32.and $push63=, $pop62, $pop376525; CHECK-NEXT:    i32.const $push375=, 25526; CHECK-NEXT:    i32.shl $push65=, $pop63, $pop375527; CHECK-NEXT:    i8x16.extract_lane_u $push57=, $66, 8528; CHECK-NEXT:    i32.const $push374=, 1529; CHECK-NEXT:    i32.and $push58=, $pop57, $pop374530; CHECK-NEXT:    i32.const $push373=, 24531; CHECK-NEXT:    i32.shl $push60=, $pop58, $pop373532; CHECK-NEXT:    i8x16.extract_lane_u $push52=, $66, 7533; CHECK-NEXT:    i32.const $push372=, 1534; CHECK-NEXT:    i32.and $push53=, $pop52, $pop372535; CHECK-NEXT:    i32.const $push371=, 23536; CHECK-NEXT:    i32.shl $push55=, $pop53, $pop371537; CHECK-NEXT:    i8x16.extract_lane_u $push47=, $66, 6538; CHECK-NEXT:    i32.const $push370=, 1539; CHECK-NEXT:    i32.and $push48=, $pop47, $pop370540; CHECK-NEXT:    i32.const $push369=, 22541; CHECK-NEXT:    i32.shl $push50=, $pop48, $pop369542; CHECK-NEXT:    i8x16.extract_lane_u $push42=, $66, 5543; CHECK-NEXT:    i32.const $push368=, 1544; CHECK-NEXT:    i32.and $push43=, $pop42, $pop368545; CHECK-NEXT:    i32.const $push367=, 21546; CHECK-NEXT:    i32.shl $push45=, $pop43, $pop367547; CHECK-NEXT:    i8x16.extract_lane_u $push37=, $66, 4548; CHECK-NEXT:    i32.const $push366=, 1549; CHECK-NEXT:    i32.and $push38=, $pop37, $pop366550; CHECK-NEXT:    i32.const $push365=, 20551; CHECK-NEXT:    i32.shl $push40=, $pop38, $pop365552; CHECK-NEXT:    i8x16.extract_lane_u $push32=, $66, 3553; CHECK-NEXT:    i32.const $push364=, 1554; CHECK-NEXT:    i32.and $push33=, $pop32, $pop364555; CHECK-NEXT:    i32.const $push363=, 19556; CHECK-NEXT:    i32.shl $push35=, $pop33, $pop363557; CHECK-NEXT:    i8x16.extract_lane_u $push27=, $66, 2558; CHECK-NEXT:    i32.const $push362=, 1559; CHECK-NEXT:    i32.and $push28=, $pop27, $pop362560; CHECK-NEXT:    i32.const $push361=, 18561; CHECK-NEXT:    i32.shl $push30=, $pop28, $pop361562; CHECK-NEXT:    i8x16.extract_lane_u $push22=, $66, 1563; CHECK-NEXT:    i32.const $push360=, 1564; CHECK-NEXT:    i32.and $push23=, $pop22, $pop360565; CHECK-NEXT:    i32.const $push359=, 17566; CHECK-NEXT:    i32.shl $push25=, $pop23, $pop359567; CHECK-NEXT:    i8x16.extract_lane_u $push17=, $66, 0568; CHECK-NEXT:    i32.const $push358=, 1569; CHECK-NEXT:    i32.and $push19=, $pop17, $pop358570; CHECK-NEXT:    i32.const $push357=, 16571; CHECK-NEXT:    i32.shl $push21=, $pop19, $pop357572; CHECK-NEXT:    i32.or $push26=, $pop25, $pop21573; CHECK-NEXT:    i32.or $push31=, $pop30, $pop26574; CHECK-NEXT:    i32.or $push36=, $pop35, $pop31575; CHECK-NEXT:    i32.or $push41=, $pop40, $pop36576; CHECK-NEXT:    i32.or $push46=, $pop45, $pop41577; CHECK-NEXT:    i32.or $push51=, $pop50, $pop46578; CHECK-NEXT:    i32.or $push56=, $pop55, $pop51579; CHECK-NEXT:    i32.or $push61=, $pop60, $pop56580; CHECK-NEXT:    i32.or $push66=, $pop65, $pop61581; CHECK-NEXT:    i32.or $push71=, $pop70, $pop66582; CHECK-NEXT:    i32.or $push76=, $pop75, $pop71583; CHECK-NEXT:    i32.or $push81=, $pop80, $pop76584; CHECK-NEXT:    i32.or $push86=, $pop85, $pop81585; CHECK-NEXT:    i32.or $push91=, $pop90, $pop86586; CHECK-NEXT:    i32.or $push95=, $pop94, $pop91587; CHECK-NEXT:    i32.or $push190=, $pop189, $pop95588; CHECK-NEXT:    i64.extend_i32_u $push191=, $pop190589; CHECK-NEXT:    i64.const $push192=, 32590; CHECK-NEXT:    i64.shl $push193=, $pop191, $pop192591; CHECK-NEXT:    i64.or $push354=, $pop353, $pop193592; CHECK-NEXT:    return $pop354593    %z = icmp eq <64 x i4> %x, splat (i4 64)594    %res = bitcast <64 x i1> %z to i64595    ret i64 %res596}597