brintos

brintos / llvm-project-archived public Read only

0
0
Text · 696.4 KiB · 60b4a83 Raw
14747 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -verify-machineinstrs -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -mattr=+simd128 | FileCheck %s --check-prefix=SIMD1283; RUN: llc < %s -verify-machineinstrs -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -mattr=+simd128 -fast-isel | FileCheck %s --check-prefix=SIMD128-FAST4; RUN: llc < %s -verify-machineinstrs -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s --check-prefix=NO-SIMD1285; RUN: llc < %s -verify-machineinstrs -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -fast-isel | FileCheck %s --check-prefix=NO-SIMD128-FAST6 7; check that a non-test run (including explicit locals pass) at least finishes8; RUN: llc < %s -O0 -mattr=+simd1289; RUN: llc < %s -O2 -mattr=+simd12810 11; Test that basic SIMD128 arithmetic operations assemble as expected.12 13target triple = "wasm32-unknown-unknown"14 15; ==============================================================================16; 16 x i817; ==============================================================================18define <16 x i8> @add_v16i8(<16 x i8> %x, <16 x i8> %y) {19; SIMD128-LABEL: add_v16i8:20; SIMD128:         .functype add_v16i8 (v128, v128) -> (v128)21; SIMD128-NEXT:  # %bb.0:22; SIMD128-NEXT:    i8x16.add $push0=, $0, $123; SIMD128-NEXT:    return $pop024;25; SIMD128-FAST-LABEL: add_v16i8:26; SIMD128-FAST:         .functype add_v16i8 (v128, v128) -> (v128)27; SIMD128-FAST-NEXT:  # %bb.0:28; SIMD128-FAST-NEXT:    i8x16.add $push0=, $0, $129; SIMD128-FAST-NEXT:    return $pop030;31; NO-SIMD128-LABEL: add_v16i8:32; NO-SIMD128:         .functype add_v16i8 (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) -> ()33; NO-SIMD128-NEXT:  # %bb.0:34; NO-SIMD128-NEXT:    i32.add $push0=, $16, $3235; NO-SIMD128-NEXT:    i32.store8 15($0), $pop036; NO-SIMD128-NEXT:    i32.add $push1=, $15, $3137; NO-SIMD128-NEXT:    i32.store8 14($0), $pop138; NO-SIMD128-NEXT:    i32.add $push2=, $14, $3039; NO-SIMD128-NEXT:    i32.store8 13($0), $pop240; NO-SIMD128-NEXT:    i32.add $push3=, $13, $2941; NO-SIMD128-NEXT:    i32.store8 12($0), $pop342; NO-SIMD128-NEXT:    i32.add $push4=, $12, $2843; NO-SIMD128-NEXT:    i32.store8 11($0), $pop444; NO-SIMD128-NEXT:    i32.add $push5=, $11, $2745; NO-SIMD128-NEXT:    i32.store8 10($0), $pop546; NO-SIMD128-NEXT:    i32.add $push6=, $10, $2647; NO-SIMD128-NEXT:    i32.store8 9($0), $pop648; NO-SIMD128-NEXT:    i32.add $push7=, $9, $2549; NO-SIMD128-NEXT:    i32.store8 8($0), $pop750; NO-SIMD128-NEXT:    i32.add $push8=, $8, $2451; NO-SIMD128-NEXT:    i32.store8 7($0), $pop852; NO-SIMD128-NEXT:    i32.add $push9=, $7, $2353; NO-SIMD128-NEXT:    i32.store8 6($0), $pop954; NO-SIMD128-NEXT:    i32.add $push10=, $6, $2255; NO-SIMD128-NEXT:    i32.store8 5($0), $pop1056; NO-SIMD128-NEXT:    i32.add $push11=, $5, $2157; NO-SIMD128-NEXT:    i32.store8 4($0), $pop1158; NO-SIMD128-NEXT:    i32.add $push12=, $4, $2059; NO-SIMD128-NEXT:    i32.store8 3($0), $pop1260; NO-SIMD128-NEXT:    i32.add $push13=, $3, $1961; NO-SIMD128-NEXT:    i32.store8 2($0), $pop1362; NO-SIMD128-NEXT:    i32.add $push14=, $2, $1863; NO-SIMD128-NEXT:    i32.store8 1($0), $pop1464; NO-SIMD128-NEXT:    i32.add $push15=, $1, $1765; NO-SIMD128-NEXT:    i32.store8 0($0), $pop1566; NO-SIMD128-NEXT:    return67;68; NO-SIMD128-FAST-LABEL: add_v16i8:69; NO-SIMD128-FAST:         .functype add_v16i8 (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) -> ()70; NO-SIMD128-FAST-NEXT:  # %bb.0:71; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $1772; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop073; NO-SIMD128-FAST-NEXT:    i32.add $push1=, $2, $1874; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop175; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $3, $1976; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop277; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $4, $2078; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop379; NO-SIMD128-FAST-NEXT:    i32.add $push4=, $5, $2180; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop481; NO-SIMD128-FAST-NEXT:    i32.add $push5=, $6, $2282; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop583; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $7, $2384; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop685; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $8, $2486; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop787; NO-SIMD128-FAST-NEXT:    i32.add $push8=, $9, $2588; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop889; NO-SIMD128-FAST-NEXT:    i32.add $push9=, $10, $2690; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop991; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $11, $2792; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop1093; NO-SIMD128-FAST-NEXT:    i32.add $push11=, $12, $2894; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop1195; NO-SIMD128-FAST-NEXT:    i32.add $push12=, $13, $2996; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop1297; NO-SIMD128-FAST-NEXT:    i32.add $push13=, $14, $3098; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop1399; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $15, $31100; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop14101; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $16, $32102; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop15103; NO-SIMD128-FAST-NEXT:    return104  %a = add <16 x i8> %x, %y105  ret <16 x i8> %a106}107 108define <16 x i8> @sub_v16i8(<16 x i8> %x, <16 x i8> %y) {109; SIMD128-LABEL: sub_v16i8:110; SIMD128:         .functype sub_v16i8 (v128, v128) -> (v128)111; SIMD128-NEXT:  # %bb.0:112; SIMD128-NEXT:    i8x16.sub $push0=, $0, $1113; SIMD128-NEXT:    return $pop0114;115; SIMD128-FAST-LABEL: sub_v16i8:116; SIMD128-FAST:         .functype sub_v16i8 (v128, v128) -> (v128)117; SIMD128-FAST-NEXT:  # %bb.0:118; SIMD128-FAST-NEXT:    i8x16.sub $push0=, $0, $1119; SIMD128-FAST-NEXT:    return $pop0120;121; NO-SIMD128-LABEL: sub_v16i8:122; NO-SIMD128:         .functype sub_v16i8 (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) -> ()123; NO-SIMD128-NEXT:  # %bb.0:124; NO-SIMD128-NEXT:    i32.sub $push0=, $16, $32125; NO-SIMD128-NEXT:    i32.store8 15($0), $pop0126; NO-SIMD128-NEXT:    i32.sub $push1=, $15, $31127; NO-SIMD128-NEXT:    i32.store8 14($0), $pop1128; NO-SIMD128-NEXT:    i32.sub $push2=, $14, $30129; NO-SIMD128-NEXT:    i32.store8 13($0), $pop2130; NO-SIMD128-NEXT:    i32.sub $push3=, $13, $29131; NO-SIMD128-NEXT:    i32.store8 12($0), $pop3132; NO-SIMD128-NEXT:    i32.sub $push4=, $12, $28133; NO-SIMD128-NEXT:    i32.store8 11($0), $pop4134; NO-SIMD128-NEXT:    i32.sub $push5=, $11, $27135; NO-SIMD128-NEXT:    i32.store8 10($0), $pop5136; NO-SIMD128-NEXT:    i32.sub $push6=, $10, $26137; NO-SIMD128-NEXT:    i32.store8 9($0), $pop6138; NO-SIMD128-NEXT:    i32.sub $push7=, $9, $25139; NO-SIMD128-NEXT:    i32.store8 8($0), $pop7140; NO-SIMD128-NEXT:    i32.sub $push8=, $8, $24141; NO-SIMD128-NEXT:    i32.store8 7($0), $pop8142; NO-SIMD128-NEXT:    i32.sub $push9=, $7, $23143; NO-SIMD128-NEXT:    i32.store8 6($0), $pop9144; NO-SIMD128-NEXT:    i32.sub $push10=, $6, $22145; NO-SIMD128-NEXT:    i32.store8 5($0), $pop10146; NO-SIMD128-NEXT:    i32.sub $push11=, $5, $21147; NO-SIMD128-NEXT:    i32.store8 4($0), $pop11148; NO-SIMD128-NEXT:    i32.sub $push12=, $4, $20149; NO-SIMD128-NEXT:    i32.store8 3($0), $pop12150; NO-SIMD128-NEXT:    i32.sub $push13=, $3, $19151; NO-SIMD128-NEXT:    i32.store8 2($0), $pop13152; NO-SIMD128-NEXT:    i32.sub $push14=, $2, $18153; NO-SIMD128-NEXT:    i32.store8 1($0), $pop14154; NO-SIMD128-NEXT:    i32.sub $push15=, $1, $17155; NO-SIMD128-NEXT:    i32.store8 0($0), $pop15156; NO-SIMD128-NEXT:    return157;158; NO-SIMD128-FAST-LABEL: sub_v16i8:159; NO-SIMD128-FAST:         .functype sub_v16i8 (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) -> ()160; NO-SIMD128-FAST-NEXT:  # %bb.0:161; NO-SIMD128-FAST-NEXT:    i32.sub $push0=, $1, $17162; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop0163; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $2, $18164; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop1165; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $3, $19166; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop2167; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $4, $20168; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop3169; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $5, $21170; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop4171; NO-SIMD128-FAST-NEXT:    i32.sub $push5=, $6, $22172; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop5173; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $7, $23174; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop6175; NO-SIMD128-FAST-NEXT:    i32.sub $push7=, $8, $24176; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop7177; NO-SIMD128-FAST-NEXT:    i32.sub $push8=, $9, $25178; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop8179; NO-SIMD128-FAST-NEXT:    i32.sub $push9=, $10, $26180; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop9181; NO-SIMD128-FAST-NEXT:    i32.sub $push10=, $11, $27182; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop10183; NO-SIMD128-FAST-NEXT:    i32.sub $push11=, $12, $28184; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop11185; NO-SIMD128-FAST-NEXT:    i32.sub $push12=, $13, $29186; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop12187; NO-SIMD128-FAST-NEXT:    i32.sub $push13=, $14, $30188; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop13189; NO-SIMD128-FAST-NEXT:    i32.sub $push14=, $15, $31190; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop14191; NO-SIMD128-FAST-NEXT:    i32.sub $push15=, $16, $32192; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop15193; NO-SIMD128-FAST-NEXT:    return194  %a = sub <16 x i8> %x, %y195  ret <16 x i8> %a196}197 198define <16 x i8> @mul_v16i8(<16 x i8> %x, <16 x i8> %y) {199; SIMD128-LABEL: mul_v16i8:200; SIMD128:         .functype mul_v16i8 (v128, v128) -> (v128)201; SIMD128-NEXT:  # %bb.0:202; SIMD128-NEXT:    i16x8.extmul_low_i8x16_u $push1=, $0, $1203; SIMD128-NEXT:    i16x8.extmul_high_i8x16_u $push0=, $0, $1204; SIMD128-NEXT:    i8x16.shuffle $push2=, $pop1, $pop0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30205; SIMD128-NEXT:    return $pop2206;207; SIMD128-FAST-LABEL: mul_v16i8:208; SIMD128-FAST:         .functype mul_v16i8 (v128, v128) -> (v128)209; SIMD128-FAST-NEXT:  # %bb.0:210; SIMD128-FAST-NEXT:    i16x8.extmul_low_i8x16_u $push2=, $0, $1211; SIMD128-FAST-NEXT:    i16x8.extmul_high_i8x16_u $push1=, $0, $1212; SIMD128-FAST-NEXT:    i8x16.shuffle $push0=, $pop2, $pop1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30213; SIMD128-FAST-NEXT:    return $pop0214;215; NO-SIMD128-LABEL: mul_v16i8:216; NO-SIMD128:         .functype mul_v16i8 (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) -> ()217; NO-SIMD128-NEXT:  # %bb.0:218; NO-SIMD128-NEXT:    i32.mul $push0=, $16, $32219; NO-SIMD128-NEXT:    i32.store8 15($0), $pop0220; NO-SIMD128-NEXT:    i32.mul $push1=, $15, $31221; NO-SIMD128-NEXT:    i32.store8 14($0), $pop1222; NO-SIMD128-NEXT:    i32.mul $push2=, $14, $30223; NO-SIMD128-NEXT:    i32.store8 13($0), $pop2224; NO-SIMD128-NEXT:    i32.mul $push3=, $13, $29225; NO-SIMD128-NEXT:    i32.store8 12($0), $pop3226; NO-SIMD128-NEXT:    i32.mul $push4=, $12, $28227; NO-SIMD128-NEXT:    i32.store8 11($0), $pop4228; NO-SIMD128-NEXT:    i32.mul $push5=, $11, $27229; NO-SIMD128-NEXT:    i32.store8 10($0), $pop5230; NO-SIMD128-NEXT:    i32.mul $push6=, $10, $26231; NO-SIMD128-NEXT:    i32.store8 9($0), $pop6232; NO-SIMD128-NEXT:    i32.mul $push7=, $9, $25233; NO-SIMD128-NEXT:    i32.store8 8($0), $pop7234; NO-SIMD128-NEXT:    i32.mul $push8=, $8, $24235; NO-SIMD128-NEXT:    i32.store8 7($0), $pop8236; NO-SIMD128-NEXT:    i32.mul $push9=, $7, $23237; NO-SIMD128-NEXT:    i32.store8 6($0), $pop9238; NO-SIMD128-NEXT:    i32.mul $push10=, $6, $22239; NO-SIMD128-NEXT:    i32.store8 5($0), $pop10240; NO-SIMD128-NEXT:    i32.mul $push11=, $5, $21241; NO-SIMD128-NEXT:    i32.store8 4($0), $pop11242; NO-SIMD128-NEXT:    i32.mul $push12=, $4, $20243; NO-SIMD128-NEXT:    i32.store8 3($0), $pop12244; NO-SIMD128-NEXT:    i32.mul $push13=, $3, $19245; NO-SIMD128-NEXT:    i32.store8 2($0), $pop13246; NO-SIMD128-NEXT:    i32.mul $push14=, $2, $18247; NO-SIMD128-NEXT:    i32.store8 1($0), $pop14248; NO-SIMD128-NEXT:    i32.mul $push15=, $1, $17249; NO-SIMD128-NEXT:    i32.store8 0($0), $pop15250; NO-SIMD128-NEXT:    return251;252; NO-SIMD128-FAST-LABEL: mul_v16i8:253; NO-SIMD128-FAST:         .functype mul_v16i8 (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) -> ()254; NO-SIMD128-FAST-NEXT:  # %bb.0:255; NO-SIMD128-FAST-NEXT:    i32.mul $push0=, $1, $17256; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop0257; NO-SIMD128-FAST-NEXT:    i32.mul $push1=, $2, $18258; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop1259; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $3, $19260; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop2261; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $4, $20262; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop3263; NO-SIMD128-FAST-NEXT:    i32.mul $push4=, $5, $21264; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop4265; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $6, $22266; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop5267; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $7, $23268; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop6269; NO-SIMD128-FAST-NEXT:    i32.mul $push7=, $8, $24270; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop7271; NO-SIMD128-FAST-NEXT:    i32.mul $push8=, $9, $25272; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop8273; NO-SIMD128-FAST-NEXT:    i32.mul $push9=, $10, $26274; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop9275; NO-SIMD128-FAST-NEXT:    i32.mul $push10=, $11, $27276; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop10277; NO-SIMD128-FAST-NEXT:    i32.mul $push11=, $12, $28278; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop11279; NO-SIMD128-FAST-NEXT:    i32.mul $push12=, $13, $29280; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop12281; NO-SIMD128-FAST-NEXT:    i32.mul $push13=, $14, $30282; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop13283; NO-SIMD128-FAST-NEXT:    i32.mul $push14=, $15, $31284; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop14285; NO-SIMD128-FAST-NEXT:    i32.mul $push15=, $16, $32286; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop15287; NO-SIMD128-FAST-NEXT:    return288  %a = mul <16 x i8> %x, %y289  ret <16 x i8> %a290}291 292define <16 x i8> @min_s_v16i8(<16 x i8> %x, <16 x i8> %y) {293; SIMD128-LABEL: min_s_v16i8:294; SIMD128:         .functype min_s_v16i8 (v128, v128) -> (v128)295; SIMD128-NEXT:  # %bb.0:296; SIMD128-NEXT:    i8x16.min_s $push0=, $0, $1297; SIMD128-NEXT:    return $pop0298;299; SIMD128-FAST-LABEL: min_s_v16i8:300; SIMD128-FAST:         .functype min_s_v16i8 (v128, v128) -> (v128)301; SIMD128-FAST-NEXT:  # %bb.0:302; SIMD128-FAST-NEXT:    i8x16.min_s $push0=, $0, $1303; SIMD128-FAST-NEXT:    return $pop0304;305; NO-SIMD128-LABEL: min_s_v16i8:306; NO-SIMD128:         .functype min_s_v16i8 (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) -> ()307; NO-SIMD128-NEXT:  # %bb.0:308; NO-SIMD128-NEXT:    i32.extend8_s $push1=, $16309; NO-SIMD128-NEXT:    i32.extend8_s $push0=, $32310; NO-SIMD128-NEXT:    i32.lt_s $push2=, $pop1, $pop0311; NO-SIMD128-NEXT:    i32.select $push3=, $16, $32, $pop2312; NO-SIMD128-NEXT:    i32.store8 15($0), $pop3313; NO-SIMD128-NEXT:    i32.extend8_s $push5=, $15314; NO-SIMD128-NEXT:    i32.extend8_s $push4=, $31315; NO-SIMD128-NEXT:    i32.lt_s $push6=, $pop5, $pop4316; NO-SIMD128-NEXT:    i32.select $push7=, $15, $31, $pop6317; NO-SIMD128-NEXT:    i32.store8 14($0), $pop7318; NO-SIMD128-NEXT:    i32.extend8_s $push9=, $14319; NO-SIMD128-NEXT:    i32.extend8_s $push8=, $30320; NO-SIMD128-NEXT:    i32.lt_s $push10=, $pop9, $pop8321; NO-SIMD128-NEXT:    i32.select $push11=, $14, $30, $pop10322; NO-SIMD128-NEXT:    i32.store8 13($0), $pop11323; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $13324; NO-SIMD128-NEXT:    i32.extend8_s $push12=, $29325; NO-SIMD128-NEXT:    i32.lt_s $push14=, $pop13, $pop12326; NO-SIMD128-NEXT:    i32.select $push15=, $13, $29, $pop14327; NO-SIMD128-NEXT:    i32.store8 12($0), $pop15328; NO-SIMD128-NEXT:    i32.extend8_s $push17=, $12329; NO-SIMD128-NEXT:    i32.extend8_s $push16=, $28330; NO-SIMD128-NEXT:    i32.lt_s $push18=, $pop17, $pop16331; NO-SIMD128-NEXT:    i32.select $push19=, $12, $28, $pop18332; NO-SIMD128-NEXT:    i32.store8 11($0), $pop19333; NO-SIMD128-NEXT:    i32.extend8_s $push21=, $11334; NO-SIMD128-NEXT:    i32.extend8_s $push20=, $27335; NO-SIMD128-NEXT:    i32.lt_s $push22=, $pop21, $pop20336; NO-SIMD128-NEXT:    i32.select $push23=, $11, $27, $pop22337; NO-SIMD128-NEXT:    i32.store8 10($0), $pop23338; NO-SIMD128-NEXT:    i32.extend8_s $push25=, $10339; NO-SIMD128-NEXT:    i32.extend8_s $push24=, $26340; NO-SIMD128-NEXT:    i32.lt_s $push26=, $pop25, $pop24341; NO-SIMD128-NEXT:    i32.select $push27=, $10, $26, $pop26342; NO-SIMD128-NEXT:    i32.store8 9($0), $pop27343; NO-SIMD128-NEXT:    i32.extend8_s $push29=, $9344; NO-SIMD128-NEXT:    i32.extend8_s $push28=, $25345; NO-SIMD128-NEXT:    i32.lt_s $push30=, $pop29, $pop28346; NO-SIMD128-NEXT:    i32.select $push31=, $9, $25, $pop30347; NO-SIMD128-NEXT:    i32.store8 8($0), $pop31348; NO-SIMD128-NEXT:    i32.extend8_s $push33=, $8349; NO-SIMD128-NEXT:    i32.extend8_s $push32=, $24350; NO-SIMD128-NEXT:    i32.lt_s $push34=, $pop33, $pop32351; NO-SIMD128-NEXT:    i32.select $push35=, $8, $24, $pop34352; NO-SIMD128-NEXT:    i32.store8 7($0), $pop35353; NO-SIMD128-NEXT:    i32.extend8_s $push37=, $7354; NO-SIMD128-NEXT:    i32.extend8_s $push36=, $23355; NO-SIMD128-NEXT:    i32.lt_s $push38=, $pop37, $pop36356; NO-SIMD128-NEXT:    i32.select $push39=, $7, $23, $pop38357; NO-SIMD128-NEXT:    i32.store8 6($0), $pop39358; NO-SIMD128-NEXT:    i32.extend8_s $push41=, $6359; NO-SIMD128-NEXT:    i32.extend8_s $push40=, $22360; NO-SIMD128-NEXT:    i32.lt_s $push42=, $pop41, $pop40361; NO-SIMD128-NEXT:    i32.select $push43=, $6, $22, $pop42362; NO-SIMD128-NEXT:    i32.store8 5($0), $pop43363; NO-SIMD128-NEXT:    i32.extend8_s $push45=, $5364; NO-SIMD128-NEXT:    i32.extend8_s $push44=, $21365; NO-SIMD128-NEXT:    i32.lt_s $push46=, $pop45, $pop44366; NO-SIMD128-NEXT:    i32.select $push47=, $5, $21, $pop46367; NO-SIMD128-NEXT:    i32.store8 4($0), $pop47368; NO-SIMD128-NEXT:    i32.extend8_s $push49=, $4369; NO-SIMD128-NEXT:    i32.extend8_s $push48=, $20370; NO-SIMD128-NEXT:    i32.lt_s $push50=, $pop49, $pop48371; NO-SIMD128-NEXT:    i32.select $push51=, $4, $20, $pop50372; NO-SIMD128-NEXT:    i32.store8 3($0), $pop51373; NO-SIMD128-NEXT:    i32.extend8_s $push53=, $3374; NO-SIMD128-NEXT:    i32.extend8_s $push52=, $19375; NO-SIMD128-NEXT:    i32.lt_s $push54=, $pop53, $pop52376; NO-SIMD128-NEXT:    i32.select $push55=, $3, $19, $pop54377; NO-SIMD128-NEXT:    i32.store8 2($0), $pop55378; NO-SIMD128-NEXT:    i32.extend8_s $push57=, $2379; NO-SIMD128-NEXT:    i32.extend8_s $push56=, $18380; NO-SIMD128-NEXT:    i32.lt_s $push58=, $pop57, $pop56381; NO-SIMD128-NEXT:    i32.select $push59=, $2, $18, $pop58382; NO-SIMD128-NEXT:    i32.store8 1($0), $pop59383; NO-SIMD128-NEXT:    i32.extend8_s $push61=, $1384; NO-SIMD128-NEXT:    i32.extend8_s $push60=, $17385; NO-SIMD128-NEXT:    i32.lt_s $push62=, $pop61, $pop60386; NO-SIMD128-NEXT:    i32.select $push63=, $1, $17, $pop62387; NO-SIMD128-NEXT:    i32.store8 0($0), $pop63388; NO-SIMD128-NEXT:    return389;390; NO-SIMD128-FAST-LABEL: min_s_v16i8:391; NO-SIMD128-FAST:         .functype min_s_v16i8 (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) -> ()392; NO-SIMD128-FAST-NEXT:  # %bb.0:393; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push1=, $1394; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push0=, $17395; NO-SIMD128-FAST-NEXT:    i32.lt_s $push2=, $pop1, $pop0396; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $1, $17, $pop2397; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop3398; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push5=, $2399; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push4=, $18400; NO-SIMD128-FAST-NEXT:    i32.lt_s $push6=, $pop5, $pop4401; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $2, $18, $pop6402; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop7403; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push9=, $3404; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push8=, $19405; NO-SIMD128-FAST-NEXT:    i32.lt_s $push10=, $pop9, $pop8406; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $3, $19, $pop10407; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop11408; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $4409; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push12=, $20410; NO-SIMD128-FAST-NEXT:    i32.lt_s $push14=, $pop13, $pop12411; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $4, $20, $pop14412; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop15413; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push17=, $5414; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push16=, $21415; NO-SIMD128-FAST-NEXT:    i32.lt_s $push18=, $pop17, $pop16416; NO-SIMD128-FAST-NEXT:    i32.select $push19=, $5, $21, $pop18417; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop19418; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push21=, $6419; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push20=, $22420; NO-SIMD128-FAST-NEXT:    i32.lt_s $push22=, $pop21, $pop20421; NO-SIMD128-FAST-NEXT:    i32.select $push23=, $6, $22, $pop22422; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop23423; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push25=, $7424; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push24=, $23425; NO-SIMD128-FAST-NEXT:    i32.lt_s $push26=, $pop25, $pop24426; NO-SIMD128-FAST-NEXT:    i32.select $push27=, $7, $23, $pop26427; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop27428; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push29=, $8429; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push28=, $24430; NO-SIMD128-FAST-NEXT:    i32.lt_s $push30=, $pop29, $pop28431; NO-SIMD128-FAST-NEXT:    i32.select $push31=, $8, $24, $pop30432; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop31433; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push33=, $9434; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push32=, $25435; NO-SIMD128-FAST-NEXT:    i32.lt_s $push34=, $pop33, $pop32436; NO-SIMD128-FAST-NEXT:    i32.select $push35=, $9, $25, $pop34437; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop35438; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push37=, $10439; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push36=, $26440; NO-SIMD128-FAST-NEXT:    i32.lt_s $push38=, $pop37, $pop36441; NO-SIMD128-FAST-NEXT:    i32.select $push39=, $10, $26, $pop38442; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop39443; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push41=, $11444; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push40=, $27445; NO-SIMD128-FAST-NEXT:    i32.lt_s $push42=, $pop41, $pop40446; NO-SIMD128-FAST-NEXT:    i32.select $push43=, $11, $27, $pop42447; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop43448; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push45=, $12449; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push44=, $28450; NO-SIMD128-FAST-NEXT:    i32.lt_s $push46=, $pop45, $pop44451; NO-SIMD128-FAST-NEXT:    i32.select $push47=, $12, $28, $pop46452; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop47453; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push49=, $13454; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push48=, $29455; NO-SIMD128-FAST-NEXT:    i32.lt_s $push50=, $pop49, $pop48456; NO-SIMD128-FAST-NEXT:    i32.select $push51=, $13, $29, $pop50457; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop51458; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push53=, $14459; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push52=, $30460; NO-SIMD128-FAST-NEXT:    i32.lt_s $push54=, $pop53, $pop52461; NO-SIMD128-FAST-NEXT:    i32.select $push55=, $14, $30, $pop54462; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop55463; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push57=, $15464; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push56=, $31465; NO-SIMD128-FAST-NEXT:    i32.lt_s $push58=, $pop57, $pop56466; NO-SIMD128-FAST-NEXT:    i32.select $push59=, $15, $31, $pop58467; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop59468; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push61=, $16469; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push60=, $32470; NO-SIMD128-FAST-NEXT:    i32.lt_s $push62=, $pop61, $pop60471; NO-SIMD128-FAST-NEXT:    i32.select $push63=, $16, $32, $pop62472; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop63473; NO-SIMD128-FAST-NEXT:    return474  %c = icmp slt <16 x i8> %x, %y475  %a = select <16 x i1> %c, <16 x i8> %x, <16 x i8> %y476  ret <16 x i8> %a477}478 479define <16 x i8> @min_u_v16i8(<16 x i8> %x, <16 x i8> %y) {480; SIMD128-LABEL: min_u_v16i8:481; SIMD128:         .functype min_u_v16i8 (v128, v128) -> (v128)482; SIMD128-NEXT:  # %bb.0:483; SIMD128-NEXT:    i8x16.min_u $push0=, $0, $1484; SIMD128-NEXT:    return $pop0485;486; SIMD128-FAST-LABEL: min_u_v16i8:487; SIMD128-FAST:         .functype min_u_v16i8 (v128, v128) -> (v128)488; SIMD128-FAST-NEXT:  # %bb.0:489; SIMD128-FAST-NEXT:    i8x16.min_u $push0=, $0, $1490; SIMD128-FAST-NEXT:    return $pop0491;492; NO-SIMD128-LABEL: min_u_v16i8:493; NO-SIMD128:         .functype min_u_v16i8 (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) -> ()494; NO-SIMD128-NEXT:  # %bb.0:495; NO-SIMD128-NEXT:    i32.const $push0=, 255496; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop0497; NO-SIMD128-NEXT:    i32.const $push95=, 255498; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop95499; NO-SIMD128-NEXT:    i32.lt_u $push3=, $pop2, $pop1500; NO-SIMD128-NEXT:    i32.select $push4=, $16, $32, $pop3501; NO-SIMD128-NEXT:    i32.store8 15($0), $pop4502; NO-SIMD128-NEXT:    i32.const $push94=, 255503; NO-SIMD128-NEXT:    i32.and $push6=, $15, $pop94504; NO-SIMD128-NEXT:    i32.const $push93=, 255505; NO-SIMD128-NEXT:    i32.and $push5=, $31, $pop93506; NO-SIMD128-NEXT:    i32.lt_u $push7=, $pop6, $pop5507; NO-SIMD128-NEXT:    i32.select $push8=, $15, $31, $pop7508; NO-SIMD128-NEXT:    i32.store8 14($0), $pop8509; NO-SIMD128-NEXT:    i32.const $push92=, 255510; NO-SIMD128-NEXT:    i32.and $push10=, $14, $pop92511; NO-SIMD128-NEXT:    i32.const $push91=, 255512; NO-SIMD128-NEXT:    i32.and $push9=, $30, $pop91513; NO-SIMD128-NEXT:    i32.lt_u $push11=, $pop10, $pop9514; NO-SIMD128-NEXT:    i32.select $push12=, $14, $30, $pop11515; NO-SIMD128-NEXT:    i32.store8 13($0), $pop12516; NO-SIMD128-NEXT:    i32.const $push90=, 255517; NO-SIMD128-NEXT:    i32.and $push14=, $13, $pop90518; NO-SIMD128-NEXT:    i32.const $push89=, 255519; NO-SIMD128-NEXT:    i32.and $push13=, $29, $pop89520; NO-SIMD128-NEXT:    i32.lt_u $push15=, $pop14, $pop13521; NO-SIMD128-NEXT:    i32.select $push16=, $13, $29, $pop15522; NO-SIMD128-NEXT:    i32.store8 12($0), $pop16523; NO-SIMD128-NEXT:    i32.const $push88=, 255524; NO-SIMD128-NEXT:    i32.and $push18=, $12, $pop88525; NO-SIMD128-NEXT:    i32.const $push87=, 255526; NO-SIMD128-NEXT:    i32.and $push17=, $28, $pop87527; NO-SIMD128-NEXT:    i32.lt_u $push19=, $pop18, $pop17528; NO-SIMD128-NEXT:    i32.select $push20=, $12, $28, $pop19529; NO-SIMD128-NEXT:    i32.store8 11($0), $pop20530; NO-SIMD128-NEXT:    i32.const $push86=, 255531; NO-SIMD128-NEXT:    i32.and $push22=, $11, $pop86532; NO-SIMD128-NEXT:    i32.const $push85=, 255533; NO-SIMD128-NEXT:    i32.and $push21=, $27, $pop85534; NO-SIMD128-NEXT:    i32.lt_u $push23=, $pop22, $pop21535; NO-SIMD128-NEXT:    i32.select $push24=, $11, $27, $pop23536; NO-SIMD128-NEXT:    i32.store8 10($0), $pop24537; NO-SIMD128-NEXT:    i32.const $push84=, 255538; NO-SIMD128-NEXT:    i32.and $push26=, $10, $pop84539; NO-SIMD128-NEXT:    i32.const $push83=, 255540; NO-SIMD128-NEXT:    i32.and $push25=, $26, $pop83541; NO-SIMD128-NEXT:    i32.lt_u $push27=, $pop26, $pop25542; NO-SIMD128-NEXT:    i32.select $push28=, $10, $26, $pop27543; NO-SIMD128-NEXT:    i32.store8 9($0), $pop28544; NO-SIMD128-NEXT:    i32.const $push82=, 255545; NO-SIMD128-NEXT:    i32.and $push30=, $9, $pop82546; NO-SIMD128-NEXT:    i32.const $push81=, 255547; NO-SIMD128-NEXT:    i32.and $push29=, $25, $pop81548; NO-SIMD128-NEXT:    i32.lt_u $push31=, $pop30, $pop29549; NO-SIMD128-NEXT:    i32.select $push32=, $9, $25, $pop31550; NO-SIMD128-NEXT:    i32.store8 8($0), $pop32551; NO-SIMD128-NEXT:    i32.const $push80=, 255552; NO-SIMD128-NEXT:    i32.and $push34=, $8, $pop80553; NO-SIMD128-NEXT:    i32.const $push79=, 255554; NO-SIMD128-NEXT:    i32.and $push33=, $24, $pop79555; NO-SIMD128-NEXT:    i32.lt_u $push35=, $pop34, $pop33556; NO-SIMD128-NEXT:    i32.select $push36=, $8, $24, $pop35557; NO-SIMD128-NEXT:    i32.store8 7($0), $pop36558; NO-SIMD128-NEXT:    i32.const $push78=, 255559; NO-SIMD128-NEXT:    i32.and $push38=, $7, $pop78560; NO-SIMD128-NEXT:    i32.const $push77=, 255561; NO-SIMD128-NEXT:    i32.and $push37=, $23, $pop77562; NO-SIMD128-NEXT:    i32.lt_u $push39=, $pop38, $pop37563; NO-SIMD128-NEXT:    i32.select $push40=, $7, $23, $pop39564; NO-SIMD128-NEXT:    i32.store8 6($0), $pop40565; NO-SIMD128-NEXT:    i32.const $push76=, 255566; NO-SIMD128-NEXT:    i32.and $push42=, $6, $pop76567; NO-SIMD128-NEXT:    i32.const $push75=, 255568; NO-SIMD128-NEXT:    i32.and $push41=, $22, $pop75569; NO-SIMD128-NEXT:    i32.lt_u $push43=, $pop42, $pop41570; NO-SIMD128-NEXT:    i32.select $push44=, $6, $22, $pop43571; NO-SIMD128-NEXT:    i32.store8 5($0), $pop44572; NO-SIMD128-NEXT:    i32.const $push74=, 255573; NO-SIMD128-NEXT:    i32.and $push46=, $5, $pop74574; NO-SIMD128-NEXT:    i32.const $push73=, 255575; NO-SIMD128-NEXT:    i32.and $push45=, $21, $pop73576; NO-SIMD128-NEXT:    i32.lt_u $push47=, $pop46, $pop45577; NO-SIMD128-NEXT:    i32.select $push48=, $5, $21, $pop47578; NO-SIMD128-NEXT:    i32.store8 4($0), $pop48579; NO-SIMD128-NEXT:    i32.const $push72=, 255580; NO-SIMD128-NEXT:    i32.and $push50=, $4, $pop72581; NO-SIMD128-NEXT:    i32.const $push71=, 255582; NO-SIMD128-NEXT:    i32.and $push49=, $20, $pop71583; NO-SIMD128-NEXT:    i32.lt_u $push51=, $pop50, $pop49584; NO-SIMD128-NEXT:    i32.select $push52=, $4, $20, $pop51585; NO-SIMD128-NEXT:    i32.store8 3($0), $pop52586; NO-SIMD128-NEXT:    i32.const $push70=, 255587; NO-SIMD128-NEXT:    i32.and $push54=, $3, $pop70588; NO-SIMD128-NEXT:    i32.const $push69=, 255589; NO-SIMD128-NEXT:    i32.and $push53=, $19, $pop69590; NO-SIMD128-NEXT:    i32.lt_u $push55=, $pop54, $pop53591; NO-SIMD128-NEXT:    i32.select $push56=, $3, $19, $pop55592; NO-SIMD128-NEXT:    i32.store8 2($0), $pop56593; NO-SIMD128-NEXT:    i32.const $push68=, 255594; NO-SIMD128-NEXT:    i32.and $push58=, $2, $pop68595; NO-SIMD128-NEXT:    i32.const $push67=, 255596; NO-SIMD128-NEXT:    i32.and $push57=, $18, $pop67597; NO-SIMD128-NEXT:    i32.lt_u $push59=, $pop58, $pop57598; NO-SIMD128-NEXT:    i32.select $push60=, $2, $18, $pop59599; NO-SIMD128-NEXT:    i32.store8 1($0), $pop60600; NO-SIMD128-NEXT:    i32.const $push66=, 255601; NO-SIMD128-NEXT:    i32.and $push62=, $1, $pop66602; NO-SIMD128-NEXT:    i32.const $push65=, 255603; NO-SIMD128-NEXT:    i32.and $push61=, $17, $pop65604; NO-SIMD128-NEXT:    i32.lt_u $push63=, $pop62, $pop61605; NO-SIMD128-NEXT:    i32.select $push64=, $1, $17, $pop63606; NO-SIMD128-NEXT:    i32.store8 0($0), $pop64607; NO-SIMD128-NEXT:    return608;609; NO-SIMD128-FAST-LABEL: min_u_v16i8:610; NO-SIMD128-FAST:         .functype min_u_v16i8 (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) -> ()611; NO-SIMD128-FAST-NEXT:  # %bb.0:612; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 255613; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop0614; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 255615; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop95616; NO-SIMD128-FAST-NEXT:    i32.lt_u $push3=, $pop2, $pop1617; NO-SIMD128-FAST-NEXT:    i32.select $push4=, $1, $17, $pop3618; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop4619; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 255620; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $2, $pop94621; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 255622; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $18, $pop93623; NO-SIMD128-FAST-NEXT:    i32.lt_u $push7=, $pop6, $pop5624; NO-SIMD128-FAST-NEXT:    i32.select $push8=, $2, $18, $pop7625; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop8626; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 255627; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $3, $pop92628; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 255629; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $19, $pop91630; NO-SIMD128-FAST-NEXT:    i32.lt_u $push11=, $pop10, $pop9631; NO-SIMD128-FAST-NEXT:    i32.select $push12=, $3, $19, $pop11632; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop12633; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 255634; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $4, $pop90635; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 255636; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $20, $pop89637; NO-SIMD128-FAST-NEXT:    i32.lt_u $push15=, $pop14, $pop13638; NO-SIMD128-FAST-NEXT:    i32.select $push16=, $4, $20, $pop15639; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop16640; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 255641; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $5, $pop88642; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 255643; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $21, $pop87644; NO-SIMD128-FAST-NEXT:    i32.lt_u $push19=, $pop18, $pop17645; NO-SIMD128-FAST-NEXT:    i32.select $push20=, $5, $21, $pop19646; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop20647; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 255648; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $6, $pop86649; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 255650; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $22, $pop85651; NO-SIMD128-FAST-NEXT:    i32.lt_u $push23=, $pop22, $pop21652; NO-SIMD128-FAST-NEXT:    i32.select $push24=, $6, $22, $pop23653; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop24654; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 255655; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $7, $pop84656; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 255657; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $23, $pop83658; NO-SIMD128-FAST-NEXT:    i32.lt_u $push27=, $pop26, $pop25659; NO-SIMD128-FAST-NEXT:    i32.select $push28=, $7, $23, $pop27660; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop28661; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 255662; NO-SIMD128-FAST-NEXT:    i32.and $push30=, $8, $pop82663; NO-SIMD128-FAST-NEXT:    i32.const $push81=, 255664; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $24, $pop81665; NO-SIMD128-FAST-NEXT:    i32.lt_u $push31=, $pop30, $pop29666; NO-SIMD128-FAST-NEXT:    i32.select $push32=, $8, $24, $pop31667; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop32668; NO-SIMD128-FAST-NEXT:    i32.const $push80=, 255669; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $9, $pop80670; NO-SIMD128-FAST-NEXT:    i32.const $push79=, 255671; NO-SIMD128-FAST-NEXT:    i32.and $push33=, $25, $pop79672; NO-SIMD128-FAST-NEXT:    i32.lt_u $push35=, $pop34, $pop33673; NO-SIMD128-FAST-NEXT:    i32.select $push36=, $9, $25, $pop35674; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop36675; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 255676; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $10, $pop78677; NO-SIMD128-FAST-NEXT:    i32.const $push77=, 255678; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $26, $pop77679; NO-SIMD128-FAST-NEXT:    i32.lt_u $push39=, $pop38, $pop37680; NO-SIMD128-FAST-NEXT:    i32.select $push40=, $10, $26, $pop39681; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop40682; NO-SIMD128-FAST-NEXT:    i32.const $push76=, 255683; NO-SIMD128-FAST-NEXT:    i32.and $push42=, $11, $pop76684; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 255685; NO-SIMD128-FAST-NEXT:    i32.and $push41=, $27, $pop75686; NO-SIMD128-FAST-NEXT:    i32.lt_u $push43=, $pop42, $pop41687; NO-SIMD128-FAST-NEXT:    i32.select $push44=, $11, $27, $pop43688; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop44689; NO-SIMD128-FAST-NEXT:    i32.const $push74=, 255690; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $12, $pop74691; NO-SIMD128-FAST-NEXT:    i32.const $push73=, 255692; NO-SIMD128-FAST-NEXT:    i32.and $push45=, $28, $pop73693; NO-SIMD128-FAST-NEXT:    i32.lt_u $push47=, $pop46, $pop45694; NO-SIMD128-FAST-NEXT:    i32.select $push48=, $12, $28, $pop47695; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop48696; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 255697; NO-SIMD128-FAST-NEXT:    i32.and $push50=, $13, $pop72698; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 255699; NO-SIMD128-FAST-NEXT:    i32.and $push49=, $29, $pop71700; NO-SIMD128-FAST-NEXT:    i32.lt_u $push51=, $pop50, $pop49701; NO-SIMD128-FAST-NEXT:    i32.select $push52=, $13, $29, $pop51702; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop52703; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 255704; NO-SIMD128-FAST-NEXT:    i32.and $push54=, $14, $pop70705; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 255706; NO-SIMD128-FAST-NEXT:    i32.and $push53=, $30, $pop69707; NO-SIMD128-FAST-NEXT:    i32.lt_u $push55=, $pop54, $pop53708; NO-SIMD128-FAST-NEXT:    i32.select $push56=, $14, $30, $pop55709; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop56710; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 255711; NO-SIMD128-FAST-NEXT:    i32.and $push58=, $15, $pop68712; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 255713; NO-SIMD128-FAST-NEXT:    i32.and $push57=, $31, $pop67714; NO-SIMD128-FAST-NEXT:    i32.lt_u $push59=, $pop58, $pop57715; NO-SIMD128-FAST-NEXT:    i32.select $push60=, $15, $31, $pop59716; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop60717; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 255718; NO-SIMD128-FAST-NEXT:    i32.and $push62=, $16, $pop66719; NO-SIMD128-FAST-NEXT:    i32.const $push65=, 255720; NO-SIMD128-FAST-NEXT:    i32.and $push61=, $32, $pop65721; NO-SIMD128-FAST-NEXT:    i32.lt_u $push63=, $pop62, $pop61722; NO-SIMD128-FAST-NEXT:    i32.select $push64=, $16, $32, $pop63723; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop64724; NO-SIMD128-FAST-NEXT:    return725  %c = icmp ult <16 x i8> %x, %y726  %a = select <16 x i1> %c, <16 x i8> %x, <16 x i8> %y727  ret <16 x i8> %a728}729 730define <16 x i8> @max_s_v16i8(<16 x i8> %x, <16 x i8> %y) {731; SIMD128-LABEL: max_s_v16i8:732; SIMD128:         .functype max_s_v16i8 (v128, v128) -> (v128)733; SIMD128-NEXT:  # %bb.0:734; SIMD128-NEXT:    i8x16.max_s $push0=, $0, $1735; SIMD128-NEXT:    return $pop0736;737; SIMD128-FAST-LABEL: max_s_v16i8:738; SIMD128-FAST:         .functype max_s_v16i8 (v128, v128) -> (v128)739; SIMD128-FAST-NEXT:  # %bb.0:740; SIMD128-FAST-NEXT:    i8x16.max_s $push0=, $0, $1741; SIMD128-FAST-NEXT:    return $pop0742;743; NO-SIMD128-LABEL: max_s_v16i8:744; NO-SIMD128:         .functype max_s_v16i8 (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) -> ()745; NO-SIMD128-NEXT:  # %bb.0:746; NO-SIMD128-NEXT:    i32.extend8_s $push1=, $16747; NO-SIMD128-NEXT:    i32.extend8_s $push0=, $32748; NO-SIMD128-NEXT:    i32.gt_s $push2=, $pop1, $pop0749; NO-SIMD128-NEXT:    i32.select $push3=, $16, $32, $pop2750; NO-SIMD128-NEXT:    i32.store8 15($0), $pop3751; NO-SIMD128-NEXT:    i32.extend8_s $push5=, $15752; NO-SIMD128-NEXT:    i32.extend8_s $push4=, $31753; NO-SIMD128-NEXT:    i32.gt_s $push6=, $pop5, $pop4754; NO-SIMD128-NEXT:    i32.select $push7=, $15, $31, $pop6755; NO-SIMD128-NEXT:    i32.store8 14($0), $pop7756; NO-SIMD128-NEXT:    i32.extend8_s $push9=, $14757; NO-SIMD128-NEXT:    i32.extend8_s $push8=, $30758; NO-SIMD128-NEXT:    i32.gt_s $push10=, $pop9, $pop8759; NO-SIMD128-NEXT:    i32.select $push11=, $14, $30, $pop10760; NO-SIMD128-NEXT:    i32.store8 13($0), $pop11761; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $13762; NO-SIMD128-NEXT:    i32.extend8_s $push12=, $29763; NO-SIMD128-NEXT:    i32.gt_s $push14=, $pop13, $pop12764; NO-SIMD128-NEXT:    i32.select $push15=, $13, $29, $pop14765; NO-SIMD128-NEXT:    i32.store8 12($0), $pop15766; NO-SIMD128-NEXT:    i32.extend8_s $push17=, $12767; NO-SIMD128-NEXT:    i32.extend8_s $push16=, $28768; NO-SIMD128-NEXT:    i32.gt_s $push18=, $pop17, $pop16769; NO-SIMD128-NEXT:    i32.select $push19=, $12, $28, $pop18770; NO-SIMD128-NEXT:    i32.store8 11($0), $pop19771; NO-SIMD128-NEXT:    i32.extend8_s $push21=, $11772; NO-SIMD128-NEXT:    i32.extend8_s $push20=, $27773; NO-SIMD128-NEXT:    i32.gt_s $push22=, $pop21, $pop20774; NO-SIMD128-NEXT:    i32.select $push23=, $11, $27, $pop22775; NO-SIMD128-NEXT:    i32.store8 10($0), $pop23776; NO-SIMD128-NEXT:    i32.extend8_s $push25=, $10777; NO-SIMD128-NEXT:    i32.extend8_s $push24=, $26778; NO-SIMD128-NEXT:    i32.gt_s $push26=, $pop25, $pop24779; NO-SIMD128-NEXT:    i32.select $push27=, $10, $26, $pop26780; NO-SIMD128-NEXT:    i32.store8 9($0), $pop27781; NO-SIMD128-NEXT:    i32.extend8_s $push29=, $9782; NO-SIMD128-NEXT:    i32.extend8_s $push28=, $25783; NO-SIMD128-NEXT:    i32.gt_s $push30=, $pop29, $pop28784; NO-SIMD128-NEXT:    i32.select $push31=, $9, $25, $pop30785; NO-SIMD128-NEXT:    i32.store8 8($0), $pop31786; NO-SIMD128-NEXT:    i32.extend8_s $push33=, $8787; NO-SIMD128-NEXT:    i32.extend8_s $push32=, $24788; NO-SIMD128-NEXT:    i32.gt_s $push34=, $pop33, $pop32789; NO-SIMD128-NEXT:    i32.select $push35=, $8, $24, $pop34790; NO-SIMD128-NEXT:    i32.store8 7($0), $pop35791; NO-SIMD128-NEXT:    i32.extend8_s $push37=, $7792; NO-SIMD128-NEXT:    i32.extend8_s $push36=, $23793; NO-SIMD128-NEXT:    i32.gt_s $push38=, $pop37, $pop36794; NO-SIMD128-NEXT:    i32.select $push39=, $7, $23, $pop38795; NO-SIMD128-NEXT:    i32.store8 6($0), $pop39796; NO-SIMD128-NEXT:    i32.extend8_s $push41=, $6797; NO-SIMD128-NEXT:    i32.extend8_s $push40=, $22798; NO-SIMD128-NEXT:    i32.gt_s $push42=, $pop41, $pop40799; NO-SIMD128-NEXT:    i32.select $push43=, $6, $22, $pop42800; NO-SIMD128-NEXT:    i32.store8 5($0), $pop43801; NO-SIMD128-NEXT:    i32.extend8_s $push45=, $5802; NO-SIMD128-NEXT:    i32.extend8_s $push44=, $21803; NO-SIMD128-NEXT:    i32.gt_s $push46=, $pop45, $pop44804; NO-SIMD128-NEXT:    i32.select $push47=, $5, $21, $pop46805; NO-SIMD128-NEXT:    i32.store8 4($0), $pop47806; NO-SIMD128-NEXT:    i32.extend8_s $push49=, $4807; NO-SIMD128-NEXT:    i32.extend8_s $push48=, $20808; NO-SIMD128-NEXT:    i32.gt_s $push50=, $pop49, $pop48809; NO-SIMD128-NEXT:    i32.select $push51=, $4, $20, $pop50810; NO-SIMD128-NEXT:    i32.store8 3($0), $pop51811; NO-SIMD128-NEXT:    i32.extend8_s $push53=, $3812; NO-SIMD128-NEXT:    i32.extend8_s $push52=, $19813; NO-SIMD128-NEXT:    i32.gt_s $push54=, $pop53, $pop52814; NO-SIMD128-NEXT:    i32.select $push55=, $3, $19, $pop54815; NO-SIMD128-NEXT:    i32.store8 2($0), $pop55816; NO-SIMD128-NEXT:    i32.extend8_s $push57=, $2817; NO-SIMD128-NEXT:    i32.extend8_s $push56=, $18818; NO-SIMD128-NEXT:    i32.gt_s $push58=, $pop57, $pop56819; NO-SIMD128-NEXT:    i32.select $push59=, $2, $18, $pop58820; NO-SIMD128-NEXT:    i32.store8 1($0), $pop59821; NO-SIMD128-NEXT:    i32.extend8_s $push61=, $1822; NO-SIMD128-NEXT:    i32.extend8_s $push60=, $17823; NO-SIMD128-NEXT:    i32.gt_s $push62=, $pop61, $pop60824; NO-SIMD128-NEXT:    i32.select $push63=, $1, $17, $pop62825; NO-SIMD128-NEXT:    i32.store8 0($0), $pop63826; NO-SIMD128-NEXT:    return827;828; NO-SIMD128-FAST-LABEL: max_s_v16i8:829; NO-SIMD128-FAST:         .functype max_s_v16i8 (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) -> ()830; NO-SIMD128-FAST-NEXT:  # %bb.0:831; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push1=, $1832; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push0=, $17833; NO-SIMD128-FAST-NEXT:    i32.gt_s $push2=, $pop1, $pop0834; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $1, $17, $pop2835; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop3836; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push5=, $2837; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push4=, $18838; NO-SIMD128-FAST-NEXT:    i32.gt_s $push6=, $pop5, $pop4839; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $2, $18, $pop6840; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop7841; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push9=, $3842; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push8=, $19843; NO-SIMD128-FAST-NEXT:    i32.gt_s $push10=, $pop9, $pop8844; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $3, $19, $pop10845; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop11846; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $4847; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push12=, $20848; NO-SIMD128-FAST-NEXT:    i32.gt_s $push14=, $pop13, $pop12849; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $4, $20, $pop14850; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop15851; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push17=, $5852; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push16=, $21853; NO-SIMD128-FAST-NEXT:    i32.gt_s $push18=, $pop17, $pop16854; NO-SIMD128-FAST-NEXT:    i32.select $push19=, $5, $21, $pop18855; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop19856; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push21=, $6857; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push20=, $22858; NO-SIMD128-FAST-NEXT:    i32.gt_s $push22=, $pop21, $pop20859; NO-SIMD128-FAST-NEXT:    i32.select $push23=, $6, $22, $pop22860; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop23861; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push25=, $7862; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push24=, $23863; NO-SIMD128-FAST-NEXT:    i32.gt_s $push26=, $pop25, $pop24864; NO-SIMD128-FAST-NEXT:    i32.select $push27=, $7, $23, $pop26865; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop27866; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push29=, $8867; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push28=, $24868; NO-SIMD128-FAST-NEXT:    i32.gt_s $push30=, $pop29, $pop28869; NO-SIMD128-FAST-NEXT:    i32.select $push31=, $8, $24, $pop30870; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop31871; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push33=, $9872; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push32=, $25873; NO-SIMD128-FAST-NEXT:    i32.gt_s $push34=, $pop33, $pop32874; NO-SIMD128-FAST-NEXT:    i32.select $push35=, $9, $25, $pop34875; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop35876; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push37=, $10877; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push36=, $26878; NO-SIMD128-FAST-NEXT:    i32.gt_s $push38=, $pop37, $pop36879; NO-SIMD128-FAST-NEXT:    i32.select $push39=, $10, $26, $pop38880; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop39881; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push41=, $11882; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push40=, $27883; NO-SIMD128-FAST-NEXT:    i32.gt_s $push42=, $pop41, $pop40884; NO-SIMD128-FAST-NEXT:    i32.select $push43=, $11, $27, $pop42885; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop43886; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push45=, $12887; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push44=, $28888; NO-SIMD128-FAST-NEXT:    i32.gt_s $push46=, $pop45, $pop44889; NO-SIMD128-FAST-NEXT:    i32.select $push47=, $12, $28, $pop46890; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop47891; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push49=, $13892; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push48=, $29893; NO-SIMD128-FAST-NEXT:    i32.gt_s $push50=, $pop49, $pop48894; NO-SIMD128-FAST-NEXT:    i32.select $push51=, $13, $29, $pop50895; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop51896; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push53=, $14897; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push52=, $30898; NO-SIMD128-FAST-NEXT:    i32.gt_s $push54=, $pop53, $pop52899; NO-SIMD128-FAST-NEXT:    i32.select $push55=, $14, $30, $pop54900; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop55901; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push57=, $15902; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push56=, $31903; NO-SIMD128-FAST-NEXT:    i32.gt_s $push58=, $pop57, $pop56904; NO-SIMD128-FAST-NEXT:    i32.select $push59=, $15, $31, $pop58905; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop59906; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push61=, $16907; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push60=, $32908; NO-SIMD128-FAST-NEXT:    i32.gt_s $push62=, $pop61, $pop60909; NO-SIMD128-FAST-NEXT:    i32.select $push63=, $16, $32, $pop62910; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop63911; NO-SIMD128-FAST-NEXT:    return912  %c = icmp sgt <16 x i8> %x, %y913  %a = select <16 x i1> %c, <16 x i8> %x, <16 x i8> %y914  ret <16 x i8> %a915}916 917define <16 x i8> @max_u_v16i8(<16 x i8> %x, <16 x i8> %y) {918; SIMD128-LABEL: max_u_v16i8:919; SIMD128:         .functype max_u_v16i8 (v128, v128) -> (v128)920; SIMD128-NEXT:  # %bb.0:921; SIMD128-NEXT:    i8x16.max_u $push0=, $0, $1922; SIMD128-NEXT:    return $pop0923;924; SIMD128-FAST-LABEL: max_u_v16i8:925; SIMD128-FAST:         .functype max_u_v16i8 (v128, v128) -> (v128)926; SIMD128-FAST-NEXT:  # %bb.0:927; SIMD128-FAST-NEXT:    i8x16.max_u $push0=, $0, $1928; SIMD128-FAST-NEXT:    return $pop0929;930; NO-SIMD128-LABEL: max_u_v16i8:931; NO-SIMD128:         .functype max_u_v16i8 (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) -> ()932; NO-SIMD128-NEXT:  # %bb.0:933; NO-SIMD128-NEXT:    i32.const $push0=, 255934; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop0935; NO-SIMD128-NEXT:    i32.const $push95=, 255936; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop95937; NO-SIMD128-NEXT:    i32.gt_u $push3=, $pop2, $pop1938; NO-SIMD128-NEXT:    i32.select $push4=, $16, $32, $pop3939; NO-SIMD128-NEXT:    i32.store8 15($0), $pop4940; NO-SIMD128-NEXT:    i32.const $push94=, 255941; NO-SIMD128-NEXT:    i32.and $push6=, $15, $pop94942; NO-SIMD128-NEXT:    i32.const $push93=, 255943; NO-SIMD128-NEXT:    i32.and $push5=, $31, $pop93944; NO-SIMD128-NEXT:    i32.gt_u $push7=, $pop6, $pop5945; NO-SIMD128-NEXT:    i32.select $push8=, $15, $31, $pop7946; NO-SIMD128-NEXT:    i32.store8 14($0), $pop8947; NO-SIMD128-NEXT:    i32.const $push92=, 255948; NO-SIMD128-NEXT:    i32.and $push10=, $14, $pop92949; NO-SIMD128-NEXT:    i32.const $push91=, 255950; NO-SIMD128-NEXT:    i32.and $push9=, $30, $pop91951; NO-SIMD128-NEXT:    i32.gt_u $push11=, $pop10, $pop9952; NO-SIMD128-NEXT:    i32.select $push12=, $14, $30, $pop11953; NO-SIMD128-NEXT:    i32.store8 13($0), $pop12954; NO-SIMD128-NEXT:    i32.const $push90=, 255955; NO-SIMD128-NEXT:    i32.and $push14=, $13, $pop90956; NO-SIMD128-NEXT:    i32.const $push89=, 255957; NO-SIMD128-NEXT:    i32.and $push13=, $29, $pop89958; NO-SIMD128-NEXT:    i32.gt_u $push15=, $pop14, $pop13959; NO-SIMD128-NEXT:    i32.select $push16=, $13, $29, $pop15960; NO-SIMD128-NEXT:    i32.store8 12($0), $pop16961; NO-SIMD128-NEXT:    i32.const $push88=, 255962; NO-SIMD128-NEXT:    i32.and $push18=, $12, $pop88963; NO-SIMD128-NEXT:    i32.const $push87=, 255964; NO-SIMD128-NEXT:    i32.and $push17=, $28, $pop87965; NO-SIMD128-NEXT:    i32.gt_u $push19=, $pop18, $pop17966; NO-SIMD128-NEXT:    i32.select $push20=, $12, $28, $pop19967; NO-SIMD128-NEXT:    i32.store8 11($0), $pop20968; NO-SIMD128-NEXT:    i32.const $push86=, 255969; NO-SIMD128-NEXT:    i32.and $push22=, $11, $pop86970; NO-SIMD128-NEXT:    i32.const $push85=, 255971; NO-SIMD128-NEXT:    i32.and $push21=, $27, $pop85972; NO-SIMD128-NEXT:    i32.gt_u $push23=, $pop22, $pop21973; NO-SIMD128-NEXT:    i32.select $push24=, $11, $27, $pop23974; NO-SIMD128-NEXT:    i32.store8 10($0), $pop24975; NO-SIMD128-NEXT:    i32.const $push84=, 255976; NO-SIMD128-NEXT:    i32.and $push26=, $10, $pop84977; NO-SIMD128-NEXT:    i32.const $push83=, 255978; NO-SIMD128-NEXT:    i32.and $push25=, $26, $pop83979; NO-SIMD128-NEXT:    i32.gt_u $push27=, $pop26, $pop25980; NO-SIMD128-NEXT:    i32.select $push28=, $10, $26, $pop27981; NO-SIMD128-NEXT:    i32.store8 9($0), $pop28982; NO-SIMD128-NEXT:    i32.const $push82=, 255983; NO-SIMD128-NEXT:    i32.and $push30=, $9, $pop82984; NO-SIMD128-NEXT:    i32.const $push81=, 255985; NO-SIMD128-NEXT:    i32.and $push29=, $25, $pop81986; NO-SIMD128-NEXT:    i32.gt_u $push31=, $pop30, $pop29987; NO-SIMD128-NEXT:    i32.select $push32=, $9, $25, $pop31988; NO-SIMD128-NEXT:    i32.store8 8($0), $pop32989; NO-SIMD128-NEXT:    i32.const $push80=, 255990; NO-SIMD128-NEXT:    i32.and $push34=, $8, $pop80991; NO-SIMD128-NEXT:    i32.const $push79=, 255992; NO-SIMD128-NEXT:    i32.and $push33=, $24, $pop79993; NO-SIMD128-NEXT:    i32.gt_u $push35=, $pop34, $pop33994; NO-SIMD128-NEXT:    i32.select $push36=, $8, $24, $pop35995; NO-SIMD128-NEXT:    i32.store8 7($0), $pop36996; NO-SIMD128-NEXT:    i32.const $push78=, 255997; NO-SIMD128-NEXT:    i32.and $push38=, $7, $pop78998; NO-SIMD128-NEXT:    i32.const $push77=, 255999; NO-SIMD128-NEXT:    i32.and $push37=, $23, $pop771000; NO-SIMD128-NEXT:    i32.gt_u $push39=, $pop38, $pop371001; NO-SIMD128-NEXT:    i32.select $push40=, $7, $23, $pop391002; NO-SIMD128-NEXT:    i32.store8 6($0), $pop401003; NO-SIMD128-NEXT:    i32.const $push76=, 2551004; NO-SIMD128-NEXT:    i32.and $push42=, $6, $pop761005; NO-SIMD128-NEXT:    i32.const $push75=, 2551006; NO-SIMD128-NEXT:    i32.and $push41=, $22, $pop751007; NO-SIMD128-NEXT:    i32.gt_u $push43=, $pop42, $pop411008; NO-SIMD128-NEXT:    i32.select $push44=, $6, $22, $pop431009; NO-SIMD128-NEXT:    i32.store8 5($0), $pop441010; NO-SIMD128-NEXT:    i32.const $push74=, 2551011; NO-SIMD128-NEXT:    i32.and $push46=, $5, $pop741012; NO-SIMD128-NEXT:    i32.const $push73=, 2551013; NO-SIMD128-NEXT:    i32.and $push45=, $21, $pop731014; NO-SIMD128-NEXT:    i32.gt_u $push47=, $pop46, $pop451015; NO-SIMD128-NEXT:    i32.select $push48=, $5, $21, $pop471016; NO-SIMD128-NEXT:    i32.store8 4($0), $pop481017; NO-SIMD128-NEXT:    i32.const $push72=, 2551018; NO-SIMD128-NEXT:    i32.and $push50=, $4, $pop721019; NO-SIMD128-NEXT:    i32.const $push71=, 2551020; NO-SIMD128-NEXT:    i32.and $push49=, $20, $pop711021; NO-SIMD128-NEXT:    i32.gt_u $push51=, $pop50, $pop491022; NO-SIMD128-NEXT:    i32.select $push52=, $4, $20, $pop511023; NO-SIMD128-NEXT:    i32.store8 3($0), $pop521024; NO-SIMD128-NEXT:    i32.const $push70=, 2551025; NO-SIMD128-NEXT:    i32.and $push54=, $3, $pop701026; NO-SIMD128-NEXT:    i32.const $push69=, 2551027; NO-SIMD128-NEXT:    i32.and $push53=, $19, $pop691028; NO-SIMD128-NEXT:    i32.gt_u $push55=, $pop54, $pop531029; NO-SIMD128-NEXT:    i32.select $push56=, $3, $19, $pop551030; NO-SIMD128-NEXT:    i32.store8 2($0), $pop561031; NO-SIMD128-NEXT:    i32.const $push68=, 2551032; NO-SIMD128-NEXT:    i32.and $push58=, $2, $pop681033; NO-SIMD128-NEXT:    i32.const $push67=, 2551034; NO-SIMD128-NEXT:    i32.and $push57=, $18, $pop671035; NO-SIMD128-NEXT:    i32.gt_u $push59=, $pop58, $pop571036; NO-SIMD128-NEXT:    i32.select $push60=, $2, $18, $pop591037; NO-SIMD128-NEXT:    i32.store8 1($0), $pop601038; NO-SIMD128-NEXT:    i32.const $push66=, 2551039; NO-SIMD128-NEXT:    i32.and $push62=, $1, $pop661040; NO-SIMD128-NEXT:    i32.const $push65=, 2551041; NO-SIMD128-NEXT:    i32.and $push61=, $17, $pop651042; NO-SIMD128-NEXT:    i32.gt_u $push63=, $pop62, $pop611043; NO-SIMD128-NEXT:    i32.select $push64=, $1, $17, $pop631044; NO-SIMD128-NEXT:    i32.store8 0($0), $pop641045; NO-SIMD128-NEXT:    return1046;1047; NO-SIMD128-FAST-LABEL: max_u_v16i8:1048; NO-SIMD128-FAST:         .functype max_u_v16i8 (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) -> ()1049; NO-SIMD128-FAST-NEXT:  # %bb.0:1050; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2551051; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop01052; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 2551053; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop951054; NO-SIMD128-FAST-NEXT:    i32.gt_u $push3=, $pop2, $pop11055; NO-SIMD128-FAST-NEXT:    i32.select $push4=, $1, $17, $pop31056; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop41057; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 2551058; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $2, $pop941059; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 2551060; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $18, $pop931061; NO-SIMD128-FAST-NEXT:    i32.gt_u $push7=, $pop6, $pop51062; NO-SIMD128-FAST-NEXT:    i32.select $push8=, $2, $18, $pop71063; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop81064; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 2551065; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $3, $pop921066; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 2551067; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $19, $pop911068; NO-SIMD128-FAST-NEXT:    i32.gt_u $push11=, $pop10, $pop91069; NO-SIMD128-FAST-NEXT:    i32.select $push12=, $3, $19, $pop111070; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop121071; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 2551072; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $4, $pop901073; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 2551074; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $20, $pop891075; NO-SIMD128-FAST-NEXT:    i32.gt_u $push15=, $pop14, $pop131076; NO-SIMD128-FAST-NEXT:    i32.select $push16=, $4, $20, $pop151077; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop161078; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 2551079; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $5, $pop881080; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 2551081; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $21, $pop871082; NO-SIMD128-FAST-NEXT:    i32.gt_u $push19=, $pop18, $pop171083; NO-SIMD128-FAST-NEXT:    i32.select $push20=, $5, $21, $pop191084; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop201085; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 2551086; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $6, $pop861087; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 2551088; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $22, $pop851089; NO-SIMD128-FAST-NEXT:    i32.gt_u $push23=, $pop22, $pop211090; NO-SIMD128-FAST-NEXT:    i32.select $push24=, $6, $22, $pop231091; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop241092; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 2551093; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $7, $pop841094; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 2551095; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $23, $pop831096; NO-SIMD128-FAST-NEXT:    i32.gt_u $push27=, $pop26, $pop251097; NO-SIMD128-FAST-NEXT:    i32.select $push28=, $7, $23, $pop271098; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop281099; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 2551100; NO-SIMD128-FAST-NEXT:    i32.and $push30=, $8, $pop821101; NO-SIMD128-FAST-NEXT:    i32.const $push81=, 2551102; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $24, $pop811103; NO-SIMD128-FAST-NEXT:    i32.gt_u $push31=, $pop30, $pop291104; NO-SIMD128-FAST-NEXT:    i32.select $push32=, $8, $24, $pop311105; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop321106; NO-SIMD128-FAST-NEXT:    i32.const $push80=, 2551107; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $9, $pop801108; NO-SIMD128-FAST-NEXT:    i32.const $push79=, 2551109; NO-SIMD128-FAST-NEXT:    i32.and $push33=, $25, $pop791110; NO-SIMD128-FAST-NEXT:    i32.gt_u $push35=, $pop34, $pop331111; NO-SIMD128-FAST-NEXT:    i32.select $push36=, $9, $25, $pop351112; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop361113; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 2551114; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $10, $pop781115; NO-SIMD128-FAST-NEXT:    i32.const $push77=, 2551116; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $26, $pop771117; NO-SIMD128-FAST-NEXT:    i32.gt_u $push39=, $pop38, $pop371118; NO-SIMD128-FAST-NEXT:    i32.select $push40=, $10, $26, $pop391119; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop401120; NO-SIMD128-FAST-NEXT:    i32.const $push76=, 2551121; NO-SIMD128-FAST-NEXT:    i32.and $push42=, $11, $pop761122; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 2551123; NO-SIMD128-FAST-NEXT:    i32.and $push41=, $27, $pop751124; NO-SIMD128-FAST-NEXT:    i32.gt_u $push43=, $pop42, $pop411125; NO-SIMD128-FAST-NEXT:    i32.select $push44=, $11, $27, $pop431126; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop441127; NO-SIMD128-FAST-NEXT:    i32.const $push74=, 2551128; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $12, $pop741129; NO-SIMD128-FAST-NEXT:    i32.const $push73=, 2551130; NO-SIMD128-FAST-NEXT:    i32.and $push45=, $28, $pop731131; NO-SIMD128-FAST-NEXT:    i32.gt_u $push47=, $pop46, $pop451132; NO-SIMD128-FAST-NEXT:    i32.select $push48=, $12, $28, $pop471133; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop481134; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 2551135; NO-SIMD128-FAST-NEXT:    i32.and $push50=, $13, $pop721136; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 2551137; NO-SIMD128-FAST-NEXT:    i32.and $push49=, $29, $pop711138; NO-SIMD128-FAST-NEXT:    i32.gt_u $push51=, $pop50, $pop491139; NO-SIMD128-FAST-NEXT:    i32.select $push52=, $13, $29, $pop511140; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop521141; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 2551142; NO-SIMD128-FAST-NEXT:    i32.and $push54=, $14, $pop701143; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 2551144; NO-SIMD128-FAST-NEXT:    i32.and $push53=, $30, $pop691145; NO-SIMD128-FAST-NEXT:    i32.gt_u $push55=, $pop54, $pop531146; NO-SIMD128-FAST-NEXT:    i32.select $push56=, $14, $30, $pop551147; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop561148; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 2551149; NO-SIMD128-FAST-NEXT:    i32.and $push58=, $15, $pop681150; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 2551151; NO-SIMD128-FAST-NEXT:    i32.and $push57=, $31, $pop671152; NO-SIMD128-FAST-NEXT:    i32.gt_u $push59=, $pop58, $pop571153; NO-SIMD128-FAST-NEXT:    i32.select $push60=, $15, $31, $pop591154; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop601155; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 2551156; NO-SIMD128-FAST-NEXT:    i32.and $push62=, $16, $pop661157; NO-SIMD128-FAST-NEXT:    i32.const $push65=, 2551158; NO-SIMD128-FAST-NEXT:    i32.and $push61=, $32, $pop651159; NO-SIMD128-FAST-NEXT:    i32.gt_u $push63=, $pop62, $pop611160; NO-SIMD128-FAST-NEXT:    i32.select $push64=, $16, $32, $pop631161; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop641162; NO-SIMD128-FAST-NEXT:    return1163  %c = icmp ugt <16 x i8> %x, %y1164  %a = select <16 x i1> %c, <16 x i8> %x, <16 x i8> %y1165  ret <16 x i8> %a1166}1167 1168define <16 x i8> @avgr_u_v16i8(<16 x i8> %x, <16 x i8> %y) {1169; SIMD128-LABEL: avgr_u_v16i8:1170; SIMD128:         .functype avgr_u_v16i8 (v128, v128) -> (v128)1171; SIMD128-NEXT:  # %bb.0:1172; SIMD128-NEXT:    i8x16.avgr_u $push0=, $0, $11173; SIMD128-NEXT:    return $pop01174;1175; SIMD128-FAST-LABEL: avgr_u_v16i8:1176; SIMD128-FAST:         .functype avgr_u_v16i8 (v128, v128) -> (v128)1177; SIMD128-FAST-NEXT:  # %bb.0:1178; SIMD128-FAST-NEXT:    i8x16.avgr_u $push0=, $0, $11179; SIMD128-FAST-NEXT:    return $pop01180;1181; NO-SIMD128-LABEL: avgr_u_v16i8:1182; NO-SIMD128:         .functype avgr_u_v16i8 (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) -> ()1183; NO-SIMD128-NEXT:  # %bb.0:1184; NO-SIMD128-NEXT:    i32.add $push0=, $16, $321185; NO-SIMD128-NEXT:    i32.const $push1=, 11186; NO-SIMD128-NEXT:    i32.add $push2=, $pop0, $pop11187; NO-SIMD128-NEXT:    i32.const $push3=, 2541188; NO-SIMD128-NEXT:    i32.and $push4=, $pop2, $pop31189; NO-SIMD128-NEXT:    i32.const $push111=, 11190; NO-SIMD128-NEXT:    i32.shr_u $push5=, $pop4, $pop1111191; NO-SIMD128-NEXT:    i32.store8 15($0), $pop51192; NO-SIMD128-NEXT:    i32.add $push6=, $15, $311193; NO-SIMD128-NEXT:    i32.const $push110=, 11194; NO-SIMD128-NEXT:    i32.add $push7=, $pop6, $pop1101195; NO-SIMD128-NEXT:    i32.const $push109=, 2541196; NO-SIMD128-NEXT:    i32.and $push8=, $pop7, $pop1091197; NO-SIMD128-NEXT:    i32.const $push108=, 11198; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop1081199; NO-SIMD128-NEXT:    i32.store8 14($0), $pop91200; NO-SIMD128-NEXT:    i32.add $push10=, $14, $301201; NO-SIMD128-NEXT:    i32.const $push107=, 11202; NO-SIMD128-NEXT:    i32.add $push11=, $pop10, $pop1071203; NO-SIMD128-NEXT:    i32.const $push106=, 2541204; NO-SIMD128-NEXT:    i32.and $push12=, $pop11, $pop1061205; NO-SIMD128-NEXT:    i32.const $push105=, 11206; NO-SIMD128-NEXT:    i32.shr_u $push13=, $pop12, $pop1051207; NO-SIMD128-NEXT:    i32.store8 13($0), $pop131208; NO-SIMD128-NEXT:    i32.add $push14=, $13, $291209; NO-SIMD128-NEXT:    i32.const $push104=, 11210; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop1041211; NO-SIMD128-NEXT:    i32.const $push103=, 2541212; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $pop1031213; NO-SIMD128-NEXT:    i32.const $push102=, 11214; NO-SIMD128-NEXT:    i32.shr_u $push17=, $pop16, $pop1021215; NO-SIMD128-NEXT:    i32.store8 12($0), $pop171216; NO-SIMD128-NEXT:    i32.add $push18=, $12, $281217; NO-SIMD128-NEXT:    i32.const $push101=, 11218; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop1011219; NO-SIMD128-NEXT:    i32.const $push100=, 2541220; NO-SIMD128-NEXT:    i32.and $push20=, $pop19, $pop1001221; NO-SIMD128-NEXT:    i32.const $push99=, 11222; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop991223; NO-SIMD128-NEXT:    i32.store8 11($0), $pop211224; NO-SIMD128-NEXT:    i32.add $push22=, $11, $271225; NO-SIMD128-NEXT:    i32.const $push98=, 11226; NO-SIMD128-NEXT:    i32.add $push23=, $pop22, $pop981227; NO-SIMD128-NEXT:    i32.const $push97=, 2541228; NO-SIMD128-NEXT:    i32.and $push24=, $pop23, $pop971229; NO-SIMD128-NEXT:    i32.const $push96=, 11230; NO-SIMD128-NEXT:    i32.shr_u $push25=, $pop24, $pop961231; NO-SIMD128-NEXT:    i32.store8 10($0), $pop251232; NO-SIMD128-NEXT:    i32.add $push26=, $10, $261233; NO-SIMD128-NEXT:    i32.const $push95=, 11234; NO-SIMD128-NEXT:    i32.add $push27=, $pop26, $pop951235; NO-SIMD128-NEXT:    i32.const $push94=, 2541236; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $pop941237; NO-SIMD128-NEXT:    i32.const $push93=, 11238; NO-SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop931239; NO-SIMD128-NEXT:    i32.store8 9($0), $pop291240; NO-SIMD128-NEXT:    i32.add $push30=, $9, $251241; NO-SIMD128-NEXT:    i32.const $push92=, 11242; NO-SIMD128-NEXT:    i32.add $push31=, $pop30, $pop921243; NO-SIMD128-NEXT:    i32.const $push91=, 2541244; NO-SIMD128-NEXT:    i32.and $push32=, $pop31, $pop911245; NO-SIMD128-NEXT:    i32.const $push90=, 11246; NO-SIMD128-NEXT:    i32.shr_u $push33=, $pop32, $pop901247; NO-SIMD128-NEXT:    i32.store8 8($0), $pop331248; NO-SIMD128-NEXT:    i32.add $push34=, $8, $241249; NO-SIMD128-NEXT:    i32.const $push89=, 11250; NO-SIMD128-NEXT:    i32.add $push35=, $pop34, $pop891251; NO-SIMD128-NEXT:    i32.const $push88=, 2541252; NO-SIMD128-NEXT:    i32.and $push36=, $pop35, $pop881253; NO-SIMD128-NEXT:    i32.const $push87=, 11254; NO-SIMD128-NEXT:    i32.shr_u $push37=, $pop36, $pop871255; NO-SIMD128-NEXT:    i32.store8 7($0), $pop371256; NO-SIMD128-NEXT:    i32.add $push38=, $7, $231257; NO-SIMD128-NEXT:    i32.const $push86=, 11258; NO-SIMD128-NEXT:    i32.add $push39=, $pop38, $pop861259; NO-SIMD128-NEXT:    i32.const $push85=, 2541260; NO-SIMD128-NEXT:    i32.and $push40=, $pop39, $pop851261; NO-SIMD128-NEXT:    i32.const $push84=, 11262; NO-SIMD128-NEXT:    i32.shr_u $push41=, $pop40, $pop841263; NO-SIMD128-NEXT:    i32.store8 6($0), $pop411264; NO-SIMD128-NEXT:    i32.add $push42=, $6, $221265; NO-SIMD128-NEXT:    i32.const $push83=, 11266; NO-SIMD128-NEXT:    i32.add $push43=, $pop42, $pop831267; NO-SIMD128-NEXT:    i32.const $push82=, 2541268; NO-SIMD128-NEXT:    i32.and $push44=, $pop43, $pop821269; NO-SIMD128-NEXT:    i32.const $push81=, 11270; NO-SIMD128-NEXT:    i32.shr_u $push45=, $pop44, $pop811271; NO-SIMD128-NEXT:    i32.store8 5($0), $pop451272; NO-SIMD128-NEXT:    i32.add $push46=, $5, $211273; NO-SIMD128-NEXT:    i32.const $push80=, 11274; NO-SIMD128-NEXT:    i32.add $push47=, $pop46, $pop801275; NO-SIMD128-NEXT:    i32.const $push79=, 2541276; NO-SIMD128-NEXT:    i32.and $push48=, $pop47, $pop791277; NO-SIMD128-NEXT:    i32.const $push78=, 11278; NO-SIMD128-NEXT:    i32.shr_u $push49=, $pop48, $pop781279; NO-SIMD128-NEXT:    i32.store8 4($0), $pop491280; NO-SIMD128-NEXT:    i32.add $push50=, $4, $201281; NO-SIMD128-NEXT:    i32.const $push77=, 11282; NO-SIMD128-NEXT:    i32.add $push51=, $pop50, $pop771283; NO-SIMD128-NEXT:    i32.const $push76=, 2541284; NO-SIMD128-NEXT:    i32.and $push52=, $pop51, $pop761285; NO-SIMD128-NEXT:    i32.const $push75=, 11286; NO-SIMD128-NEXT:    i32.shr_u $push53=, $pop52, $pop751287; NO-SIMD128-NEXT:    i32.store8 3($0), $pop531288; NO-SIMD128-NEXT:    i32.add $push54=, $3, $191289; NO-SIMD128-NEXT:    i32.const $push74=, 11290; NO-SIMD128-NEXT:    i32.add $push55=, $pop54, $pop741291; NO-SIMD128-NEXT:    i32.const $push73=, 2541292; NO-SIMD128-NEXT:    i32.and $push56=, $pop55, $pop731293; NO-SIMD128-NEXT:    i32.const $push72=, 11294; NO-SIMD128-NEXT:    i32.shr_u $push57=, $pop56, $pop721295; NO-SIMD128-NEXT:    i32.store8 2($0), $pop571296; NO-SIMD128-NEXT:    i32.add $push58=, $2, $181297; NO-SIMD128-NEXT:    i32.const $push71=, 11298; NO-SIMD128-NEXT:    i32.add $push59=, $pop58, $pop711299; NO-SIMD128-NEXT:    i32.const $push70=, 2541300; NO-SIMD128-NEXT:    i32.and $push60=, $pop59, $pop701301; NO-SIMD128-NEXT:    i32.const $push69=, 11302; NO-SIMD128-NEXT:    i32.shr_u $push61=, $pop60, $pop691303; NO-SIMD128-NEXT:    i32.store8 1($0), $pop611304; NO-SIMD128-NEXT:    i32.add $push62=, $1, $171305; NO-SIMD128-NEXT:    i32.const $push68=, 11306; NO-SIMD128-NEXT:    i32.add $push63=, $pop62, $pop681307; NO-SIMD128-NEXT:    i32.const $push67=, 2541308; NO-SIMD128-NEXT:    i32.and $push64=, $pop63, $pop671309; NO-SIMD128-NEXT:    i32.const $push66=, 11310; NO-SIMD128-NEXT:    i32.shr_u $push65=, $pop64, $pop661311; NO-SIMD128-NEXT:    i32.store8 0($0), $pop651312; NO-SIMD128-NEXT:    return1313;1314; NO-SIMD128-FAST-LABEL: avgr_u_v16i8:1315; NO-SIMD128-FAST:         .functype avgr_u_v16i8 (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) -> ()1316; NO-SIMD128-FAST-NEXT:  # %bb.0:1317; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $171318; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 11319; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $pop0, $pop11320; NO-SIMD128-FAST-NEXT:    i32.const $push3=, 2541321; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop2, $pop31322; NO-SIMD128-FAST-NEXT:    i32.const $push111=, 11323; NO-SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop1111324; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop51325; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $2, $181326; NO-SIMD128-FAST-NEXT:    i32.const $push110=, 11327; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $pop6, $pop1101328; NO-SIMD128-FAST-NEXT:    i32.const $push109=, 2541329; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $pop7, $pop1091330; NO-SIMD128-FAST-NEXT:    i32.const $push108=, 11331; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop1081332; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop91333; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $3, $191334; NO-SIMD128-FAST-NEXT:    i32.const $push107=, 11335; NO-SIMD128-FAST-NEXT:    i32.add $push11=, $pop10, $pop1071336; NO-SIMD128-FAST-NEXT:    i32.const $push106=, 2541337; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $pop11, $pop1061338; NO-SIMD128-FAST-NEXT:    i32.const $push105=, 11339; NO-SIMD128-FAST-NEXT:    i32.shr_u $push13=, $pop12, $pop1051340; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop131341; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $4, $201342; NO-SIMD128-FAST-NEXT:    i32.const $push104=, 11343; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop1041344; NO-SIMD128-FAST-NEXT:    i32.const $push103=, 2541345; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $pop1031346; NO-SIMD128-FAST-NEXT:    i32.const $push102=, 11347; NO-SIMD128-FAST-NEXT:    i32.shr_u $push17=, $pop16, $pop1021348; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop171349; NO-SIMD128-FAST-NEXT:    i32.add $push18=, $5, $211350; NO-SIMD128-FAST-NEXT:    i32.const $push101=, 11351; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop1011352; NO-SIMD128-FAST-NEXT:    i32.const $push100=, 2541353; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $pop19, $pop1001354; NO-SIMD128-FAST-NEXT:    i32.const $push99=, 11355; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop991356; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop211357; NO-SIMD128-FAST-NEXT:    i32.add $push22=, $6, $221358; NO-SIMD128-FAST-NEXT:    i32.const $push98=, 11359; NO-SIMD128-FAST-NEXT:    i32.add $push23=, $pop22, $pop981360; NO-SIMD128-FAST-NEXT:    i32.const $push97=, 2541361; NO-SIMD128-FAST-NEXT:    i32.and $push24=, $pop23, $pop971362; NO-SIMD128-FAST-NEXT:    i32.const $push96=, 11363; NO-SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop961364; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop251365; NO-SIMD128-FAST-NEXT:    i32.add $push26=, $7, $231366; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 11367; NO-SIMD128-FAST-NEXT:    i32.add $push27=, $pop26, $pop951368; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 2541369; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop941370; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 11371; NO-SIMD128-FAST-NEXT:    i32.shr_u $push29=, $pop28, $pop931372; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop291373; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $8, $241374; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 11375; NO-SIMD128-FAST-NEXT:    i32.add $push31=, $pop30, $pop921376; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 2541377; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $pop31, $pop911378; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 11379; NO-SIMD128-FAST-NEXT:    i32.shr_u $push33=, $pop32, $pop901380; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop331381; NO-SIMD128-FAST-NEXT:    i32.add $push34=, $9, $251382; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 11383; NO-SIMD128-FAST-NEXT:    i32.add $push35=, $pop34, $pop891384; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 2541385; NO-SIMD128-FAST-NEXT:    i32.and $push36=, $pop35, $pop881386; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 11387; NO-SIMD128-FAST-NEXT:    i32.shr_u $push37=, $pop36, $pop871388; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop371389; NO-SIMD128-FAST-NEXT:    i32.add $push38=, $10, $261390; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 11391; NO-SIMD128-FAST-NEXT:    i32.add $push39=, $pop38, $pop861392; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 2541393; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $pop39, $pop851394; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 11395; NO-SIMD128-FAST-NEXT:    i32.shr_u $push41=, $pop40, $pop841396; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop411397; NO-SIMD128-FAST-NEXT:    i32.add $push42=, $11, $271398; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 11399; NO-SIMD128-FAST-NEXT:    i32.add $push43=, $pop42, $pop831400; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 2541401; NO-SIMD128-FAST-NEXT:    i32.and $push44=, $pop43, $pop821402; NO-SIMD128-FAST-NEXT:    i32.const $push81=, 11403; NO-SIMD128-FAST-NEXT:    i32.shr_u $push45=, $pop44, $pop811404; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop451405; NO-SIMD128-FAST-NEXT:    i32.add $push46=, $12, $281406; NO-SIMD128-FAST-NEXT:    i32.const $push80=, 11407; NO-SIMD128-FAST-NEXT:    i32.add $push47=, $pop46, $pop801408; NO-SIMD128-FAST-NEXT:    i32.const $push79=, 2541409; NO-SIMD128-FAST-NEXT:    i32.and $push48=, $pop47, $pop791410; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 11411; NO-SIMD128-FAST-NEXT:    i32.shr_u $push49=, $pop48, $pop781412; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop491413; NO-SIMD128-FAST-NEXT:    i32.add $push50=, $13, $291414; NO-SIMD128-FAST-NEXT:    i32.const $push77=, 11415; NO-SIMD128-FAST-NEXT:    i32.add $push51=, $pop50, $pop771416; NO-SIMD128-FAST-NEXT:    i32.const $push76=, 2541417; NO-SIMD128-FAST-NEXT:    i32.and $push52=, $pop51, $pop761418; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 11419; NO-SIMD128-FAST-NEXT:    i32.shr_u $push53=, $pop52, $pop751420; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop531421; NO-SIMD128-FAST-NEXT:    i32.add $push54=, $14, $301422; NO-SIMD128-FAST-NEXT:    i32.const $push74=, 11423; NO-SIMD128-FAST-NEXT:    i32.add $push55=, $pop54, $pop741424; NO-SIMD128-FAST-NEXT:    i32.const $push73=, 2541425; NO-SIMD128-FAST-NEXT:    i32.and $push56=, $pop55, $pop731426; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 11427; NO-SIMD128-FAST-NEXT:    i32.shr_u $push57=, $pop56, $pop721428; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop571429; NO-SIMD128-FAST-NEXT:    i32.add $push58=, $15, $311430; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 11431; NO-SIMD128-FAST-NEXT:    i32.add $push59=, $pop58, $pop711432; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 2541433; NO-SIMD128-FAST-NEXT:    i32.and $push60=, $pop59, $pop701434; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 11435; NO-SIMD128-FAST-NEXT:    i32.shr_u $push61=, $pop60, $pop691436; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop611437; NO-SIMD128-FAST-NEXT:    i32.add $push62=, $16, $321438; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 11439; NO-SIMD128-FAST-NEXT:    i32.add $push63=, $pop62, $pop681440; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 2541441; NO-SIMD128-FAST-NEXT:    i32.and $push64=, $pop63, $pop671442; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 11443; NO-SIMD128-FAST-NEXT:    i32.shr_u $push65=, $pop64, $pop661444; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop651445; NO-SIMD128-FAST-NEXT:    return1446  %a = add nuw <16 x i8> %x, %y1447  %b = add nuw <16 x i8> %a, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1,1448                              i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>1449  %c = udiv <16 x i8> %b, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2,1450                           i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>1451  ret <16 x i8> %c1452}1453 1454define <16 x i8> @avgr_u_v16i8_zext(<16 x i8> %x, <16 x i8> %y) {1455; SIMD128-LABEL: avgr_u_v16i8_zext:1456; SIMD128:         .functype avgr_u_v16i8_zext (v128, v128) -> (v128)1457; SIMD128-NEXT:  # %bb.0:1458; SIMD128-NEXT:    i8x16.avgr_u $push0=, $0, $11459; SIMD128-NEXT:    return $pop01460;1461; SIMD128-FAST-LABEL: avgr_u_v16i8_zext:1462; SIMD128-FAST:         .functype avgr_u_v16i8_zext (v128, v128) -> (v128)1463; SIMD128-FAST-NEXT:  # %bb.0:1464; SIMD128-FAST-NEXT:    i8x16.avgr_u $push0=, $0, $11465; SIMD128-FAST-NEXT:    return $pop01466;1467; NO-SIMD128-LABEL: avgr_u_v16i8_zext:1468; NO-SIMD128:         .functype avgr_u_v16i8_zext (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) -> ()1469; NO-SIMD128-NEXT:  # %bb.0:1470; NO-SIMD128-NEXT:    i32.const $push0=, 2551471; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop01472; NO-SIMD128-NEXT:    i32.const $push143=, 2551473; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop1431474; NO-SIMD128-NEXT:    i32.add $push3=, $pop2, $pop11475; NO-SIMD128-NEXT:    i32.const $push4=, 11476; NO-SIMD128-NEXT:    i32.add $push5=, $pop3, $pop41477; NO-SIMD128-NEXT:    i32.const $push142=, 11478; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $pop1421479; NO-SIMD128-NEXT:    i32.store8 15($0), $pop61480; NO-SIMD128-NEXT:    i32.const $push141=, 2551481; NO-SIMD128-NEXT:    i32.and $push8=, $15, $pop1411482; NO-SIMD128-NEXT:    i32.const $push140=, 2551483; NO-SIMD128-NEXT:    i32.and $push7=, $31, $pop1401484; NO-SIMD128-NEXT:    i32.add $push9=, $pop8, $pop71485; NO-SIMD128-NEXT:    i32.const $push139=, 11486; NO-SIMD128-NEXT:    i32.add $push10=, $pop9, $pop1391487; NO-SIMD128-NEXT:    i32.const $push138=, 11488; NO-SIMD128-NEXT:    i32.shr_u $push11=, $pop10, $pop1381489; NO-SIMD128-NEXT:    i32.store8 14($0), $pop111490; NO-SIMD128-NEXT:    i32.const $push137=, 2551491; NO-SIMD128-NEXT:    i32.and $push13=, $14, $pop1371492; NO-SIMD128-NEXT:    i32.const $push136=, 2551493; NO-SIMD128-NEXT:    i32.and $push12=, $30, $pop1361494; NO-SIMD128-NEXT:    i32.add $push14=, $pop13, $pop121495; NO-SIMD128-NEXT:    i32.const $push135=, 11496; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop1351497; NO-SIMD128-NEXT:    i32.const $push134=, 11498; NO-SIMD128-NEXT:    i32.shr_u $push16=, $pop15, $pop1341499; NO-SIMD128-NEXT:    i32.store8 13($0), $pop161500; NO-SIMD128-NEXT:    i32.const $push133=, 2551501; NO-SIMD128-NEXT:    i32.and $push18=, $13, $pop1331502; NO-SIMD128-NEXT:    i32.const $push132=, 2551503; NO-SIMD128-NEXT:    i32.and $push17=, $29, $pop1321504; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop171505; NO-SIMD128-NEXT:    i32.const $push131=, 11506; NO-SIMD128-NEXT:    i32.add $push20=, $pop19, $pop1311507; NO-SIMD128-NEXT:    i32.const $push130=, 11508; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop1301509; NO-SIMD128-NEXT:    i32.store8 12($0), $pop211510; NO-SIMD128-NEXT:    i32.const $push129=, 2551511; NO-SIMD128-NEXT:    i32.and $push23=, $12, $pop1291512; NO-SIMD128-NEXT:    i32.const $push128=, 2551513; NO-SIMD128-NEXT:    i32.and $push22=, $28, $pop1281514; NO-SIMD128-NEXT:    i32.add $push24=, $pop23, $pop221515; NO-SIMD128-NEXT:    i32.const $push127=, 11516; NO-SIMD128-NEXT:    i32.add $push25=, $pop24, $pop1271517; NO-SIMD128-NEXT:    i32.const $push126=, 11518; NO-SIMD128-NEXT:    i32.shr_u $push26=, $pop25, $pop1261519; NO-SIMD128-NEXT:    i32.store8 11($0), $pop261520; NO-SIMD128-NEXT:    i32.const $push125=, 2551521; NO-SIMD128-NEXT:    i32.and $push28=, $11, $pop1251522; NO-SIMD128-NEXT:    i32.const $push124=, 2551523; NO-SIMD128-NEXT:    i32.and $push27=, $27, $pop1241524; NO-SIMD128-NEXT:    i32.add $push29=, $pop28, $pop271525; NO-SIMD128-NEXT:    i32.const $push123=, 11526; NO-SIMD128-NEXT:    i32.add $push30=, $pop29, $pop1231527; NO-SIMD128-NEXT:    i32.const $push122=, 11528; NO-SIMD128-NEXT:    i32.shr_u $push31=, $pop30, $pop1221529; NO-SIMD128-NEXT:    i32.store8 10($0), $pop311530; NO-SIMD128-NEXT:    i32.const $push121=, 2551531; NO-SIMD128-NEXT:    i32.and $push33=, $10, $pop1211532; NO-SIMD128-NEXT:    i32.const $push120=, 2551533; NO-SIMD128-NEXT:    i32.and $push32=, $26, $pop1201534; NO-SIMD128-NEXT:    i32.add $push34=, $pop33, $pop321535; NO-SIMD128-NEXT:    i32.const $push119=, 11536; NO-SIMD128-NEXT:    i32.add $push35=, $pop34, $pop1191537; NO-SIMD128-NEXT:    i32.const $push118=, 11538; NO-SIMD128-NEXT:    i32.shr_u $push36=, $pop35, $pop1181539; NO-SIMD128-NEXT:    i32.store8 9($0), $pop361540; NO-SIMD128-NEXT:    i32.const $push117=, 2551541; NO-SIMD128-NEXT:    i32.and $push38=, $9, $pop1171542; NO-SIMD128-NEXT:    i32.const $push116=, 2551543; NO-SIMD128-NEXT:    i32.and $push37=, $25, $pop1161544; NO-SIMD128-NEXT:    i32.add $push39=, $pop38, $pop371545; NO-SIMD128-NEXT:    i32.const $push115=, 11546; NO-SIMD128-NEXT:    i32.add $push40=, $pop39, $pop1151547; NO-SIMD128-NEXT:    i32.const $push114=, 11548; NO-SIMD128-NEXT:    i32.shr_u $push41=, $pop40, $pop1141549; NO-SIMD128-NEXT:    i32.store8 8($0), $pop411550; NO-SIMD128-NEXT:    i32.const $push113=, 2551551; NO-SIMD128-NEXT:    i32.and $push43=, $8, $pop1131552; NO-SIMD128-NEXT:    i32.const $push112=, 2551553; NO-SIMD128-NEXT:    i32.and $push42=, $24, $pop1121554; NO-SIMD128-NEXT:    i32.add $push44=, $pop43, $pop421555; NO-SIMD128-NEXT:    i32.const $push111=, 11556; NO-SIMD128-NEXT:    i32.add $push45=, $pop44, $pop1111557; NO-SIMD128-NEXT:    i32.const $push110=, 11558; NO-SIMD128-NEXT:    i32.shr_u $push46=, $pop45, $pop1101559; NO-SIMD128-NEXT:    i32.store8 7($0), $pop461560; NO-SIMD128-NEXT:    i32.const $push109=, 2551561; NO-SIMD128-NEXT:    i32.and $push48=, $7, $pop1091562; NO-SIMD128-NEXT:    i32.const $push108=, 2551563; NO-SIMD128-NEXT:    i32.and $push47=, $23, $pop1081564; NO-SIMD128-NEXT:    i32.add $push49=, $pop48, $pop471565; NO-SIMD128-NEXT:    i32.const $push107=, 11566; NO-SIMD128-NEXT:    i32.add $push50=, $pop49, $pop1071567; NO-SIMD128-NEXT:    i32.const $push106=, 11568; NO-SIMD128-NEXT:    i32.shr_u $push51=, $pop50, $pop1061569; NO-SIMD128-NEXT:    i32.store8 6($0), $pop511570; NO-SIMD128-NEXT:    i32.const $push105=, 2551571; NO-SIMD128-NEXT:    i32.and $push53=, $6, $pop1051572; NO-SIMD128-NEXT:    i32.const $push104=, 2551573; NO-SIMD128-NEXT:    i32.and $push52=, $22, $pop1041574; NO-SIMD128-NEXT:    i32.add $push54=, $pop53, $pop521575; NO-SIMD128-NEXT:    i32.const $push103=, 11576; NO-SIMD128-NEXT:    i32.add $push55=, $pop54, $pop1031577; NO-SIMD128-NEXT:    i32.const $push102=, 11578; NO-SIMD128-NEXT:    i32.shr_u $push56=, $pop55, $pop1021579; NO-SIMD128-NEXT:    i32.store8 5($0), $pop561580; NO-SIMD128-NEXT:    i32.const $push101=, 2551581; NO-SIMD128-NEXT:    i32.and $push58=, $5, $pop1011582; NO-SIMD128-NEXT:    i32.const $push100=, 2551583; NO-SIMD128-NEXT:    i32.and $push57=, $21, $pop1001584; NO-SIMD128-NEXT:    i32.add $push59=, $pop58, $pop571585; NO-SIMD128-NEXT:    i32.const $push99=, 11586; NO-SIMD128-NEXT:    i32.add $push60=, $pop59, $pop991587; NO-SIMD128-NEXT:    i32.const $push98=, 11588; NO-SIMD128-NEXT:    i32.shr_u $push61=, $pop60, $pop981589; NO-SIMD128-NEXT:    i32.store8 4($0), $pop611590; NO-SIMD128-NEXT:    i32.const $push97=, 2551591; NO-SIMD128-NEXT:    i32.and $push63=, $4, $pop971592; NO-SIMD128-NEXT:    i32.const $push96=, 2551593; NO-SIMD128-NEXT:    i32.and $push62=, $20, $pop961594; NO-SIMD128-NEXT:    i32.add $push64=, $pop63, $pop621595; NO-SIMD128-NEXT:    i32.const $push95=, 11596; NO-SIMD128-NEXT:    i32.add $push65=, $pop64, $pop951597; NO-SIMD128-NEXT:    i32.const $push94=, 11598; NO-SIMD128-NEXT:    i32.shr_u $push66=, $pop65, $pop941599; NO-SIMD128-NEXT:    i32.store8 3($0), $pop661600; NO-SIMD128-NEXT:    i32.const $push93=, 2551601; NO-SIMD128-NEXT:    i32.and $push68=, $3, $pop931602; NO-SIMD128-NEXT:    i32.const $push92=, 2551603; NO-SIMD128-NEXT:    i32.and $push67=, $19, $pop921604; NO-SIMD128-NEXT:    i32.add $push69=, $pop68, $pop671605; NO-SIMD128-NEXT:    i32.const $push91=, 11606; NO-SIMD128-NEXT:    i32.add $push70=, $pop69, $pop911607; NO-SIMD128-NEXT:    i32.const $push90=, 11608; NO-SIMD128-NEXT:    i32.shr_u $push71=, $pop70, $pop901609; NO-SIMD128-NEXT:    i32.store8 2($0), $pop711610; NO-SIMD128-NEXT:    i32.const $push89=, 2551611; NO-SIMD128-NEXT:    i32.and $push73=, $2, $pop891612; NO-SIMD128-NEXT:    i32.const $push88=, 2551613; NO-SIMD128-NEXT:    i32.and $push72=, $18, $pop881614; NO-SIMD128-NEXT:    i32.add $push74=, $pop73, $pop721615; NO-SIMD128-NEXT:    i32.const $push87=, 11616; NO-SIMD128-NEXT:    i32.add $push75=, $pop74, $pop871617; NO-SIMD128-NEXT:    i32.const $push86=, 11618; NO-SIMD128-NEXT:    i32.shr_u $push76=, $pop75, $pop861619; NO-SIMD128-NEXT:    i32.store8 1($0), $pop761620; NO-SIMD128-NEXT:    i32.const $push85=, 2551621; NO-SIMD128-NEXT:    i32.and $push78=, $1, $pop851622; NO-SIMD128-NEXT:    i32.const $push84=, 2551623; NO-SIMD128-NEXT:    i32.and $push77=, $17, $pop841624; NO-SIMD128-NEXT:    i32.add $push79=, $pop78, $pop771625; NO-SIMD128-NEXT:    i32.const $push83=, 11626; NO-SIMD128-NEXT:    i32.add $push80=, $pop79, $pop831627; NO-SIMD128-NEXT:    i32.const $push82=, 11628; NO-SIMD128-NEXT:    i32.shr_u $push81=, $pop80, $pop821629; NO-SIMD128-NEXT:    i32.store8 0($0), $pop811630; NO-SIMD128-NEXT:    return1631;1632; NO-SIMD128-FAST-LABEL: avgr_u_v16i8_zext:1633; NO-SIMD128-FAST:         .functype avgr_u_v16i8_zext (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) -> ()1634; NO-SIMD128-FAST-NEXT:  # %bb.0:1635; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2551636; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop01637; NO-SIMD128-FAST-NEXT:    i32.const $push143=, 2551638; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop1431639; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $pop2, $pop11640; NO-SIMD128-FAST-NEXT:    i32.const $push4=, 11641; NO-SIMD128-FAST-NEXT:    i32.add $push5=, $pop3, $pop41642; NO-SIMD128-FAST-NEXT:    i32.const $push142=, 11643; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop1421644; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop61645; NO-SIMD128-FAST-NEXT:    i32.const $push141=, 2551646; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $2, $pop1411647; NO-SIMD128-FAST-NEXT:    i32.const $push140=, 2551648; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $18, $pop1401649; NO-SIMD128-FAST-NEXT:    i32.add $push9=, $pop8, $pop71650; NO-SIMD128-FAST-NEXT:    i32.const $push139=, 11651; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $pop9, $pop1391652; NO-SIMD128-FAST-NEXT:    i32.const $push138=, 11653; NO-SIMD128-FAST-NEXT:    i32.shr_u $push11=, $pop10, $pop1381654; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop111655; NO-SIMD128-FAST-NEXT:    i32.const $push137=, 2551656; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $3, $pop1371657; NO-SIMD128-FAST-NEXT:    i32.const $push136=, 2551658; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $19, $pop1361659; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $pop13, $pop121660; NO-SIMD128-FAST-NEXT:    i32.const $push135=, 11661; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop1351662; NO-SIMD128-FAST-NEXT:    i32.const $push134=, 11663; NO-SIMD128-FAST-NEXT:    i32.shr_u $push16=, $pop15, $pop1341664; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop161665; NO-SIMD128-FAST-NEXT:    i32.const $push133=, 2551666; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $4, $pop1331667; NO-SIMD128-FAST-NEXT:    i32.const $push132=, 2551668; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $20, $pop1321669; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop171670; NO-SIMD128-FAST-NEXT:    i32.const $push131=, 11671; NO-SIMD128-FAST-NEXT:    i32.add $push20=, $pop19, $pop1311672; NO-SIMD128-FAST-NEXT:    i32.const $push130=, 11673; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop1301674; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop211675; NO-SIMD128-FAST-NEXT:    i32.const $push129=, 2551676; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $5, $pop1291677; NO-SIMD128-FAST-NEXT:    i32.const $push128=, 2551678; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $21, $pop1281679; NO-SIMD128-FAST-NEXT:    i32.add $push24=, $pop23, $pop221680; NO-SIMD128-FAST-NEXT:    i32.const $push127=, 11681; NO-SIMD128-FAST-NEXT:    i32.add $push25=, $pop24, $pop1271682; NO-SIMD128-FAST-NEXT:    i32.const $push126=, 11683; NO-SIMD128-FAST-NEXT:    i32.shr_u $push26=, $pop25, $pop1261684; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop261685; NO-SIMD128-FAST-NEXT:    i32.const $push125=, 2551686; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $6, $pop1251687; NO-SIMD128-FAST-NEXT:    i32.const $push124=, 2551688; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $22, $pop1241689; NO-SIMD128-FAST-NEXT:    i32.add $push29=, $pop28, $pop271690; NO-SIMD128-FAST-NEXT:    i32.const $push123=, 11691; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $pop29, $pop1231692; NO-SIMD128-FAST-NEXT:    i32.const $push122=, 11693; NO-SIMD128-FAST-NEXT:    i32.shr_u $push31=, $pop30, $pop1221694; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop311695; NO-SIMD128-FAST-NEXT:    i32.const $push121=, 2551696; NO-SIMD128-FAST-NEXT:    i32.and $push33=, $7, $pop1211697; NO-SIMD128-FAST-NEXT:    i32.const $push120=, 2551698; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $23, $pop1201699; NO-SIMD128-FAST-NEXT:    i32.add $push34=, $pop33, $pop321700; NO-SIMD128-FAST-NEXT:    i32.const $push119=, 11701; NO-SIMD128-FAST-NEXT:    i32.add $push35=, $pop34, $pop1191702; NO-SIMD128-FAST-NEXT:    i32.const $push118=, 11703; NO-SIMD128-FAST-NEXT:    i32.shr_u $push36=, $pop35, $pop1181704; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop361705; NO-SIMD128-FAST-NEXT:    i32.const $push117=, 2551706; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $8, $pop1171707; NO-SIMD128-FAST-NEXT:    i32.const $push116=, 2551708; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $24, $pop1161709; NO-SIMD128-FAST-NEXT:    i32.add $push39=, $pop38, $pop371710; NO-SIMD128-FAST-NEXT:    i32.const $push115=, 11711; NO-SIMD128-FAST-NEXT:    i32.add $push40=, $pop39, $pop1151712; NO-SIMD128-FAST-NEXT:    i32.const $push114=, 11713; NO-SIMD128-FAST-NEXT:    i32.shr_u $push41=, $pop40, $pop1141714; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop411715; NO-SIMD128-FAST-NEXT:    i32.const $push113=, 2551716; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $9, $pop1131717; NO-SIMD128-FAST-NEXT:    i32.const $push112=, 2551718; NO-SIMD128-FAST-NEXT:    i32.and $push42=, $25, $pop1121719; NO-SIMD128-FAST-NEXT:    i32.add $push44=, $pop43, $pop421720; NO-SIMD128-FAST-NEXT:    i32.const $push111=, 11721; NO-SIMD128-FAST-NEXT:    i32.add $push45=, $pop44, $pop1111722; NO-SIMD128-FAST-NEXT:    i32.const $push110=, 11723; NO-SIMD128-FAST-NEXT:    i32.shr_u $push46=, $pop45, $pop1101724; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop461725; NO-SIMD128-FAST-NEXT:    i32.const $push109=, 2551726; NO-SIMD128-FAST-NEXT:    i32.and $push48=, $10, $pop1091727; NO-SIMD128-FAST-NEXT:    i32.const $push108=, 2551728; NO-SIMD128-FAST-NEXT:    i32.and $push47=, $26, $pop1081729; NO-SIMD128-FAST-NEXT:    i32.add $push49=, $pop48, $pop471730; NO-SIMD128-FAST-NEXT:    i32.const $push107=, 11731; NO-SIMD128-FAST-NEXT:    i32.add $push50=, $pop49, $pop1071732; NO-SIMD128-FAST-NEXT:    i32.const $push106=, 11733; NO-SIMD128-FAST-NEXT:    i32.shr_u $push51=, $pop50, $pop1061734; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop511735; NO-SIMD128-FAST-NEXT:    i32.const $push105=, 2551736; NO-SIMD128-FAST-NEXT:    i32.and $push53=, $11, $pop1051737; NO-SIMD128-FAST-NEXT:    i32.const $push104=, 2551738; NO-SIMD128-FAST-NEXT:    i32.and $push52=, $27, $pop1041739; NO-SIMD128-FAST-NEXT:    i32.add $push54=, $pop53, $pop521740; NO-SIMD128-FAST-NEXT:    i32.const $push103=, 11741; NO-SIMD128-FAST-NEXT:    i32.add $push55=, $pop54, $pop1031742; NO-SIMD128-FAST-NEXT:    i32.const $push102=, 11743; NO-SIMD128-FAST-NEXT:    i32.shr_u $push56=, $pop55, $pop1021744; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop561745; NO-SIMD128-FAST-NEXT:    i32.const $push101=, 2551746; NO-SIMD128-FAST-NEXT:    i32.and $push58=, $12, $pop1011747; NO-SIMD128-FAST-NEXT:    i32.const $push100=, 2551748; NO-SIMD128-FAST-NEXT:    i32.and $push57=, $28, $pop1001749; NO-SIMD128-FAST-NEXT:    i32.add $push59=, $pop58, $pop571750; NO-SIMD128-FAST-NEXT:    i32.const $push99=, 11751; NO-SIMD128-FAST-NEXT:    i32.add $push60=, $pop59, $pop991752; NO-SIMD128-FAST-NEXT:    i32.const $push98=, 11753; NO-SIMD128-FAST-NEXT:    i32.shr_u $push61=, $pop60, $pop981754; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop611755; NO-SIMD128-FAST-NEXT:    i32.const $push97=, 2551756; NO-SIMD128-FAST-NEXT:    i32.and $push63=, $13, $pop971757; NO-SIMD128-FAST-NEXT:    i32.const $push96=, 2551758; NO-SIMD128-FAST-NEXT:    i32.and $push62=, $29, $pop961759; NO-SIMD128-FAST-NEXT:    i32.add $push64=, $pop63, $pop621760; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 11761; NO-SIMD128-FAST-NEXT:    i32.add $push65=, $pop64, $pop951762; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 11763; NO-SIMD128-FAST-NEXT:    i32.shr_u $push66=, $pop65, $pop941764; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop661765; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 2551766; NO-SIMD128-FAST-NEXT:    i32.and $push68=, $14, $pop931767; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 2551768; NO-SIMD128-FAST-NEXT:    i32.and $push67=, $30, $pop921769; NO-SIMD128-FAST-NEXT:    i32.add $push69=, $pop68, $pop671770; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 11771; NO-SIMD128-FAST-NEXT:    i32.add $push70=, $pop69, $pop911772; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 11773; NO-SIMD128-FAST-NEXT:    i32.shr_u $push71=, $pop70, $pop901774; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop711775; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 2551776; NO-SIMD128-FAST-NEXT:    i32.and $push73=, $15, $pop891777; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 2551778; NO-SIMD128-FAST-NEXT:    i32.and $push72=, $31, $pop881779; NO-SIMD128-FAST-NEXT:    i32.add $push74=, $pop73, $pop721780; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 11781; NO-SIMD128-FAST-NEXT:    i32.add $push75=, $pop74, $pop871782; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 11783; NO-SIMD128-FAST-NEXT:    i32.shr_u $push76=, $pop75, $pop861784; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop761785; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 2551786; NO-SIMD128-FAST-NEXT:    i32.and $push78=, $16, $pop851787; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 2551788; NO-SIMD128-FAST-NEXT:    i32.and $push77=, $32, $pop841789; NO-SIMD128-FAST-NEXT:    i32.add $push79=, $pop78, $pop771790; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 11791; NO-SIMD128-FAST-NEXT:    i32.add $push80=, $pop79, $pop831792; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 11793; NO-SIMD128-FAST-NEXT:    i32.shr_u $push81=, $pop80, $pop821794; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop811795; NO-SIMD128-FAST-NEXT:    return1796  %x.zext = zext <16 x i8> %x to <16 x i16>1797  %y.zext = zext <16 x i8> %y to <16 x i16>1798  %a = add <16 x i16> %x.zext, %y.zext1799  %b = add <16 x i16> %a, splat (i16 1)1800  %c = lshr <16 x i16> %b, splat (i16 1)1801  %c.trunc = trunc <16 x i16> %c to <16 x i8>1802  ret <16 x i8> %c.trunc1803}1804 1805define <8 x i16> @avgr_u_v8i16_zext(<8 x i16> %x, <8 x i16> %y) {1806; SIMD128-LABEL: avgr_u_v8i16_zext:1807; SIMD128:         .functype avgr_u_v8i16_zext (v128, v128) -> (v128)1808; SIMD128-NEXT:  # %bb.0:1809; SIMD128-NEXT:    i16x8.avgr_u $push0=, $0, $11810; SIMD128-NEXT:    return $pop01811;1812; SIMD128-FAST-LABEL: avgr_u_v8i16_zext:1813; SIMD128-FAST:         .functype avgr_u_v8i16_zext (v128, v128) -> (v128)1814; SIMD128-FAST-NEXT:  # %bb.0:1815; SIMD128-FAST-NEXT:    i16x8.avgr_u $push0=, $0, $11816; SIMD128-FAST-NEXT:    return $pop01817;1818; NO-SIMD128-LABEL: avgr_u_v8i16_zext:1819; NO-SIMD128:         .functype avgr_u_v8i16_zext (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()1820; NO-SIMD128-NEXT:  # %bb.0:1821; NO-SIMD128-NEXT:    i32.const $push0=, 655351822; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop01823; NO-SIMD128-NEXT:    i32.const $push71=, 655351824; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop711825; NO-SIMD128-NEXT:    i32.add $push3=, $pop2, $pop11826; NO-SIMD128-NEXT:    i32.const $push4=, 11827; NO-SIMD128-NEXT:    i32.add $push5=, $pop3, $pop41828; NO-SIMD128-NEXT:    i32.const $push70=, 11829; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $pop701830; NO-SIMD128-NEXT:    i32.store16 14($0), $pop61831; NO-SIMD128-NEXT:    i32.const $push69=, 655351832; NO-SIMD128-NEXT:    i32.and $push8=, $7, $pop691833; NO-SIMD128-NEXT:    i32.const $push68=, 655351834; NO-SIMD128-NEXT:    i32.and $push7=, $15, $pop681835; NO-SIMD128-NEXT:    i32.add $push9=, $pop8, $pop71836; NO-SIMD128-NEXT:    i32.const $push67=, 11837; NO-SIMD128-NEXT:    i32.add $push10=, $pop9, $pop671838; NO-SIMD128-NEXT:    i32.const $push66=, 11839; NO-SIMD128-NEXT:    i32.shr_u $push11=, $pop10, $pop661840; NO-SIMD128-NEXT:    i32.store16 12($0), $pop111841; NO-SIMD128-NEXT:    i32.const $push65=, 655351842; NO-SIMD128-NEXT:    i32.and $push13=, $6, $pop651843; NO-SIMD128-NEXT:    i32.const $push64=, 655351844; NO-SIMD128-NEXT:    i32.and $push12=, $14, $pop641845; NO-SIMD128-NEXT:    i32.add $push14=, $pop13, $pop121846; NO-SIMD128-NEXT:    i32.const $push63=, 11847; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop631848; NO-SIMD128-NEXT:    i32.const $push62=, 11849; NO-SIMD128-NEXT:    i32.shr_u $push16=, $pop15, $pop621850; NO-SIMD128-NEXT:    i32.store16 10($0), $pop161851; NO-SIMD128-NEXT:    i32.const $push61=, 655351852; NO-SIMD128-NEXT:    i32.and $push18=, $5, $pop611853; NO-SIMD128-NEXT:    i32.const $push60=, 655351854; NO-SIMD128-NEXT:    i32.and $push17=, $13, $pop601855; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop171856; NO-SIMD128-NEXT:    i32.const $push59=, 11857; NO-SIMD128-NEXT:    i32.add $push20=, $pop19, $pop591858; NO-SIMD128-NEXT:    i32.const $push58=, 11859; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop581860; NO-SIMD128-NEXT:    i32.store16 8($0), $pop211861; NO-SIMD128-NEXT:    i32.const $push57=, 655351862; NO-SIMD128-NEXT:    i32.and $push23=, $4, $pop571863; NO-SIMD128-NEXT:    i32.const $push56=, 655351864; NO-SIMD128-NEXT:    i32.and $push22=, $12, $pop561865; NO-SIMD128-NEXT:    i32.add $push24=, $pop23, $pop221866; NO-SIMD128-NEXT:    i32.const $push55=, 11867; NO-SIMD128-NEXT:    i32.add $push25=, $pop24, $pop551868; NO-SIMD128-NEXT:    i32.const $push54=, 11869; NO-SIMD128-NEXT:    i32.shr_u $push26=, $pop25, $pop541870; NO-SIMD128-NEXT:    i32.store16 6($0), $pop261871; NO-SIMD128-NEXT:    i32.const $push53=, 655351872; NO-SIMD128-NEXT:    i32.and $push28=, $3, $pop531873; NO-SIMD128-NEXT:    i32.const $push52=, 655351874; NO-SIMD128-NEXT:    i32.and $push27=, $11, $pop521875; NO-SIMD128-NEXT:    i32.add $push29=, $pop28, $pop271876; NO-SIMD128-NEXT:    i32.const $push51=, 11877; NO-SIMD128-NEXT:    i32.add $push30=, $pop29, $pop511878; NO-SIMD128-NEXT:    i32.const $push50=, 11879; NO-SIMD128-NEXT:    i32.shr_u $push31=, $pop30, $pop501880; NO-SIMD128-NEXT:    i32.store16 4($0), $pop311881; NO-SIMD128-NEXT:    i32.const $push49=, 655351882; NO-SIMD128-NEXT:    i32.and $push33=, $2, $pop491883; NO-SIMD128-NEXT:    i32.const $push48=, 655351884; NO-SIMD128-NEXT:    i32.and $push32=, $10, $pop481885; NO-SIMD128-NEXT:    i32.add $push34=, $pop33, $pop321886; NO-SIMD128-NEXT:    i32.const $push47=, 11887; NO-SIMD128-NEXT:    i32.add $push35=, $pop34, $pop471888; NO-SIMD128-NEXT:    i32.const $push46=, 11889; NO-SIMD128-NEXT:    i32.shr_u $push36=, $pop35, $pop461890; NO-SIMD128-NEXT:    i32.store16 2($0), $pop361891; NO-SIMD128-NEXT:    i32.const $push45=, 655351892; NO-SIMD128-NEXT:    i32.and $push38=, $1, $pop451893; NO-SIMD128-NEXT:    i32.const $push44=, 655351894; NO-SIMD128-NEXT:    i32.and $push37=, $9, $pop441895; NO-SIMD128-NEXT:    i32.add $push39=, $pop38, $pop371896; NO-SIMD128-NEXT:    i32.const $push43=, 11897; NO-SIMD128-NEXT:    i32.add $push40=, $pop39, $pop431898; NO-SIMD128-NEXT:    i32.const $push42=, 11899; NO-SIMD128-NEXT:    i32.shr_u $push41=, $pop40, $pop421900; NO-SIMD128-NEXT:    i32.store16 0($0), $pop411901; NO-SIMD128-NEXT:    return1902;1903; NO-SIMD128-FAST-LABEL: avgr_u_v8i16_zext:1904; NO-SIMD128-FAST:         .functype avgr_u_v8i16_zext (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()1905; NO-SIMD128-FAST-NEXT:  # %bb.0:1906; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655351907; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop01908; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 655351909; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop711910; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $pop2, $pop11911; NO-SIMD128-FAST-NEXT:    i32.const $push4=, 11912; NO-SIMD128-FAST-NEXT:    i32.add $push5=, $pop3, $pop41913; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 11914; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop701915; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop61916; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 655351917; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $2, $pop691918; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 655351919; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $10, $pop681920; NO-SIMD128-FAST-NEXT:    i32.add $push9=, $pop8, $pop71921; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 11922; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $pop9, $pop671923; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 11924; NO-SIMD128-FAST-NEXT:    i32.shr_u $push11=, $pop10, $pop661925; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop111926; NO-SIMD128-FAST-NEXT:    i32.const $push65=, 655351927; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $3, $pop651928; NO-SIMD128-FAST-NEXT:    i32.const $push64=, 655351929; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $11, $pop641930; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $pop13, $pop121931; NO-SIMD128-FAST-NEXT:    i32.const $push63=, 11932; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop631933; NO-SIMD128-FAST-NEXT:    i32.const $push62=, 11934; NO-SIMD128-FAST-NEXT:    i32.shr_u $push16=, $pop15, $pop621935; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop161936; NO-SIMD128-FAST-NEXT:    i32.const $push61=, 655351937; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $4, $pop611938; NO-SIMD128-FAST-NEXT:    i32.const $push60=, 655351939; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $12, $pop601940; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop171941; NO-SIMD128-FAST-NEXT:    i32.const $push59=, 11942; NO-SIMD128-FAST-NEXT:    i32.add $push20=, $pop19, $pop591943; NO-SIMD128-FAST-NEXT:    i32.const $push58=, 11944; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop581945; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop211946; NO-SIMD128-FAST-NEXT:    i32.const $push57=, 655351947; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $5, $pop571948; NO-SIMD128-FAST-NEXT:    i32.const $push56=, 655351949; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $13, $pop561950; NO-SIMD128-FAST-NEXT:    i32.add $push24=, $pop23, $pop221951; NO-SIMD128-FAST-NEXT:    i32.const $push55=, 11952; NO-SIMD128-FAST-NEXT:    i32.add $push25=, $pop24, $pop551953; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 11954; NO-SIMD128-FAST-NEXT:    i32.shr_u $push26=, $pop25, $pop541955; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop261956; NO-SIMD128-FAST-NEXT:    i32.const $push53=, 655351957; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $6, $pop531958; NO-SIMD128-FAST-NEXT:    i32.const $push52=, 655351959; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $14, $pop521960; NO-SIMD128-FAST-NEXT:    i32.add $push29=, $pop28, $pop271961; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 11962; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $pop29, $pop511963; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 11964; NO-SIMD128-FAST-NEXT:    i32.shr_u $push31=, $pop30, $pop501965; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop311966; NO-SIMD128-FAST-NEXT:    i32.const $push49=, 655351967; NO-SIMD128-FAST-NEXT:    i32.and $push33=, $7, $pop491968; NO-SIMD128-FAST-NEXT:    i32.const $push48=, 655351969; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $15, $pop481970; NO-SIMD128-FAST-NEXT:    i32.add $push34=, $pop33, $pop321971; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 11972; NO-SIMD128-FAST-NEXT:    i32.add $push35=, $pop34, $pop471973; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 11974; NO-SIMD128-FAST-NEXT:    i32.shr_u $push36=, $pop35, $pop461975; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop361976; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 655351977; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $8, $pop451978; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 655351979; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $16, $pop441980; NO-SIMD128-FAST-NEXT:    i32.add $push39=, $pop38, $pop371981; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 11982; NO-SIMD128-FAST-NEXT:    i32.add $push40=, $pop39, $pop431983; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 11984; NO-SIMD128-FAST-NEXT:    i32.shr_u $push41=, $pop40, $pop421985; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop411986; NO-SIMD128-FAST-NEXT:    return1987  %x.zext = zext <8 x i16> %x to <8 x i32>1988  %y.zext = zext <8 x i16> %y to <8 x i32>1989  %a = add <8 x i32> %x.zext, %y.zext1990  %b = add <8 x i32> %a, splat (i32 1)1991  %c = lshr <8 x i32> %b, splat (i32 1)1992  %c.trunc = trunc <8 x i32> %c to <8 x i16>1993  ret <8 x i16> %c.trunc1994}1995define void @avgr_undef_shuffle_lanes(ptr %res, <8 x i8> %a, <8 x i8> %b, <8 x i8> %c, <8 x i8> %d) {1996; SIMD128-LABEL: avgr_undef_shuffle_lanes:1997; SIMD128:         .functype avgr_undef_shuffle_lanes (i32, v128, v128, v128, v128) -> ()1998; SIMD128-NEXT:  # %bb.0:1999; SIMD128-NEXT:    i8x16.avgr_u $push1=, $1, $22000; SIMD128-NEXT:    i16x8.extend_low_i8x16_u $push8=, $pop12001; SIMD128-NEXT:    local.tee $push7=, $2=, $pop82002; SIMD128-NEXT:    i8x16.avgr_u $push0=, $3, $42003; SIMD128-NEXT:    i16x8.extend_low_i8x16_u $push6=, $pop02004; SIMD128-NEXT:    local.tee $push5=, $4=, $pop62005; SIMD128-NEXT:    i8x16.shuffle $push3=, $pop7, $pop5, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 232006; SIMD128-NEXT:    i8x16.shuffle $push2=, $2, $4, 8, 9, 24, 25, 10, 11, 26, 27, 12, 13, 28, 29, 14, 15, 30, 312007; SIMD128-NEXT:    i8x16.narrow_i16x8_u $push4=, $pop3, $pop22008; SIMD128-NEXT:    v128.store 0($0):p2align=0, $pop42009; SIMD128-NEXT:    return2010;2011; SIMD128-FAST-LABEL: avgr_undef_shuffle_lanes:2012; SIMD128-FAST:         .functype avgr_undef_shuffle_lanes (i32, v128, v128, v128, v128) -> ()2013; SIMD128-FAST-NEXT:  # %bb.0:2014; SIMD128-FAST-NEXT:    i8x16.avgr_u $push1=, $1, $22015; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_u $push8=, $pop12016; SIMD128-FAST-NEXT:    local.tee $push7=, $2=, $pop82017; SIMD128-FAST-NEXT:    i8x16.avgr_u $push0=, $3, $42018; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_u $push6=, $pop02019; SIMD128-FAST-NEXT:    local.tee $push5=, $4=, $pop62020; SIMD128-FAST-NEXT:    i8x16.shuffle $push3=, $pop7, $pop5, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 232021; SIMD128-FAST-NEXT:    i8x16.shuffle $push2=, $2, $4, 8, 9, 24, 25, 10, 11, 26, 27, 12, 13, 28, 29, 14, 15, 30, 312022; SIMD128-FAST-NEXT:    i8x16.narrow_i16x8_u $push4=, $pop3, $pop22023; SIMD128-FAST-NEXT:    v128.store 0($0):p2align=0, $pop42024; SIMD128-FAST-NEXT:    return2025;2026; NO-SIMD128-LABEL: avgr_undef_shuffle_lanes:2027; NO-SIMD128:         .functype avgr_undef_shuffle_lanes (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) -> ()2028; NO-SIMD128-NEXT:  # %bb.0:2029; NO-SIMD128-NEXT:    i32.const $push0=, 2552030; NO-SIMD128-NEXT:    i32.and $push2=, $24, $pop02031; NO-SIMD128-NEXT:    i32.const $push143=, 2552032; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop1432033; NO-SIMD128-NEXT:    i32.add $push3=, $pop2, $pop12034; NO-SIMD128-NEXT:    i32.const $push4=, 12035; NO-SIMD128-NEXT:    i32.add $push5=, $pop3, $pop42036; NO-SIMD128-NEXT:    i32.const $push142=, 12037; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $pop1422038; NO-SIMD128-NEXT:    i32.store8 15($0), $pop62039; NO-SIMD128-NEXT:    i32.const $push141=, 2552040; NO-SIMD128-NEXT:    i32.and $push8=, $8, $pop1412041; NO-SIMD128-NEXT:    i32.const $push140=, 2552042; NO-SIMD128-NEXT:    i32.and $push7=, $16, $pop1402043; NO-SIMD128-NEXT:    i32.add $push9=, $pop8, $pop72044; NO-SIMD128-NEXT:    i32.const $push139=, 12045; NO-SIMD128-NEXT:    i32.add $push10=, $pop9, $pop1392046; NO-SIMD128-NEXT:    i32.const $push138=, 12047; NO-SIMD128-NEXT:    i32.shr_u $push11=, $pop10, $pop1382048; NO-SIMD128-NEXT:    i32.store8 14($0), $pop112049; NO-SIMD128-NEXT:    i32.const $push137=, 2552050; NO-SIMD128-NEXT:    i32.and $push13=, $23, $pop1372051; NO-SIMD128-NEXT:    i32.const $push136=, 2552052; NO-SIMD128-NEXT:    i32.and $push12=, $31, $pop1362053; NO-SIMD128-NEXT:    i32.add $push14=, $pop13, $pop122054; NO-SIMD128-NEXT:    i32.const $push135=, 12055; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop1352056; NO-SIMD128-NEXT:    i32.const $push134=, 12057; NO-SIMD128-NEXT:    i32.shr_u $push16=, $pop15, $pop1342058; NO-SIMD128-NEXT:    i32.store8 13($0), $pop162059; NO-SIMD128-NEXT:    i32.const $push133=, 2552060; NO-SIMD128-NEXT:    i32.and $push18=, $7, $pop1332061; NO-SIMD128-NEXT:    i32.const $push132=, 2552062; NO-SIMD128-NEXT:    i32.and $push17=, $15, $pop1322063; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop172064; NO-SIMD128-NEXT:    i32.const $push131=, 12065; NO-SIMD128-NEXT:    i32.add $push20=, $pop19, $pop1312066; NO-SIMD128-NEXT:    i32.const $push130=, 12067; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop1302068; NO-SIMD128-NEXT:    i32.store8 12($0), $pop212069; NO-SIMD128-NEXT:    i32.const $push129=, 2552070; NO-SIMD128-NEXT:    i32.and $push23=, $22, $pop1292071; NO-SIMD128-NEXT:    i32.const $push128=, 2552072; NO-SIMD128-NEXT:    i32.and $push22=, $30, $pop1282073; NO-SIMD128-NEXT:    i32.add $push24=, $pop23, $pop222074; NO-SIMD128-NEXT:    i32.const $push127=, 12075; NO-SIMD128-NEXT:    i32.add $push25=, $pop24, $pop1272076; NO-SIMD128-NEXT:    i32.const $push126=, 12077; NO-SIMD128-NEXT:    i32.shr_u $push26=, $pop25, $pop1262078; NO-SIMD128-NEXT:    i32.store8 11($0), $pop262079; NO-SIMD128-NEXT:    i32.const $push125=, 2552080; NO-SIMD128-NEXT:    i32.and $push28=, $6, $pop1252081; NO-SIMD128-NEXT:    i32.const $push124=, 2552082; NO-SIMD128-NEXT:    i32.and $push27=, $14, $pop1242083; NO-SIMD128-NEXT:    i32.add $push29=, $pop28, $pop272084; NO-SIMD128-NEXT:    i32.const $push123=, 12085; NO-SIMD128-NEXT:    i32.add $push30=, $pop29, $pop1232086; NO-SIMD128-NEXT:    i32.const $push122=, 12087; NO-SIMD128-NEXT:    i32.shr_u $push31=, $pop30, $pop1222088; NO-SIMD128-NEXT:    i32.store8 10($0), $pop312089; NO-SIMD128-NEXT:    i32.const $push121=, 2552090; NO-SIMD128-NEXT:    i32.and $push33=, $21, $pop1212091; NO-SIMD128-NEXT:    i32.const $push120=, 2552092; NO-SIMD128-NEXT:    i32.and $push32=, $29, $pop1202093; NO-SIMD128-NEXT:    i32.add $push34=, $pop33, $pop322094; NO-SIMD128-NEXT:    i32.const $push119=, 12095; NO-SIMD128-NEXT:    i32.add $push35=, $pop34, $pop1192096; NO-SIMD128-NEXT:    i32.const $push118=, 12097; NO-SIMD128-NEXT:    i32.shr_u $push36=, $pop35, $pop1182098; NO-SIMD128-NEXT:    i32.store8 9($0), $pop362099; NO-SIMD128-NEXT:    i32.const $push117=, 2552100; NO-SIMD128-NEXT:    i32.and $push38=, $5, $pop1172101; NO-SIMD128-NEXT:    i32.const $push116=, 2552102; NO-SIMD128-NEXT:    i32.and $push37=, $13, $pop1162103; NO-SIMD128-NEXT:    i32.add $push39=, $pop38, $pop372104; NO-SIMD128-NEXT:    i32.const $push115=, 12105; NO-SIMD128-NEXT:    i32.add $push40=, $pop39, $pop1152106; NO-SIMD128-NEXT:    i32.const $push114=, 12107; NO-SIMD128-NEXT:    i32.shr_u $push41=, $pop40, $pop1142108; NO-SIMD128-NEXT:    i32.store8 8($0), $pop412109; NO-SIMD128-NEXT:    i32.const $push113=, 2552110; NO-SIMD128-NEXT:    i32.and $push43=, $20, $pop1132111; NO-SIMD128-NEXT:    i32.const $push112=, 2552112; NO-SIMD128-NEXT:    i32.and $push42=, $28, $pop1122113; NO-SIMD128-NEXT:    i32.add $push44=, $pop43, $pop422114; NO-SIMD128-NEXT:    i32.const $push111=, 12115; NO-SIMD128-NEXT:    i32.add $push45=, $pop44, $pop1112116; NO-SIMD128-NEXT:    i32.const $push110=, 12117; NO-SIMD128-NEXT:    i32.shr_u $push46=, $pop45, $pop1102118; NO-SIMD128-NEXT:    i32.store8 7($0), $pop462119; NO-SIMD128-NEXT:    i32.const $push109=, 2552120; NO-SIMD128-NEXT:    i32.and $push48=, $4, $pop1092121; NO-SIMD128-NEXT:    i32.const $push108=, 2552122; NO-SIMD128-NEXT:    i32.and $push47=, $12, $pop1082123; NO-SIMD128-NEXT:    i32.add $push49=, $pop48, $pop472124; NO-SIMD128-NEXT:    i32.const $push107=, 12125; NO-SIMD128-NEXT:    i32.add $push50=, $pop49, $pop1072126; NO-SIMD128-NEXT:    i32.const $push106=, 12127; NO-SIMD128-NEXT:    i32.shr_u $push51=, $pop50, $pop1062128; NO-SIMD128-NEXT:    i32.store8 6($0), $pop512129; NO-SIMD128-NEXT:    i32.const $push105=, 2552130; NO-SIMD128-NEXT:    i32.and $push53=, $19, $pop1052131; NO-SIMD128-NEXT:    i32.const $push104=, 2552132; NO-SIMD128-NEXT:    i32.and $push52=, $27, $pop1042133; NO-SIMD128-NEXT:    i32.add $push54=, $pop53, $pop522134; NO-SIMD128-NEXT:    i32.const $push103=, 12135; NO-SIMD128-NEXT:    i32.add $push55=, $pop54, $pop1032136; NO-SIMD128-NEXT:    i32.const $push102=, 12137; NO-SIMD128-NEXT:    i32.shr_u $push56=, $pop55, $pop1022138; NO-SIMD128-NEXT:    i32.store8 5($0), $pop562139; NO-SIMD128-NEXT:    i32.const $push101=, 2552140; NO-SIMD128-NEXT:    i32.and $push58=, $3, $pop1012141; NO-SIMD128-NEXT:    i32.const $push100=, 2552142; NO-SIMD128-NEXT:    i32.and $push57=, $11, $pop1002143; NO-SIMD128-NEXT:    i32.add $push59=, $pop58, $pop572144; NO-SIMD128-NEXT:    i32.const $push99=, 12145; NO-SIMD128-NEXT:    i32.add $push60=, $pop59, $pop992146; NO-SIMD128-NEXT:    i32.const $push98=, 12147; NO-SIMD128-NEXT:    i32.shr_u $push61=, $pop60, $pop982148; NO-SIMD128-NEXT:    i32.store8 4($0), $pop612149; NO-SIMD128-NEXT:    i32.const $push97=, 2552150; NO-SIMD128-NEXT:    i32.and $push63=, $18, $pop972151; NO-SIMD128-NEXT:    i32.const $push96=, 2552152; NO-SIMD128-NEXT:    i32.and $push62=, $26, $pop962153; NO-SIMD128-NEXT:    i32.add $push64=, $pop63, $pop622154; NO-SIMD128-NEXT:    i32.const $push95=, 12155; NO-SIMD128-NEXT:    i32.add $push65=, $pop64, $pop952156; NO-SIMD128-NEXT:    i32.const $push94=, 12157; NO-SIMD128-NEXT:    i32.shr_u $push66=, $pop65, $pop942158; NO-SIMD128-NEXT:    i32.store8 3($0), $pop662159; NO-SIMD128-NEXT:    i32.const $push93=, 2552160; NO-SIMD128-NEXT:    i32.and $push68=, $2, $pop932161; NO-SIMD128-NEXT:    i32.const $push92=, 2552162; NO-SIMD128-NEXT:    i32.and $push67=, $10, $pop922163; NO-SIMD128-NEXT:    i32.add $push69=, $pop68, $pop672164; NO-SIMD128-NEXT:    i32.const $push91=, 12165; NO-SIMD128-NEXT:    i32.add $push70=, $pop69, $pop912166; NO-SIMD128-NEXT:    i32.const $push90=, 12167; NO-SIMD128-NEXT:    i32.shr_u $push71=, $pop70, $pop902168; NO-SIMD128-NEXT:    i32.store8 2($0), $pop712169; NO-SIMD128-NEXT:    i32.const $push89=, 2552170; NO-SIMD128-NEXT:    i32.and $push73=, $17, $pop892171; NO-SIMD128-NEXT:    i32.const $push88=, 2552172; NO-SIMD128-NEXT:    i32.and $push72=, $25, $pop882173; NO-SIMD128-NEXT:    i32.add $push74=, $pop73, $pop722174; NO-SIMD128-NEXT:    i32.const $push87=, 12175; NO-SIMD128-NEXT:    i32.add $push75=, $pop74, $pop872176; NO-SIMD128-NEXT:    i32.const $push86=, 12177; NO-SIMD128-NEXT:    i32.shr_u $push76=, $pop75, $pop862178; NO-SIMD128-NEXT:    i32.store8 1($0), $pop762179; NO-SIMD128-NEXT:    i32.const $push85=, 2552180; NO-SIMD128-NEXT:    i32.and $push78=, $1, $pop852181; NO-SIMD128-NEXT:    i32.const $push84=, 2552182; NO-SIMD128-NEXT:    i32.and $push77=, $9, $pop842183; NO-SIMD128-NEXT:    i32.add $push79=, $pop78, $pop772184; NO-SIMD128-NEXT:    i32.const $push83=, 12185; NO-SIMD128-NEXT:    i32.add $push80=, $pop79, $pop832186; NO-SIMD128-NEXT:    i32.const $push82=, 12187; NO-SIMD128-NEXT:    i32.shr_u $push81=, $pop80, $pop822188; NO-SIMD128-NEXT:    i32.store8 0($0), $pop812189; NO-SIMD128-NEXT:    return2190;2191; NO-SIMD128-FAST-LABEL: avgr_undef_shuffle_lanes:2192; NO-SIMD128-FAST:         .functype avgr_undef_shuffle_lanes (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) -> ()2193; NO-SIMD128-FAST-NEXT:  # %bb.0:2194; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2552195; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $17, $pop02196; NO-SIMD128-FAST-NEXT:    i32.const $push143=, 2552197; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $25, $pop1432198; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $pop2, $pop12199; NO-SIMD128-FAST-NEXT:    i32.const $push4=, 12200; NO-SIMD128-FAST-NEXT:    i32.add $push5=, $pop3, $pop42201; NO-SIMD128-FAST-NEXT:    i32.const $push142=, 12202; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop1422203; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop62204; NO-SIMD128-FAST-NEXT:    i32.const $push141=, 2552205; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $1, $pop1412206; NO-SIMD128-FAST-NEXT:    i32.const $push140=, 2552207; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $9, $pop1402208; NO-SIMD128-FAST-NEXT:    i32.add $push9=, $pop8, $pop72209; NO-SIMD128-FAST-NEXT:    i32.const $push139=, 12210; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $pop9, $pop1392211; NO-SIMD128-FAST-NEXT:    i32.const $push138=, 12212; NO-SIMD128-FAST-NEXT:    i32.shr_u $push11=, $pop10, $pop1382213; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop112214; NO-SIMD128-FAST-NEXT:    i32.const $push137=, 2552215; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $18, $pop1372216; NO-SIMD128-FAST-NEXT:    i32.const $push136=, 2552217; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $26, $pop1362218; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $pop13, $pop122219; NO-SIMD128-FAST-NEXT:    i32.const $push135=, 12220; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop1352221; NO-SIMD128-FAST-NEXT:    i32.const $push134=, 12222; NO-SIMD128-FAST-NEXT:    i32.shr_u $push16=, $pop15, $pop1342223; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop162224; NO-SIMD128-FAST-NEXT:    i32.const $push133=, 2552225; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $2, $pop1332226; NO-SIMD128-FAST-NEXT:    i32.const $push132=, 2552227; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $10, $pop1322228; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop172229; NO-SIMD128-FAST-NEXT:    i32.const $push131=, 12230; NO-SIMD128-FAST-NEXT:    i32.add $push20=, $pop19, $pop1312231; NO-SIMD128-FAST-NEXT:    i32.const $push130=, 12232; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop1302233; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop212234; NO-SIMD128-FAST-NEXT:    i32.const $push129=, 2552235; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $19, $pop1292236; NO-SIMD128-FAST-NEXT:    i32.const $push128=, 2552237; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $27, $pop1282238; NO-SIMD128-FAST-NEXT:    i32.add $push24=, $pop23, $pop222239; NO-SIMD128-FAST-NEXT:    i32.const $push127=, 12240; NO-SIMD128-FAST-NEXT:    i32.add $push25=, $pop24, $pop1272241; NO-SIMD128-FAST-NEXT:    i32.const $push126=, 12242; NO-SIMD128-FAST-NEXT:    i32.shr_u $push26=, $pop25, $pop1262243; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop262244; NO-SIMD128-FAST-NEXT:    i32.const $push125=, 2552245; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $3, $pop1252246; NO-SIMD128-FAST-NEXT:    i32.const $push124=, 2552247; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $11, $pop1242248; NO-SIMD128-FAST-NEXT:    i32.add $push29=, $pop28, $pop272249; NO-SIMD128-FAST-NEXT:    i32.const $push123=, 12250; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $pop29, $pop1232251; NO-SIMD128-FAST-NEXT:    i32.const $push122=, 12252; NO-SIMD128-FAST-NEXT:    i32.shr_u $push31=, $pop30, $pop1222253; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop312254; NO-SIMD128-FAST-NEXT:    i32.const $push121=, 2552255; NO-SIMD128-FAST-NEXT:    i32.and $push33=, $20, $pop1212256; NO-SIMD128-FAST-NEXT:    i32.const $push120=, 2552257; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $28, $pop1202258; NO-SIMD128-FAST-NEXT:    i32.add $push34=, $pop33, $pop322259; NO-SIMD128-FAST-NEXT:    i32.const $push119=, 12260; NO-SIMD128-FAST-NEXT:    i32.add $push35=, $pop34, $pop1192261; NO-SIMD128-FAST-NEXT:    i32.const $push118=, 12262; NO-SIMD128-FAST-NEXT:    i32.shr_u $push36=, $pop35, $pop1182263; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop362264; NO-SIMD128-FAST-NEXT:    i32.const $push117=, 2552265; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $4, $pop1172266; NO-SIMD128-FAST-NEXT:    i32.const $push116=, 2552267; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $12, $pop1162268; NO-SIMD128-FAST-NEXT:    i32.add $push39=, $pop38, $pop372269; NO-SIMD128-FAST-NEXT:    i32.const $push115=, 12270; NO-SIMD128-FAST-NEXT:    i32.add $push40=, $pop39, $pop1152271; NO-SIMD128-FAST-NEXT:    i32.const $push114=, 12272; NO-SIMD128-FAST-NEXT:    i32.shr_u $push41=, $pop40, $pop1142273; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop412274; NO-SIMD128-FAST-NEXT:    i32.const $push113=, 2552275; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $21, $pop1132276; NO-SIMD128-FAST-NEXT:    i32.const $push112=, 2552277; NO-SIMD128-FAST-NEXT:    i32.and $push42=, $29, $pop1122278; NO-SIMD128-FAST-NEXT:    i32.add $push44=, $pop43, $pop422279; NO-SIMD128-FAST-NEXT:    i32.const $push111=, 12280; NO-SIMD128-FAST-NEXT:    i32.add $push45=, $pop44, $pop1112281; NO-SIMD128-FAST-NEXT:    i32.const $push110=, 12282; NO-SIMD128-FAST-NEXT:    i32.shr_u $push46=, $pop45, $pop1102283; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop462284; NO-SIMD128-FAST-NEXT:    i32.const $push109=, 2552285; NO-SIMD128-FAST-NEXT:    i32.and $push48=, $5, $pop1092286; NO-SIMD128-FAST-NEXT:    i32.const $push108=, 2552287; NO-SIMD128-FAST-NEXT:    i32.and $push47=, $13, $pop1082288; NO-SIMD128-FAST-NEXT:    i32.add $push49=, $pop48, $pop472289; NO-SIMD128-FAST-NEXT:    i32.const $push107=, 12290; NO-SIMD128-FAST-NEXT:    i32.add $push50=, $pop49, $pop1072291; NO-SIMD128-FAST-NEXT:    i32.const $push106=, 12292; NO-SIMD128-FAST-NEXT:    i32.shr_u $push51=, $pop50, $pop1062293; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop512294; NO-SIMD128-FAST-NEXT:    i32.const $push105=, 2552295; NO-SIMD128-FAST-NEXT:    i32.and $push53=, $22, $pop1052296; NO-SIMD128-FAST-NEXT:    i32.const $push104=, 2552297; NO-SIMD128-FAST-NEXT:    i32.and $push52=, $30, $pop1042298; NO-SIMD128-FAST-NEXT:    i32.add $push54=, $pop53, $pop522299; NO-SIMD128-FAST-NEXT:    i32.const $push103=, 12300; NO-SIMD128-FAST-NEXT:    i32.add $push55=, $pop54, $pop1032301; NO-SIMD128-FAST-NEXT:    i32.const $push102=, 12302; NO-SIMD128-FAST-NEXT:    i32.shr_u $push56=, $pop55, $pop1022303; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop562304; NO-SIMD128-FAST-NEXT:    i32.const $push101=, 2552305; NO-SIMD128-FAST-NEXT:    i32.and $push58=, $6, $pop1012306; NO-SIMD128-FAST-NEXT:    i32.const $push100=, 2552307; NO-SIMD128-FAST-NEXT:    i32.and $push57=, $14, $pop1002308; NO-SIMD128-FAST-NEXT:    i32.add $push59=, $pop58, $pop572309; NO-SIMD128-FAST-NEXT:    i32.const $push99=, 12310; NO-SIMD128-FAST-NEXT:    i32.add $push60=, $pop59, $pop992311; NO-SIMD128-FAST-NEXT:    i32.const $push98=, 12312; NO-SIMD128-FAST-NEXT:    i32.shr_u $push61=, $pop60, $pop982313; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop612314; NO-SIMD128-FAST-NEXT:    i32.const $push97=, 2552315; NO-SIMD128-FAST-NEXT:    i32.and $push63=, $23, $pop972316; NO-SIMD128-FAST-NEXT:    i32.const $push96=, 2552317; NO-SIMD128-FAST-NEXT:    i32.and $push62=, $31, $pop962318; NO-SIMD128-FAST-NEXT:    i32.add $push64=, $pop63, $pop622319; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 12320; NO-SIMD128-FAST-NEXT:    i32.add $push65=, $pop64, $pop952321; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 12322; NO-SIMD128-FAST-NEXT:    i32.shr_u $push66=, $pop65, $pop942323; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop662324; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 2552325; NO-SIMD128-FAST-NEXT:    i32.and $push68=, $7, $pop932326; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 2552327; NO-SIMD128-FAST-NEXT:    i32.and $push67=, $15, $pop922328; NO-SIMD128-FAST-NEXT:    i32.add $push69=, $pop68, $pop672329; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 12330; NO-SIMD128-FAST-NEXT:    i32.add $push70=, $pop69, $pop912331; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 12332; NO-SIMD128-FAST-NEXT:    i32.shr_u $push71=, $pop70, $pop902333; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop712334; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 2552335; NO-SIMD128-FAST-NEXT:    i32.and $push73=, $24, $pop892336; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 2552337; NO-SIMD128-FAST-NEXT:    i32.and $push72=, $32, $pop882338; NO-SIMD128-FAST-NEXT:    i32.add $push74=, $pop73, $pop722339; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 12340; NO-SIMD128-FAST-NEXT:    i32.add $push75=, $pop74, $pop872341; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 12342; NO-SIMD128-FAST-NEXT:    i32.shr_u $push76=, $pop75, $pop862343; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop762344; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 2552345; NO-SIMD128-FAST-NEXT:    i32.and $push78=, $8, $pop852346; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 2552347; NO-SIMD128-FAST-NEXT:    i32.and $push77=, $16, $pop842348; NO-SIMD128-FAST-NEXT:    i32.add $push79=, $pop78, $pop772349; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 12350; NO-SIMD128-FAST-NEXT:    i32.add $push80=, $pop79, $pop832351; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 12352; NO-SIMD128-FAST-NEXT:    i32.shr_u $push81=, $pop80, $pop822353; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop812354; NO-SIMD128-FAST-NEXT:    return2355  %zext.0 = zext <8 x i8> %a to <8 x i16>2356  %zext.1 = zext <8 x i8> %b to <8 x i16>2357  %add.0 = add nuw nsw <8 x i16> %zext.0, splat (i16 1)2358  %add.1 = add nuw nsw <8 x i16> %add.0, %zext.12359  %shift.0 = lshr <8 x i16> %add.1, splat (i16 1)2360  %zext.2 = zext <8 x i8> %c to <8 x i16>2361  %zext.3 = zext <8 x i8> %d to <8 x i16>2362  %add.2 = add nuw nsw <8 x i16> %zext.2, splat (i16 1)2363  %add.3 = add nuw nsw <8 x i16> %add.2, %zext.32364  %shift.1 = lshr <8 x i16> %add.3, splat (i16 1)2365  %shuffle = shufflevector <8 x i16> %shift.0, <8 x i16> %shift.1, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>2366  %trunc = trunc nuw <16 x i16> %shuffle to <16 x i8>2367  store <16 x i8> %trunc, ptr %res, align 12368  ret void2369}2370define <16 x i8> @avgr_u_v16i8_wrap(<16 x i8> %x, <16 x i8> %y) {2371; SIMD128-LABEL: avgr_u_v16i8_wrap:2372; SIMD128:         .functype avgr_u_v16i8_wrap (v128, v128) -> (v128)2373; SIMD128-NEXT:  # %bb.0:2374; SIMD128-NEXT:    i8x16.add $push0=, $0, $12375; SIMD128-NEXT:    v128.const $push1=, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12376; SIMD128-NEXT:    i8x16.add $push2=, $pop0, $pop12377; SIMD128-NEXT:    i32.const $push3=, 12378; SIMD128-NEXT:    i8x16.shr_u $push4=, $pop2, $pop32379; SIMD128-NEXT:    return $pop42380;2381; SIMD128-FAST-LABEL: avgr_u_v16i8_wrap:2382; SIMD128-FAST:         .functype avgr_u_v16i8_wrap (v128, v128) -> (v128)2383; SIMD128-FAST-NEXT:  # %bb.0:2384; SIMD128-FAST-NEXT:    i8x16.add $push2=, $0, $12385; SIMD128-FAST-NEXT:    v128.const $push3=, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12386; SIMD128-FAST-NEXT:    i8x16.add $push1=, $pop2, $pop32387; SIMD128-FAST-NEXT:    i32.const $push4=, 12388; SIMD128-FAST-NEXT:    i8x16.shr_u $push0=, $pop1, $pop42389; SIMD128-FAST-NEXT:    return $pop02390;2391; NO-SIMD128-LABEL: avgr_u_v16i8_wrap:2392; NO-SIMD128:         .functype avgr_u_v16i8_wrap (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) -> ()2393; NO-SIMD128-NEXT:  # %bb.0:2394; NO-SIMD128-NEXT:    i32.add $push0=, $16, $322395; NO-SIMD128-NEXT:    i32.const $push1=, 12396; NO-SIMD128-NEXT:    i32.add $push2=, $pop0, $pop12397; NO-SIMD128-NEXT:    i32.const $push3=, 2542398; NO-SIMD128-NEXT:    i32.and $push4=, $pop2, $pop32399; NO-SIMD128-NEXT:    i32.const $push111=, 12400; NO-SIMD128-NEXT:    i32.shr_u $push5=, $pop4, $pop1112401; NO-SIMD128-NEXT:    i32.store8 15($0), $pop52402; NO-SIMD128-NEXT:    i32.add $push6=, $15, $312403; NO-SIMD128-NEXT:    i32.const $push110=, 12404; NO-SIMD128-NEXT:    i32.add $push7=, $pop6, $pop1102405; NO-SIMD128-NEXT:    i32.const $push109=, 2542406; NO-SIMD128-NEXT:    i32.and $push8=, $pop7, $pop1092407; NO-SIMD128-NEXT:    i32.const $push108=, 12408; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop1082409; NO-SIMD128-NEXT:    i32.store8 14($0), $pop92410; NO-SIMD128-NEXT:    i32.add $push10=, $14, $302411; NO-SIMD128-NEXT:    i32.const $push107=, 12412; NO-SIMD128-NEXT:    i32.add $push11=, $pop10, $pop1072413; NO-SIMD128-NEXT:    i32.const $push106=, 2542414; NO-SIMD128-NEXT:    i32.and $push12=, $pop11, $pop1062415; NO-SIMD128-NEXT:    i32.const $push105=, 12416; NO-SIMD128-NEXT:    i32.shr_u $push13=, $pop12, $pop1052417; NO-SIMD128-NEXT:    i32.store8 13($0), $pop132418; NO-SIMD128-NEXT:    i32.add $push14=, $13, $292419; NO-SIMD128-NEXT:    i32.const $push104=, 12420; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop1042421; NO-SIMD128-NEXT:    i32.const $push103=, 2542422; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $pop1032423; NO-SIMD128-NEXT:    i32.const $push102=, 12424; NO-SIMD128-NEXT:    i32.shr_u $push17=, $pop16, $pop1022425; NO-SIMD128-NEXT:    i32.store8 12($0), $pop172426; NO-SIMD128-NEXT:    i32.add $push18=, $12, $282427; NO-SIMD128-NEXT:    i32.const $push101=, 12428; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop1012429; NO-SIMD128-NEXT:    i32.const $push100=, 2542430; NO-SIMD128-NEXT:    i32.and $push20=, $pop19, $pop1002431; NO-SIMD128-NEXT:    i32.const $push99=, 12432; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop992433; NO-SIMD128-NEXT:    i32.store8 11($0), $pop212434; NO-SIMD128-NEXT:    i32.add $push22=, $11, $272435; NO-SIMD128-NEXT:    i32.const $push98=, 12436; NO-SIMD128-NEXT:    i32.add $push23=, $pop22, $pop982437; NO-SIMD128-NEXT:    i32.const $push97=, 2542438; NO-SIMD128-NEXT:    i32.and $push24=, $pop23, $pop972439; NO-SIMD128-NEXT:    i32.const $push96=, 12440; NO-SIMD128-NEXT:    i32.shr_u $push25=, $pop24, $pop962441; NO-SIMD128-NEXT:    i32.store8 10($0), $pop252442; NO-SIMD128-NEXT:    i32.add $push26=, $10, $262443; NO-SIMD128-NEXT:    i32.const $push95=, 12444; NO-SIMD128-NEXT:    i32.add $push27=, $pop26, $pop952445; NO-SIMD128-NEXT:    i32.const $push94=, 2542446; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $pop942447; NO-SIMD128-NEXT:    i32.const $push93=, 12448; NO-SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop932449; NO-SIMD128-NEXT:    i32.store8 9($0), $pop292450; NO-SIMD128-NEXT:    i32.add $push30=, $9, $252451; NO-SIMD128-NEXT:    i32.const $push92=, 12452; NO-SIMD128-NEXT:    i32.add $push31=, $pop30, $pop922453; NO-SIMD128-NEXT:    i32.const $push91=, 2542454; NO-SIMD128-NEXT:    i32.and $push32=, $pop31, $pop912455; NO-SIMD128-NEXT:    i32.const $push90=, 12456; NO-SIMD128-NEXT:    i32.shr_u $push33=, $pop32, $pop902457; NO-SIMD128-NEXT:    i32.store8 8($0), $pop332458; NO-SIMD128-NEXT:    i32.add $push34=, $8, $242459; NO-SIMD128-NEXT:    i32.const $push89=, 12460; NO-SIMD128-NEXT:    i32.add $push35=, $pop34, $pop892461; NO-SIMD128-NEXT:    i32.const $push88=, 2542462; NO-SIMD128-NEXT:    i32.and $push36=, $pop35, $pop882463; NO-SIMD128-NEXT:    i32.const $push87=, 12464; NO-SIMD128-NEXT:    i32.shr_u $push37=, $pop36, $pop872465; NO-SIMD128-NEXT:    i32.store8 7($0), $pop372466; NO-SIMD128-NEXT:    i32.add $push38=, $7, $232467; NO-SIMD128-NEXT:    i32.const $push86=, 12468; NO-SIMD128-NEXT:    i32.add $push39=, $pop38, $pop862469; NO-SIMD128-NEXT:    i32.const $push85=, 2542470; NO-SIMD128-NEXT:    i32.and $push40=, $pop39, $pop852471; NO-SIMD128-NEXT:    i32.const $push84=, 12472; NO-SIMD128-NEXT:    i32.shr_u $push41=, $pop40, $pop842473; NO-SIMD128-NEXT:    i32.store8 6($0), $pop412474; NO-SIMD128-NEXT:    i32.add $push42=, $6, $222475; NO-SIMD128-NEXT:    i32.const $push83=, 12476; NO-SIMD128-NEXT:    i32.add $push43=, $pop42, $pop832477; NO-SIMD128-NEXT:    i32.const $push82=, 2542478; NO-SIMD128-NEXT:    i32.and $push44=, $pop43, $pop822479; NO-SIMD128-NEXT:    i32.const $push81=, 12480; NO-SIMD128-NEXT:    i32.shr_u $push45=, $pop44, $pop812481; NO-SIMD128-NEXT:    i32.store8 5($0), $pop452482; NO-SIMD128-NEXT:    i32.add $push46=, $5, $212483; NO-SIMD128-NEXT:    i32.const $push80=, 12484; NO-SIMD128-NEXT:    i32.add $push47=, $pop46, $pop802485; NO-SIMD128-NEXT:    i32.const $push79=, 2542486; NO-SIMD128-NEXT:    i32.and $push48=, $pop47, $pop792487; NO-SIMD128-NEXT:    i32.const $push78=, 12488; NO-SIMD128-NEXT:    i32.shr_u $push49=, $pop48, $pop782489; NO-SIMD128-NEXT:    i32.store8 4($0), $pop492490; NO-SIMD128-NEXT:    i32.add $push50=, $4, $202491; NO-SIMD128-NEXT:    i32.const $push77=, 12492; NO-SIMD128-NEXT:    i32.add $push51=, $pop50, $pop772493; NO-SIMD128-NEXT:    i32.const $push76=, 2542494; NO-SIMD128-NEXT:    i32.and $push52=, $pop51, $pop762495; NO-SIMD128-NEXT:    i32.const $push75=, 12496; NO-SIMD128-NEXT:    i32.shr_u $push53=, $pop52, $pop752497; NO-SIMD128-NEXT:    i32.store8 3($0), $pop532498; NO-SIMD128-NEXT:    i32.add $push54=, $3, $192499; NO-SIMD128-NEXT:    i32.const $push74=, 12500; NO-SIMD128-NEXT:    i32.add $push55=, $pop54, $pop742501; NO-SIMD128-NEXT:    i32.const $push73=, 2542502; NO-SIMD128-NEXT:    i32.and $push56=, $pop55, $pop732503; NO-SIMD128-NEXT:    i32.const $push72=, 12504; NO-SIMD128-NEXT:    i32.shr_u $push57=, $pop56, $pop722505; NO-SIMD128-NEXT:    i32.store8 2($0), $pop572506; NO-SIMD128-NEXT:    i32.add $push58=, $2, $182507; NO-SIMD128-NEXT:    i32.const $push71=, 12508; NO-SIMD128-NEXT:    i32.add $push59=, $pop58, $pop712509; NO-SIMD128-NEXT:    i32.const $push70=, 2542510; NO-SIMD128-NEXT:    i32.and $push60=, $pop59, $pop702511; NO-SIMD128-NEXT:    i32.const $push69=, 12512; NO-SIMD128-NEXT:    i32.shr_u $push61=, $pop60, $pop692513; NO-SIMD128-NEXT:    i32.store8 1($0), $pop612514; NO-SIMD128-NEXT:    i32.add $push62=, $1, $172515; NO-SIMD128-NEXT:    i32.const $push68=, 12516; NO-SIMD128-NEXT:    i32.add $push63=, $pop62, $pop682517; NO-SIMD128-NEXT:    i32.const $push67=, 2542518; NO-SIMD128-NEXT:    i32.and $push64=, $pop63, $pop672519; NO-SIMD128-NEXT:    i32.const $push66=, 12520; NO-SIMD128-NEXT:    i32.shr_u $push65=, $pop64, $pop662521; NO-SIMD128-NEXT:    i32.store8 0($0), $pop652522; NO-SIMD128-NEXT:    return2523;2524; NO-SIMD128-FAST-LABEL: avgr_u_v16i8_wrap:2525; NO-SIMD128-FAST:         .functype avgr_u_v16i8_wrap (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) -> ()2526; NO-SIMD128-FAST-NEXT:  # %bb.0:2527; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $172528; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 12529; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $pop0, $pop12530; NO-SIMD128-FAST-NEXT:    i32.const $push3=, 2542531; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop2, $pop32532; NO-SIMD128-FAST-NEXT:    i32.const $push111=, 12533; NO-SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop1112534; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop52535; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $2, $182536; NO-SIMD128-FAST-NEXT:    i32.const $push110=, 12537; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $pop6, $pop1102538; NO-SIMD128-FAST-NEXT:    i32.const $push109=, 2542539; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $pop7, $pop1092540; NO-SIMD128-FAST-NEXT:    i32.const $push108=, 12541; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop1082542; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop92543; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $3, $192544; NO-SIMD128-FAST-NEXT:    i32.const $push107=, 12545; NO-SIMD128-FAST-NEXT:    i32.add $push11=, $pop10, $pop1072546; NO-SIMD128-FAST-NEXT:    i32.const $push106=, 2542547; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $pop11, $pop1062548; NO-SIMD128-FAST-NEXT:    i32.const $push105=, 12549; NO-SIMD128-FAST-NEXT:    i32.shr_u $push13=, $pop12, $pop1052550; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop132551; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $4, $202552; NO-SIMD128-FAST-NEXT:    i32.const $push104=, 12553; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop1042554; NO-SIMD128-FAST-NEXT:    i32.const $push103=, 2542555; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $pop1032556; NO-SIMD128-FAST-NEXT:    i32.const $push102=, 12557; NO-SIMD128-FAST-NEXT:    i32.shr_u $push17=, $pop16, $pop1022558; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop172559; NO-SIMD128-FAST-NEXT:    i32.add $push18=, $5, $212560; NO-SIMD128-FAST-NEXT:    i32.const $push101=, 12561; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop1012562; NO-SIMD128-FAST-NEXT:    i32.const $push100=, 2542563; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $pop19, $pop1002564; NO-SIMD128-FAST-NEXT:    i32.const $push99=, 12565; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop992566; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop212567; NO-SIMD128-FAST-NEXT:    i32.add $push22=, $6, $222568; NO-SIMD128-FAST-NEXT:    i32.const $push98=, 12569; NO-SIMD128-FAST-NEXT:    i32.add $push23=, $pop22, $pop982570; NO-SIMD128-FAST-NEXT:    i32.const $push97=, 2542571; NO-SIMD128-FAST-NEXT:    i32.and $push24=, $pop23, $pop972572; NO-SIMD128-FAST-NEXT:    i32.const $push96=, 12573; NO-SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop962574; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop252575; NO-SIMD128-FAST-NEXT:    i32.add $push26=, $7, $232576; NO-SIMD128-FAST-NEXT:    i32.const $push95=, 12577; NO-SIMD128-FAST-NEXT:    i32.add $push27=, $pop26, $pop952578; NO-SIMD128-FAST-NEXT:    i32.const $push94=, 2542579; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop942580; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 12581; NO-SIMD128-FAST-NEXT:    i32.shr_u $push29=, $pop28, $pop932582; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop292583; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $8, $242584; NO-SIMD128-FAST-NEXT:    i32.const $push92=, 12585; NO-SIMD128-FAST-NEXT:    i32.add $push31=, $pop30, $pop922586; NO-SIMD128-FAST-NEXT:    i32.const $push91=, 2542587; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $pop31, $pop912588; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 12589; NO-SIMD128-FAST-NEXT:    i32.shr_u $push33=, $pop32, $pop902590; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop332591; NO-SIMD128-FAST-NEXT:    i32.add $push34=, $9, $252592; NO-SIMD128-FAST-NEXT:    i32.const $push89=, 12593; NO-SIMD128-FAST-NEXT:    i32.add $push35=, $pop34, $pop892594; NO-SIMD128-FAST-NEXT:    i32.const $push88=, 2542595; NO-SIMD128-FAST-NEXT:    i32.and $push36=, $pop35, $pop882596; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 12597; NO-SIMD128-FAST-NEXT:    i32.shr_u $push37=, $pop36, $pop872598; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop372599; NO-SIMD128-FAST-NEXT:    i32.add $push38=, $10, $262600; NO-SIMD128-FAST-NEXT:    i32.const $push86=, 12601; NO-SIMD128-FAST-NEXT:    i32.add $push39=, $pop38, $pop862602; NO-SIMD128-FAST-NEXT:    i32.const $push85=, 2542603; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $pop39, $pop852604; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 12605; NO-SIMD128-FAST-NEXT:    i32.shr_u $push41=, $pop40, $pop842606; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop412607; NO-SIMD128-FAST-NEXT:    i32.add $push42=, $11, $272608; NO-SIMD128-FAST-NEXT:    i32.const $push83=, 12609; NO-SIMD128-FAST-NEXT:    i32.add $push43=, $pop42, $pop832610; NO-SIMD128-FAST-NEXT:    i32.const $push82=, 2542611; NO-SIMD128-FAST-NEXT:    i32.and $push44=, $pop43, $pop822612; NO-SIMD128-FAST-NEXT:    i32.const $push81=, 12613; NO-SIMD128-FAST-NEXT:    i32.shr_u $push45=, $pop44, $pop812614; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop452615; NO-SIMD128-FAST-NEXT:    i32.add $push46=, $12, $282616; NO-SIMD128-FAST-NEXT:    i32.const $push80=, 12617; NO-SIMD128-FAST-NEXT:    i32.add $push47=, $pop46, $pop802618; NO-SIMD128-FAST-NEXT:    i32.const $push79=, 2542619; NO-SIMD128-FAST-NEXT:    i32.and $push48=, $pop47, $pop792620; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 12621; NO-SIMD128-FAST-NEXT:    i32.shr_u $push49=, $pop48, $pop782622; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop492623; NO-SIMD128-FAST-NEXT:    i32.add $push50=, $13, $292624; NO-SIMD128-FAST-NEXT:    i32.const $push77=, 12625; NO-SIMD128-FAST-NEXT:    i32.add $push51=, $pop50, $pop772626; NO-SIMD128-FAST-NEXT:    i32.const $push76=, 2542627; NO-SIMD128-FAST-NEXT:    i32.and $push52=, $pop51, $pop762628; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 12629; NO-SIMD128-FAST-NEXT:    i32.shr_u $push53=, $pop52, $pop752630; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop532631; NO-SIMD128-FAST-NEXT:    i32.add $push54=, $14, $302632; NO-SIMD128-FAST-NEXT:    i32.const $push74=, 12633; NO-SIMD128-FAST-NEXT:    i32.add $push55=, $pop54, $pop742634; NO-SIMD128-FAST-NEXT:    i32.const $push73=, 2542635; NO-SIMD128-FAST-NEXT:    i32.and $push56=, $pop55, $pop732636; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 12637; NO-SIMD128-FAST-NEXT:    i32.shr_u $push57=, $pop56, $pop722638; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop572639; NO-SIMD128-FAST-NEXT:    i32.add $push58=, $15, $312640; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 12641; NO-SIMD128-FAST-NEXT:    i32.add $push59=, $pop58, $pop712642; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 2542643; NO-SIMD128-FAST-NEXT:    i32.and $push60=, $pop59, $pop702644; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 12645; NO-SIMD128-FAST-NEXT:    i32.shr_u $push61=, $pop60, $pop692646; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop612647; NO-SIMD128-FAST-NEXT:    i32.add $push62=, $16, $322648; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 12649; NO-SIMD128-FAST-NEXT:    i32.add $push63=, $pop62, $pop682650; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 2542651; NO-SIMD128-FAST-NEXT:    i32.and $push64=, $pop63, $pop672652; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 12653; NO-SIMD128-FAST-NEXT:    i32.shr_u $push65=, $pop64, $pop662654; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop652655; NO-SIMD128-FAST-NEXT:    return2656  %a = add <16 x i8> %x, %y2657  %b = add <16 x i8> %a, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1,2658                          i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>2659  %c = udiv <16 x i8> %b, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2,2660                           i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>2661  ret <16 x i8> %c2662}2663 2664define <16 x i8> @abs_v16i8(<16 x i8> %x) {2665; SIMD128-LABEL: abs_v16i8:2666; SIMD128:         .functype abs_v16i8 (v128) -> (v128)2667; SIMD128-NEXT:  # %bb.0:2668; SIMD128-NEXT:    i8x16.abs $push0=, $02669; SIMD128-NEXT:    return $pop02670;2671; SIMD128-FAST-LABEL: abs_v16i8:2672; SIMD128-FAST:         .functype abs_v16i8 (v128) -> (v128)2673; SIMD128-FAST-NEXT:  # %bb.0:2674; SIMD128-FAST-NEXT:    i8x16.abs $push0=, $02675; SIMD128-FAST-NEXT:    return $pop02676;2677; NO-SIMD128-LABEL: abs_v16i8:2678; NO-SIMD128:         .functype abs_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()2679; NO-SIMD128-NEXT:  # %bb.0:2680; NO-SIMD128-NEXT:    i32.extend8_s $push0=, $162681; NO-SIMD128-NEXT:    i32.const $push1=, 72682; NO-SIMD128-NEXT:    i32.shr_s $push95=, $pop0, $pop12683; NO-SIMD128-NEXT:    local.tee $push94=, $17=, $pop952684; NO-SIMD128-NEXT:    i32.xor $push2=, $16, $pop942685; NO-SIMD128-NEXT:    i32.sub $push3=, $pop2, $172686; NO-SIMD128-NEXT:    i32.store8 15($0), $pop32687; NO-SIMD128-NEXT:    i32.extend8_s $push4=, $152688; NO-SIMD128-NEXT:    i32.const $push93=, 72689; NO-SIMD128-NEXT:    i32.shr_s $push92=, $pop4, $pop932690; NO-SIMD128-NEXT:    local.tee $push91=, $16=, $pop922691; NO-SIMD128-NEXT:    i32.xor $push5=, $15, $pop912692; NO-SIMD128-NEXT:    i32.sub $push6=, $pop5, $162693; NO-SIMD128-NEXT:    i32.store8 14($0), $pop62694; NO-SIMD128-NEXT:    i32.extend8_s $push7=, $142695; NO-SIMD128-NEXT:    i32.const $push90=, 72696; NO-SIMD128-NEXT:    i32.shr_s $push89=, $pop7, $pop902697; NO-SIMD128-NEXT:    local.tee $push88=, $16=, $pop892698; NO-SIMD128-NEXT:    i32.xor $push8=, $14, $pop882699; NO-SIMD128-NEXT:    i32.sub $push9=, $pop8, $162700; NO-SIMD128-NEXT:    i32.store8 13($0), $pop92701; NO-SIMD128-NEXT:    i32.extend8_s $push10=, $132702; NO-SIMD128-NEXT:    i32.const $push87=, 72703; NO-SIMD128-NEXT:    i32.shr_s $push86=, $pop10, $pop872704; NO-SIMD128-NEXT:    local.tee $push85=, $16=, $pop862705; NO-SIMD128-NEXT:    i32.xor $push11=, $13, $pop852706; NO-SIMD128-NEXT:    i32.sub $push12=, $pop11, $162707; NO-SIMD128-NEXT:    i32.store8 12($0), $pop122708; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $122709; NO-SIMD128-NEXT:    i32.const $push84=, 72710; NO-SIMD128-NEXT:    i32.shr_s $push83=, $pop13, $pop842711; NO-SIMD128-NEXT:    local.tee $push82=, $16=, $pop832712; NO-SIMD128-NEXT:    i32.xor $push14=, $12, $pop822713; NO-SIMD128-NEXT:    i32.sub $push15=, $pop14, $162714; NO-SIMD128-NEXT:    i32.store8 11($0), $pop152715; NO-SIMD128-NEXT:    i32.extend8_s $push16=, $112716; NO-SIMD128-NEXT:    i32.const $push81=, 72717; NO-SIMD128-NEXT:    i32.shr_s $push80=, $pop16, $pop812718; NO-SIMD128-NEXT:    local.tee $push79=, $16=, $pop802719; NO-SIMD128-NEXT:    i32.xor $push17=, $11, $pop792720; NO-SIMD128-NEXT:    i32.sub $push18=, $pop17, $162721; NO-SIMD128-NEXT:    i32.store8 10($0), $pop182722; NO-SIMD128-NEXT:    i32.extend8_s $push19=, $102723; NO-SIMD128-NEXT:    i32.const $push78=, 72724; NO-SIMD128-NEXT:    i32.shr_s $push77=, $pop19, $pop782725; NO-SIMD128-NEXT:    local.tee $push76=, $16=, $pop772726; NO-SIMD128-NEXT:    i32.xor $push20=, $10, $pop762727; NO-SIMD128-NEXT:    i32.sub $push21=, $pop20, $162728; NO-SIMD128-NEXT:    i32.store8 9($0), $pop212729; NO-SIMD128-NEXT:    i32.extend8_s $push22=, $92730; NO-SIMD128-NEXT:    i32.const $push75=, 72731; NO-SIMD128-NEXT:    i32.shr_s $push74=, $pop22, $pop752732; NO-SIMD128-NEXT:    local.tee $push73=, $16=, $pop742733; NO-SIMD128-NEXT:    i32.xor $push23=, $9, $pop732734; NO-SIMD128-NEXT:    i32.sub $push24=, $pop23, $162735; NO-SIMD128-NEXT:    i32.store8 8($0), $pop242736; NO-SIMD128-NEXT:    i32.extend8_s $push25=, $82737; NO-SIMD128-NEXT:    i32.const $push72=, 72738; NO-SIMD128-NEXT:    i32.shr_s $push71=, $pop25, $pop722739; NO-SIMD128-NEXT:    local.tee $push70=, $16=, $pop712740; NO-SIMD128-NEXT:    i32.xor $push26=, $8, $pop702741; NO-SIMD128-NEXT:    i32.sub $push27=, $pop26, $162742; NO-SIMD128-NEXT:    i32.store8 7($0), $pop272743; NO-SIMD128-NEXT:    i32.extend8_s $push28=, $72744; NO-SIMD128-NEXT:    i32.const $push69=, 72745; NO-SIMD128-NEXT:    i32.shr_s $push68=, $pop28, $pop692746; NO-SIMD128-NEXT:    local.tee $push67=, $16=, $pop682747; NO-SIMD128-NEXT:    i32.xor $push29=, $7, $pop672748; NO-SIMD128-NEXT:    i32.sub $push30=, $pop29, $162749; NO-SIMD128-NEXT:    i32.store8 6($0), $pop302750; NO-SIMD128-NEXT:    i32.extend8_s $push31=, $62751; NO-SIMD128-NEXT:    i32.const $push66=, 72752; NO-SIMD128-NEXT:    i32.shr_s $push65=, $pop31, $pop662753; NO-SIMD128-NEXT:    local.tee $push64=, $16=, $pop652754; NO-SIMD128-NEXT:    i32.xor $push32=, $6, $pop642755; NO-SIMD128-NEXT:    i32.sub $push33=, $pop32, $162756; NO-SIMD128-NEXT:    i32.store8 5($0), $pop332757; NO-SIMD128-NEXT:    i32.extend8_s $push34=, $52758; NO-SIMD128-NEXT:    i32.const $push63=, 72759; NO-SIMD128-NEXT:    i32.shr_s $push62=, $pop34, $pop632760; NO-SIMD128-NEXT:    local.tee $push61=, $16=, $pop622761; NO-SIMD128-NEXT:    i32.xor $push35=, $5, $pop612762; NO-SIMD128-NEXT:    i32.sub $push36=, $pop35, $162763; NO-SIMD128-NEXT:    i32.store8 4($0), $pop362764; NO-SIMD128-NEXT:    i32.extend8_s $push37=, $42765; NO-SIMD128-NEXT:    i32.const $push60=, 72766; NO-SIMD128-NEXT:    i32.shr_s $push59=, $pop37, $pop602767; NO-SIMD128-NEXT:    local.tee $push58=, $16=, $pop592768; NO-SIMD128-NEXT:    i32.xor $push38=, $4, $pop582769; NO-SIMD128-NEXT:    i32.sub $push39=, $pop38, $162770; NO-SIMD128-NEXT:    i32.store8 3($0), $pop392771; NO-SIMD128-NEXT:    i32.extend8_s $push40=, $32772; NO-SIMD128-NEXT:    i32.const $push57=, 72773; NO-SIMD128-NEXT:    i32.shr_s $push56=, $pop40, $pop572774; NO-SIMD128-NEXT:    local.tee $push55=, $16=, $pop562775; NO-SIMD128-NEXT:    i32.xor $push41=, $3, $pop552776; NO-SIMD128-NEXT:    i32.sub $push42=, $pop41, $162777; NO-SIMD128-NEXT:    i32.store8 2($0), $pop422778; NO-SIMD128-NEXT:    i32.extend8_s $push43=, $22779; NO-SIMD128-NEXT:    i32.const $push54=, 72780; NO-SIMD128-NEXT:    i32.shr_s $push53=, $pop43, $pop542781; NO-SIMD128-NEXT:    local.tee $push52=, $16=, $pop532782; NO-SIMD128-NEXT:    i32.xor $push44=, $2, $pop522783; NO-SIMD128-NEXT:    i32.sub $push45=, $pop44, $162784; NO-SIMD128-NEXT:    i32.store8 1($0), $pop452785; NO-SIMD128-NEXT:    i32.extend8_s $push46=, $12786; NO-SIMD128-NEXT:    i32.const $push51=, 72787; NO-SIMD128-NEXT:    i32.shr_s $push50=, $pop46, $pop512788; NO-SIMD128-NEXT:    local.tee $push49=, $16=, $pop502789; NO-SIMD128-NEXT:    i32.xor $push47=, $1, $pop492790; NO-SIMD128-NEXT:    i32.sub $push48=, $pop47, $162791; NO-SIMD128-NEXT:    i32.store8 0($0), $pop482792; NO-SIMD128-NEXT:    return2793;2794; NO-SIMD128-FAST-LABEL: abs_v16i8:2795; NO-SIMD128-FAST:         .functype abs_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()2796; NO-SIMD128-FAST-NEXT:  # %bb.0:2797; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push0=, $12798; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 72799; NO-SIMD128-FAST-NEXT:    i32.shr_s $push95=, $pop0, $pop12800; NO-SIMD128-FAST-NEXT:    local.tee $push94=, $17=, $pop952801; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $1, $pop942802; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $pop2, $172803; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop32804; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push4=, $22805; NO-SIMD128-FAST-NEXT:    i32.const $push93=, 72806; NO-SIMD128-FAST-NEXT:    i32.shr_s $push92=, $pop4, $pop932807; NO-SIMD128-FAST-NEXT:    local.tee $push91=, $1=, $pop922808; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $2, $pop912809; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $pop5, $12810; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop62811; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push7=, $32812; NO-SIMD128-FAST-NEXT:    i32.const $push90=, 72813; NO-SIMD128-FAST-NEXT:    i32.shr_s $push89=, $pop7, $pop902814; NO-SIMD128-FAST-NEXT:    local.tee $push88=, $2=, $pop892815; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $3, $pop882816; NO-SIMD128-FAST-NEXT:    i32.sub $push9=, $pop8, $22817; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop92818; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push10=, $42819; NO-SIMD128-FAST-NEXT:    i32.const $push87=, 72820; NO-SIMD128-FAST-NEXT:    i32.shr_s $push86=, $pop10, $pop872821; NO-SIMD128-FAST-NEXT:    local.tee $push85=, $3=, $pop862822; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $4, $pop852823; NO-SIMD128-FAST-NEXT:    i32.sub $push12=, $pop11, $32824; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop122825; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $52826; NO-SIMD128-FAST-NEXT:    i32.const $push84=, 72827; NO-SIMD128-FAST-NEXT:    i32.shr_s $push83=, $pop13, $pop842828; NO-SIMD128-FAST-NEXT:    local.tee $push82=, $4=, $pop832829; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $5, $pop822830; NO-SIMD128-FAST-NEXT:    i32.sub $push15=, $pop14, $42831; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop152832; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push16=, $62833; NO-SIMD128-FAST-NEXT:    i32.const $push81=, 72834; NO-SIMD128-FAST-NEXT:    i32.shr_s $push80=, $pop16, $pop812835; NO-SIMD128-FAST-NEXT:    local.tee $push79=, $5=, $pop802836; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $6, $pop792837; NO-SIMD128-FAST-NEXT:    i32.sub $push18=, $pop17, $52838; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop182839; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push19=, $72840; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 72841; NO-SIMD128-FAST-NEXT:    i32.shr_s $push77=, $pop19, $pop782842; NO-SIMD128-FAST-NEXT:    local.tee $push76=, $6=, $pop772843; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $7, $pop762844; NO-SIMD128-FAST-NEXT:    i32.sub $push21=, $pop20, $62845; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop212846; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push22=, $82847; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 72848; NO-SIMD128-FAST-NEXT:    i32.shr_s $push74=, $pop22, $pop752849; NO-SIMD128-FAST-NEXT:    local.tee $push73=, $7=, $pop742850; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $8, $pop732851; NO-SIMD128-FAST-NEXT:    i32.sub $push24=, $pop23, $72852; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop242853; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push25=, $92854; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 72855; NO-SIMD128-FAST-NEXT:    i32.shr_s $push71=, $pop25, $pop722856; NO-SIMD128-FAST-NEXT:    local.tee $push70=, $8=, $pop712857; NO-SIMD128-FAST-NEXT:    i32.xor $push26=, $9, $pop702858; NO-SIMD128-FAST-NEXT:    i32.sub $push27=, $pop26, $82859; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop272860; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push28=, $102861; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 72862; NO-SIMD128-FAST-NEXT:    i32.shr_s $push68=, $pop28, $pop692863; NO-SIMD128-FAST-NEXT:    local.tee $push67=, $9=, $pop682864; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $10, $pop672865; NO-SIMD128-FAST-NEXT:    i32.sub $push30=, $pop29, $92866; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop302867; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push31=, $112868; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 72869; NO-SIMD128-FAST-NEXT:    i32.shr_s $push65=, $pop31, $pop662870; NO-SIMD128-FAST-NEXT:    local.tee $push64=, $10=, $pop652871; NO-SIMD128-FAST-NEXT:    i32.xor $push32=, $11, $pop642872; NO-SIMD128-FAST-NEXT:    i32.sub $push33=, $pop32, $102873; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop332874; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push34=, $122875; NO-SIMD128-FAST-NEXT:    i32.const $push63=, 72876; NO-SIMD128-FAST-NEXT:    i32.shr_s $push62=, $pop34, $pop632877; NO-SIMD128-FAST-NEXT:    local.tee $push61=, $11=, $pop622878; NO-SIMD128-FAST-NEXT:    i32.xor $push35=, $12, $pop612879; NO-SIMD128-FAST-NEXT:    i32.sub $push36=, $pop35, $112880; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop362881; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push37=, $132882; NO-SIMD128-FAST-NEXT:    i32.const $push60=, 72883; NO-SIMD128-FAST-NEXT:    i32.shr_s $push59=, $pop37, $pop602884; NO-SIMD128-FAST-NEXT:    local.tee $push58=, $12=, $pop592885; NO-SIMD128-FAST-NEXT:    i32.xor $push38=, $13, $pop582886; NO-SIMD128-FAST-NEXT:    i32.sub $push39=, $pop38, $122887; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop392888; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push40=, $142889; NO-SIMD128-FAST-NEXT:    i32.const $push57=, 72890; NO-SIMD128-FAST-NEXT:    i32.shr_s $push56=, $pop40, $pop572891; NO-SIMD128-FAST-NEXT:    local.tee $push55=, $13=, $pop562892; NO-SIMD128-FAST-NEXT:    i32.xor $push41=, $14, $pop552893; NO-SIMD128-FAST-NEXT:    i32.sub $push42=, $pop41, $132894; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop422895; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push43=, $152896; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 72897; NO-SIMD128-FAST-NEXT:    i32.shr_s $push53=, $pop43, $pop542898; NO-SIMD128-FAST-NEXT:    local.tee $push52=, $14=, $pop532899; NO-SIMD128-FAST-NEXT:    i32.xor $push44=, $15, $pop522900; NO-SIMD128-FAST-NEXT:    i32.sub $push45=, $pop44, $142901; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop452902; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push46=, $162903; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 72904; NO-SIMD128-FAST-NEXT:    i32.shr_s $push50=, $pop46, $pop512905; NO-SIMD128-FAST-NEXT:    local.tee $push49=, $15=, $pop502906; NO-SIMD128-FAST-NEXT:    i32.xor $push47=, $16, $pop492907; NO-SIMD128-FAST-NEXT:    i32.sub $push48=, $pop47, $152908; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop482909; NO-SIMD128-FAST-NEXT:    return2910  %a = sub <16 x i8> zeroinitializer, %x2911  %b = icmp slt <16 x i8> %x, zeroinitializer2912  %c = select <16 x i1> %b, <16 x i8> %a, <16 x i8> %x2913  ret <16 x i8> %c2914}2915 2916define <16 x i8> @neg_v16i8(<16 x i8> %x) {2917; SIMD128-LABEL: neg_v16i8:2918; SIMD128:         .functype neg_v16i8 (v128) -> (v128)2919; SIMD128-NEXT:  # %bb.0:2920; SIMD128-NEXT:    i8x16.neg $push0=, $02921; SIMD128-NEXT:    return $pop02922;2923; SIMD128-FAST-LABEL: neg_v16i8:2924; SIMD128-FAST:         .functype neg_v16i8 (v128) -> (v128)2925; SIMD128-FAST-NEXT:  # %bb.0:2926; SIMD128-FAST-NEXT:    i8x16.neg $push0=, $02927; SIMD128-FAST-NEXT:    return $pop02928;2929; NO-SIMD128-LABEL: neg_v16i8:2930; NO-SIMD128:         .functype neg_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()2931; NO-SIMD128-NEXT:  # %bb.0:2932; NO-SIMD128-NEXT:    i32.const $push0=, 02933; NO-SIMD128-NEXT:    i32.sub $push1=, $pop0, $162934; NO-SIMD128-NEXT:    i32.store8 15($0), $pop12935; NO-SIMD128-NEXT:    i32.const $push31=, 02936; NO-SIMD128-NEXT:    i32.sub $push2=, $pop31, $152937; NO-SIMD128-NEXT:    i32.store8 14($0), $pop22938; NO-SIMD128-NEXT:    i32.const $push30=, 02939; NO-SIMD128-NEXT:    i32.sub $push3=, $pop30, $142940; NO-SIMD128-NEXT:    i32.store8 13($0), $pop32941; NO-SIMD128-NEXT:    i32.const $push29=, 02942; NO-SIMD128-NEXT:    i32.sub $push4=, $pop29, $132943; NO-SIMD128-NEXT:    i32.store8 12($0), $pop42944; NO-SIMD128-NEXT:    i32.const $push28=, 02945; NO-SIMD128-NEXT:    i32.sub $push5=, $pop28, $122946; NO-SIMD128-NEXT:    i32.store8 11($0), $pop52947; NO-SIMD128-NEXT:    i32.const $push27=, 02948; NO-SIMD128-NEXT:    i32.sub $push6=, $pop27, $112949; NO-SIMD128-NEXT:    i32.store8 10($0), $pop62950; NO-SIMD128-NEXT:    i32.const $push26=, 02951; NO-SIMD128-NEXT:    i32.sub $push7=, $pop26, $102952; NO-SIMD128-NEXT:    i32.store8 9($0), $pop72953; NO-SIMD128-NEXT:    i32.const $push25=, 02954; NO-SIMD128-NEXT:    i32.sub $push8=, $pop25, $92955; NO-SIMD128-NEXT:    i32.store8 8($0), $pop82956; NO-SIMD128-NEXT:    i32.const $push24=, 02957; NO-SIMD128-NEXT:    i32.sub $push9=, $pop24, $82958; NO-SIMD128-NEXT:    i32.store8 7($0), $pop92959; NO-SIMD128-NEXT:    i32.const $push23=, 02960; NO-SIMD128-NEXT:    i32.sub $push10=, $pop23, $72961; NO-SIMD128-NEXT:    i32.store8 6($0), $pop102962; NO-SIMD128-NEXT:    i32.const $push22=, 02963; NO-SIMD128-NEXT:    i32.sub $push11=, $pop22, $62964; NO-SIMD128-NEXT:    i32.store8 5($0), $pop112965; NO-SIMD128-NEXT:    i32.const $push21=, 02966; NO-SIMD128-NEXT:    i32.sub $push12=, $pop21, $52967; NO-SIMD128-NEXT:    i32.store8 4($0), $pop122968; NO-SIMD128-NEXT:    i32.const $push20=, 02969; NO-SIMD128-NEXT:    i32.sub $push13=, $pop20, $42970; NO-SIMD128-NEXT:    i32.store8 3($0), $pop132971; NO-SIMD128-NEXT:    i32.const $push19=, 02972; NO-SIMD128-NEXT:    i32.sub $push14=, $pop19, $32973; NO-SIMD128-NEXT:    i32.store8 2($0), $pop142974; NO-SIMD128-NEXT:    i32.const $push18=, 02975; NO-SIMD128-NEXT:    i32.sub $push15=, $pop18, $22976; NO-SIMD128-NEXT:    i32.store8 1($0), $pop152977; NO-SIMD128-NEXT:    i32.const $push17=, 02978; NO-SIMD128-NEXT:    i32.sub $push16=, $pop17, $12979; NO-SIMD128-NEXT:    i32.store8 0($0), $pop162980; NO-SIMD128-NEXT:    return2981;2982; NO-SIMD128-FAST-LABEL: neg_v16i8:2983; NO-SIMD128-FAST:         .functype neg_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()2984; NO-SIMD128-FAST-NEXT:  # %bb.0:2985; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 02986; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $pop0, $12987; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop12988; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 02989; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $pop31, $22990; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop22991; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 02992; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $pop30, $32993; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop32994; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 02995; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $pop29, $42996; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop42997; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 02998; NO-SIMD128-FAST-NEXT:    i32.sub $push5=, $pop28, $52999; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop53000; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 03001; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $pop27, $63002; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop63003; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 03004; NO-SIMD128-FAST-NEXT:    i32.sub $push7=, $pop26, $73005; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop73006; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 03007; NO-SIMD128-FAST-NEXT:    i32.sub $push8=, $pop25, $83008; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop83009; NO-SIMD128-FAST-NEXT:    i32.const $push24=, 03010; NO-SIMD128-FAST-NEXT:    i32.sub $push9=, $pop24, $93011; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop93012; NO-SIMD128-FAST-NEXT:    i32.const $push23=, 03013; NO-SIMD128-FAST-NEXT:    i32.sub $push10=, $pop23, $103014; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop103015; NO-SIMD128-FAST-NEXT:    i32.const $push22=, 03016; NO-SIMD128-FAST-NEXT:    i32.sub $push11=, $pop22, $113017; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop113018; NO-SIMD128-FAST-NEXT:    i32.const $push21=, 03019; NO-SIMD128-FAST-NEXT:    i32.sub $push12=, $pop21, $123020; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop123021; NO-SIMD128-FAST-NEXT:    i32.const $push20=, 03022; NO-SIMD128-FAST-NEXT:    i32.sub $push13=, $pop20, $133023; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop133024; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 03025; NO-SIMD128-FAST-NEXT:    i32.sub $push14=, $pop19, $143026; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop143027; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 03028; NO-SIMD128-FAST-NEXT:    i32.sub $push15=, $pop18, $153029; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop153030; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 03031; NO-SIMD128-FAST-NEXT:    i32.sub $push16=, $pop17, $163032; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop163033; NO-SIMD128-FAST-NEXT:    return3034  %a = sub <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0,3035                      i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>,3036                     %x3037  ret <16 x i8> %a3038}3039 3040define <16 x i8> @shl_v16i8(<16 x i8> %v, i8 %x) {3041; SIMD128-LABEL: shl_v16i8:3042; SIMD128:         .functype shl_v16i8 (v128, i32) -> (v128)3043; SIMD128-NEXT:  # %bb.0:3044; SIMD128-NEXT:    i8x16.shl $push0=, $0, $13045; SIMD128-NEXT:    return $pop03046;3047; SIMD128-FAST-LABEL: shl_v16i8:3048; SIMD128-FAST:         .functype shl_v16i8 (v128, i32) -> (v128)3049; SIMD128-FAST-NEXT:  # %bb.0:3050; SIMD128-FAST-NEXT:    i8x16.shl $push0=, $0, $13051; SIMD128-FAST-NEXT:    return $pop03052;3053; NO-SIMD128-LABEL: shl_v16i8:3054; NO-SIMD128:         .functype shl_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3055; NO-SIMD128-NEXT:  # %bb.0:3056; NO-SIMD128-NEXT:    i32.const $push0=, 2553057; NO-SIMD128-NEXT:    i32.and $push18=, $17, $pop03058; NO-SIMD128-NEXT:    local.tee $push17=, $17=, $pop183059; NO-SIMD128-NEXT:    i32.shl $push1=, $16, $pop173060; NO-SIMD128-NEXT:    i32.store8 15($0), $pop13061; NO-SIMD128-NEXT:    i32.shl $push2=, $15, $173062; NO-SIMD128-NEXT:    i32.store8 14($0), $pop23063; NO-SIMD128-NEXT:    i32.shl $push3=, $14, $173064; NO-SIMD128-NEXT:    i32.store8 13($0), $pop33065; NO-SIMD128-NEXT:    i32.shl $push4=, $13, $173066; NO-SIMD128-NEXT:    i32.store8 12($0), $pop43067; NO-SIMD128-NEXT:    i32.shl $push5=, $12, $173068; NO-SIMD128-NEXT:    i32.store8 11($0), $pop53069; NO-SIMD128-NEXT:    i32.shl $push6=, $11, $173070; NO-SIMD128-NEXT:    i32.store8 10($0), $pop63071; NO-SIMD128-NEXT:    i32.shl $push7=, $10, $173072; NO-SIMD128-NEXT:    i32.store8 9($0), $pop73073; NO-SIMD128-NEXT:    i32.shl $push8=, $9, $173074; NO-SIMD128-NEXT:    i32.store8 8($0), $pop83075; NO-SIMD128-NEXT:    i32.shl $push9=, $8, $173076; NO-SIMD128-NEXT:    i32.store8 7($0), $pop93077; NO-SIMD128-NEXT:    i32.shl $push10=, $7, $173078; NO-SIMD128-NEXT:    i32.store8 6($0), $pop103079; NO-SIMD128-NEXT:    i32.shl $push11=, $6, $173080; NO-SIMD128-NEXT:    i32.store8 5($0), $pop113081; NO-SIMD128-NEXT:    i32.shl $push12=, $5, $173082; NO-SIMD128-NEXT:    i32.store8 4($0), $pop123083; NO-SIMD128-NEXT:    i32.shl $push13=, $4, $173084; NO-SIMD128-NEXT:    i32.store8 3($0), $pop133085; NO-SIMD128-NEXT:    i32.shl $push14=, $3, $173086; NO-SIMD128-NEXT:    i32.store8 2($0), $pop143087; NO-SIMD128-NEXT:    i32.shl $push15=, $2, $173088; NO-SIMD128-NEXT:    i32.store8 1($0), $pop153089; NO-SIMD128-NEXT:    i32.shl $push16=, $1, $173090; NO-SIMD128-NEXT:    i32.store8 0($0), $pop163091; NO-SIMD128-NEXT:    return3092;3093; NO-SIMD128-FAST-LABEL: shl_v16i8:3094; NO-SIMD128-FAST:         .functype shl_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3095; NO-SIMD128-FAST-NEXT:  # %bb.0:3096; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2553097; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $17, $pop03098; NO-SIMD128-FAST-NEXT:    local.tee $push17=, $17=, $pop183099; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $2, $pop173100; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop13101; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $1, $173102; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop23103; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $3, $173104; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop33105; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $4, $173106; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop43107; NO-SIMD128-FAST-NEXT:    i32.shl $push5=, $5, $173108; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop53109; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $6, $173110; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop63111; NO-SIMD128-FAST-NEXT:    i32.shl $push7=, $7, $173112; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop73113; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $8, $173114; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop83115; NO-SIMD128-FAST-NEXT:    i32.shl $push9=, $9, $173116; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop93117; NO-SIMD128-FAST-NEXT:    i32.shl $push10=, $10, $173118; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop103119; NO-SIMD128-FAST-NEXT:    i32.shl $push11=, $11, $173120; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop113121; NO-SIMD128-FAST-NEXT:    i32.shl $push12=, $12, $173122; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop123123; NO-SIMD128-FAST-NEXT:    i32.shl $push13=, $13, $173124; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop133125; NO-SIMD128-FAST-NEXT:    i32.shl $push14=, $14, $173126; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop143127; NO-SIMD128-FAST-NEXT:    i32.shl $push15=, $15, $173128; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop153129; NO-SIMD128-FAST-NEXT:    i32.shl $push16=, $16, $173130; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop163131; NO-SIMD128-FAST-NEXT:    return3132  %t = insertelement <16 x i8> undef, i8 %x, i32 03133  %s = shufflevector <16 x i8> %t, <16 x i8> undef,3134    <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0,3135                i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>3136  %a = shl <16 x i8> %v, %s3137  ret <16 x i8> %a3138}3139 3140define <16 x i8> @shl_const_v16i8(<16 x i8> %v) {3141; SIMD128-LABEL: shl_const_v16i8:3142; SIMD128:         .functype shl_const_v16i8 (v128) -> (v128)3143; SIMD128-NEXT:  # %bb.0:3144; SIMD128-NEXT:    i32.const $push0=, 53145; SIMD128-NEXT:    i8x16.shl $push1=, $0, $pop03146; SIMD128-NEXT:    return $pop13147;3148; SIMD128-FAST-LABEL: shl_const_v16i8:3149; SIMD128-FAST:         .functype shl_const_v16i8 (v128) -> (v128)3150; SIMD128-FAST-NEXT:  # %bb.0:3151; SIMD128-FAST-NEXT:    i32.const $push1=, 53152; SIMD128-FAST-NEXT:    i8x16.shl $push0=, $0, $pop13153; SIMD128-FAST-NEXT:    return $pop03154;3155; NO-SIMD128-LABEL: shl_const_v16i8:3156; NO-SIMD128:         .functype shl_const_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3157; NO-SIMD128-NEXT:  # %bb.0:3158; NO-SIMD128-NEXT:    i32.const $push0=, 53159; NO-SIMD128-NEXT:    i32.shl $push1=, $16, $pop03160; NO-SIMD128-NEXT:    i32.store8 15($0), $pop13161; NO-SIMD128-NEXT:    i32.const $push31=, 53162; NO-SIMD128-NEXT:    i32.shl $push2=, $15, $pop313163; NO-SIMD128-NEXT:    i32.store8 14($0), $pop23164; NO-SIMD128-NEXT:    i32.const $push30=, 53165; NO-SIMD128-NEXT:    i32.shl $push3=, $14, $pop303166; NO-SIMD128-NEXT:    i32.store8 13($0), $pop33167; NO-SIMD128-NEXT:    i32.const $push29=, 53168; NO-SIMD128-NEXT:    i32.shl $push4=, $13, $pop293169; NO-SIMD128-NEXT:    i32.store8 12($0), $pop43170; NO-SIMD128-NEXT:    i32.const $push28=, 53171; NO-SIMD128-NEXT:    i32.shl $push5=, $12, $pop283172; NO-SIMD128-NEXT:    i32.store8 11($0), $pop53173; NO-SIMD128-NEXT:    i32.const $push27=, 53174; NO-SIMD128-NEXT:    i32.shl $push6=, $11, $pop273175; NO-SIMD128-NEXT:    i32.store8 10($0), $pop63176; NO-SIMD128-NEXT:    i32.const $push26=, 53177; NO-SIMD128-NEXT:    i32.shl $push7=, $10, $pop263178; NO-SIMD128-NEXT:    i32.store8 9($0), $pop73179; NO-SIMD128-NEXT:    i32.const $push25=, 53180; NO-SIMD128-NEXT:    i32.shl $push8=, $9, $pop253181; NO-SIMD128-NEXT:    i32.store8 8($0), $pop83182; NO-SIMD128-NEXT:    i32.const $push24=, 53183; NO-SIMD128-NEXT:    i32.shl $push9=, $8, $pop243184; NO-SIMD128-NEXT:    i32.store8 7($0), $pop93185; NO-SIMD128-NEXT:    i32.const $push23=, 53186; NO-SIMD128-NEXT:    i32.shl $push10=, $7, $pop233187; NO-SIMD128-NEXT:    i32.store8 6($0), $pop103188; NO-SIMD128-NEXT:    i32.const $push22=, 53189; NO-SIMD128-NEXT:    i32.shl $push11=, $6, $pop223190; NO-SIMD128-NEXT:    i32.store8 5($0), $pop113191; NO-SIMD128-NEXT:    i32.const $push21=, 53192; NO-SIMD128-NEXT:    i32.shl $push12=, $5, $pop213193; NO-SIMD128-NEXT:    i32.store8 4($0), $pop123194; NO-SIMD128-NEXT:    i32.const $push20=, 53195; NO-SIMD128-NEXT:    i32.shl $push13=, $4, $pop203196; NO-SIMD128-NEXT:    i32.store8 3($0), $pop133197; NO-SIMD128-NEXT:    i32.const $push19=, 53198; NO-SIMD128-NEXT:    i32.shl $push14=, $3, $pop193199; NO-SIMD128-NEXT:    i32.store8 2($0), $pop143200; NO-SIMD128-NEXT:    i32.const $push18=, 53201; NO-SIMD128-NEXT:    i32.shl $push15=, $2, $pop183202; NO-SIMD128-NEXT:    i32.store8 1($0), $pop153203; NO-SIMD128-NEXT:    i32.const $push17=, 53204; NO-SIMD128-NEXT:    i32.shl $push16=, $1, $pop173205; NO-SIMD128-NEXT:    i32.store8 0($0), $pop163206; NO-SIMD128-NEXT:    return3207;3208; NO-SIMD128-FAST-LABEL: shl_const_v16i8:3209; NO-SIMD128-FAST:         .functype shl_const_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3210; NO-SIMD128-FAST-NEXT:  # %bb.0:3211; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 53212; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $1, $pop03213; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop13214; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 53215; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $2, $pop313216; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop23217; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 53218; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $3, $pop303219; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop33220; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 53221; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $4, $pop293222; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop43223; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 53224; NO-SIMD128-FAST-NEXT:    i32.shl $push5=, $5, $pop283225; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop53226; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 53227; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $6, $pop273228; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop63229; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 53230; NO-SIMD128-FAST-NEXT:    i32.shl $push7=, $7, $pop263231; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop73232; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 53233; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $8, $pop253234; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop83235; NO-SIMD128-FAST-NEXT:    i32.const $push24=, 53236; NO-SIMD128-FAST-NEXT:    i32.shl $push9=, $9, $pop243237; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop93238; NO-SIMD128-FAST-NEXT:    i32.const $push23=, 53239; NO-SIMD128-FAST-NEXT:    i32.shl $push10=, $10, $pop233240; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop103241; NO-SIMD128-FAST-NEXT:    i32.const $push22=, 53242; NO-SIMD128-FAST-NEXT:    i32.shl $push11=, $11, $pop223243; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop113244; NO-SIMD128-FAST-NEXT:    i32.const $push21=, 53245; NO-SIMD128-FAST-NEXT:    i32.shl $push12=, $12, $pop213246; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop123247; NO-SIMD128-FAST-NEXT:    i32.const $push20=, 53248; NO-SIMD128-FAST-NEXT:    i32.shl $push13=, $13, $pop203249; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop133250; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 53251; NO-SIMD128-FAST-NEXT:    i32.shl $push14=, $14, $pop193252; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop143253; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 53254; NO-SIMD128-FAST-NEXT:    i32.shl $push15=, $15, $pop183255; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop153256; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 53257; NO-SIMD128-FAST-NEXT:    i32.shl $push16=, $16, $pop173258; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop163259; NO-SIMD128-FAST-NEXT:    return3260  %a = shl <16 x i8> %v,3261    <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5,3262     i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5>3263  ret <16 x i8> %a3264}3265 3266define <16 x i8> @shl_vec_v16i8(<16 x i8> %v, <16 x i8> %x) {3267; SIMD128-LABEL: shl_vec_v16i8:3268; SIMD128:         .functype shl_vec_v16i8 (v128, v128) -> (v128)3269; SIMD128-NEXT:  # %bb.0:3270; SIMD128-NEXT:    i8x16.extract_lane_u $push7=, $0, 03271; SIMD128-NEXT:    i8x16.extract_lane_u $push5=, $1, 03272; SIMD128-NEXT:    i32.const $push1=, 73273; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop13274; SIMD128-NEXT:    i32.shl $push8=, $pop7, $pop63275; SIMD128-NEXT:    i8x16.splat $push9=, $pop83276; SIMD128-NEXT:    i8x16.extract_lane_u $push3=, $0, 13277; SIMD128-NEXT:    i8x16.extract_lane_u $push0=, $1, 13278; SIMD128-NEXT:    i32.const $push95=, 73279; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop953280; SIMD128-NEXT:    i32.shl $push4=, $pop3, $pop23281; SIMD128-NEXT:    i8x16.replace_lane $push10=, $pop9, 1, $pop43282; SIMD128-NEXT:    i8x16.extract_lane_u $push13=, $0, 23283; SIMD128-NEXT:    i8x16.extract_lane_u $push11=, $1, 23284; SIMD128-NEXT:    i32.const $push94=, 73285; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop943286; SIMD128-NEXT:    i32.shl $push14=, $pop13, $pop123287; SIMD128-NEXT:    i8x16.replace_lane $push15=, $pop10, 2, $pop143288; SIMD128-NEXT:    i8x16.extract_lane_u $push18=, $0, 33289; SIMD128-NEXT:    i8x16.extract_lane_u $push16=, $1, 33290; SIMD128-NEXT:    i32.const $push93=, 73291; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop933292; SIMD128-NEXT:    i32.shl $push19=, $pop18, $pop173293; SIMD128-NEXT:    i8x16.replace_lane $push20=, $pop15, 3, $pop193294; SIMD128-NEXT:    i8x16.extract_lane_u $push23=, $0, 43295; SIMD128-NEXT:    i8x16.extract_lane_u $push21=, $1, 43296; SIMD128-NEXT:    i32.const $push92=, 73297; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop923298; SIMD128-NEXT:    i32.shl $push24=, $pop23, $pop223299; SIMD128-NEXT:    i8x16.replace_lane $push25=, $pop20, 4, $pop243300; SIMD128-NEXT:    i8x16.extract_lane_u $push28=, $0, 53301; SIMD128-NEXT:    i8x16.extract_lane_u $push26=, $1, 53302; SIMD128-NEXT:    i32.const $push91=, 73303; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop913304; SIMD128-NEXT:    i32.shl $push29=, $pop28, $pop273305; SIMD128-NEXT:    i8x16.replace_lane $push30=, $pop25, 5, $pop293306; SIMD128-NEXT:    i8x16.extract_lane_u $push33=, $0, 63307; SIMD128-NEXT:    i8x16.extract_lane_u $push31=, $1, 63308; SIMD128-NEXT:    i32.const $push90=, 73309; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop903310; SIMD128-NEXT:    i32.shl $push34=, $pop33, $pop323311; SIMD128-NEXT:    i8x16.replace_lane $push35=, $pop30, 6, $pop343312; SIMD128-NEXT:    i8x16.extract_lane_u $push38=, $0, 73313; SIMD128-NEXT:    i8x16.extract_lane_u $push36=, $1, 73314; SIMD128-NEXT:    i32.const $push89=, 73315; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop893316; SIMD128-NEXT:    i32.shl $push39=, $pop38, $pop373317; SIMD128-NEXT:    i8x16.replace_lane $push40=, $pop35, 7, $pop393318; SIMD128-NEXT:    i8x16.extract_lane_u $push43=, $0, 83319; SIMD128-NEXT:    i8x16.extract_lane_u $push41=, $1, 83320; SIMD128-NEXT:    i32.const $push88=, 73321; SIMD128-NEXT:    i32.and $push42=, $pop41, $pop883322; SIMD128-NEXT:    i32.shl $push44=, $pop43, $pop423323; SIMD128-NEXT:    i8x16.replace_lane $push45=, $pop40, 8, $pop443324; SIMD128-NEXT:    i8x16.extract_lane_u $push48=, $0, 93325; SIMD128-NEXT:    i8x16.extract_lane_u $push46=, $1, 93326; SIMD128-NEXT:    i32.const $push87=, 73327; SIMD128-NEXT:    i32.and $push47=, $pop46, $pop873328; SIMD128-NEXT:    i32.shl $push49=, $pop48, $pop473329; SIMD128-NEXT:    i8x16.replace_lane $push50=, $pop45, 9, $pop493330; SIMD128-NEXT:    i8x16.extract_lane_u $push53=, $0, 103331; SIMD128-NEXT:    i8x16.extract_lane_u $push51=, $1, 103332; SIMD128-NEXT:    i32.const $push86=, 73333; SIMD128-NEXT:    i32.and $push52=, $pop51, $pop863334; SIMD128-NEXT:    i32.shl $push54=, $pop53, $pop523335; SIMD128-NEXT:    i8x16.replace_lane $push55=, $pop50, 10, $pop543336; SIMD128-NEXT:    i8x16.extract_lane_u $push58=, $0, 113337; SIMD128-NEXT:    i8x16.extract_lane_u $push56=, $1, 113338; SIMD128-NEXT:    i32.const $push85=, 73339; SIMD128-NEXT:    i32.and $push57=, $pop56, $pop853340; SIMD128-NEXT:    i32.shl $push59=, $pop58, $pop573341; SIMD128-NEXT:    i8x16.replace_lane $push60=, $pop55, 11, $pop593342; SIMD128-NEXT:    i8x16.extract_lane_u $push63=, $0, 123343; SIMD128-NEXT:    i8x16.extract_lane_u $push61=, $1, 123344; SIMD128-NEXT:    i32.const $push84=, 73345; SIMD128-NEXT:    i32.and $push62=, $pop61, $pop843346; SIMD128-NEXT:    i32.shl $push64=, $pop63, $pop623347; SIMD128-NEXT:    i8x16.replace_lane $push65=, $pop60, 12, $pop643348; SIMD128-NEXT:    i8x16.extract_lane_u $push68=, $0, 133349; SIMD128-NEXT:    i8x16.extract_lane_u $push66=, $1, 133350; SIMD128-NEXT:    i32.const $push83=, 73351; SIMD128-NEXT:    i32.and $push67=, $pop66, $pop833352; SIMD128-NEXT:    i32.shl $push69=, $pop68, $pop673353; SIMD128-NEXT:    i8x16.replace_lane $push70=, $pop65, 13, $pop693354; SIMD128-NEXT:    i8x16.extract_lane_u $push73=, $0, 143355; SIMD128-NEXT:    i8x16.extract_lane_u $push71=, $1, 143356; SIMD128-NEXT:    i32.const $push82=, 73357; SIMD128-NEXT:    i32.and $push72=, $pop71, $pop823358; SIMD128-NEXT:    i32.shl $push74=, $pop73, $pop723359; SIMD128-NEXT:    i8x16.replace_lane $push75=, $pop70, 14, $pop743360; SIMD128-NEXT:    i8x16.extract_lane_u $push78=, $0, 153361; SIMD128-NEXT:    i8x16.extract_lane_u $push76=, $1, 153362; SIMD128-NEXT:    i32.const $push81=, 73363; SIMD128-NEXT:    i32.and $push77=, $pop76, $pop813364; SIMD128-NEXT:    i32.shl $push79=, $pop78, $pop773365; SIMD128-NEXT:    i8x16.replace_lane $push80=, $pop75, 15, $pop793366; SIMD128-NEXT:    return $pop803367;3368; SIMD128-FAST-LABEL: shl_vec_v16i8:3369; SIMD128-FAST:         .functype shl_vec_v16i8 (v128, v128) -> (v128)3370; SIMD128-FAST-NEXT:  # %bb.0:3371; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push8=, $0, 03372; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push6=, $1, 03373; SIMD128-FAST-NEXT:    i32.const $push2=, 73374; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop23375; SIMD128-FAST-NEXT:    i32.shl $push9=, $pop8, $pop73376; SIMD128-FAST-NEXT:    i8x16.splat $push10=, $pop93377; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push4=, $0, 13378; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push1=, $1, 13379; SIMD128-FAST-NEXT:    i32.const $push95=, 73380; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop953381; SIMD128-FAST-NEXT:    i32.shl $push5=, $pop4, $pop33382; SIMD128-FAST-NEXT:    i8x16.replace_lane $push11=, $pop10, 1, $pop53383; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push14=, $0, 23384; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push12=, $1, 23385; SIMD128-FAST-NEXT:    i32.const $push94=, 73386; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop943387; SIMD128-FAST-NEXT:    i32.shl $push15=, $pop14, $pop133388; SIMD128-FAST-NEXT:    i8x16.replace_lane $push16=, $pop11, 2, $pop153389; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push19=, $0, 33390; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push17=, $1, 33391; SIMD128-FAST-NEXT:    i32.const $push93=, 73392; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop933393; SIMD128-FAST-NEXT:    i32.shl $push20=, $pop19, $pop183394; SIMD128-FAST-NEXT:    i8x16.replace_lane $push21=, $pop16, 3, $pop203395; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push24=, $0, 43396; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push22=, $1, 43397; SIMD128-FAST-NEXT:    i32.const $push92=, 73398; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop923399; SIMD128-FAST-NEXT:    i32.shl $push25=, $pop24, $pop233400; SIMD128-FAST-NEXT:    i8x16.replace_lane $push26=, $pop21, 4, $pop253401; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push29=, $0, 53402; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push27=, $1, 53403; SIMD128-FAST-NEXT:    i32.const $push91=, 73404; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop913405; SIMD128-FAST-NEXT:    i32.shl $push30=, $pop29, $pop283406; SIMD128-FAST-NEXT:    i8x16.replace_lane $push31=, $pop26, 5, $pop303407; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push34=, $0, 63408; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push32=, $1, 63409; SIMD128-FAST-NEXT:    i32.const $push90=, 73410; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop903411; SIMD128-FAST-NEXT:    i32.shl $push35=, $pop34, $pop333412; SIMD128-FAST-NEXT:    i8x16.replace_lane $push36=, $pop31, 6, $pop353413; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push39=, $0, 73414; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push37=, $1, 73415; SIMD128-FAST-NEXT:    i32.const $push89=, 73416; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop893417; SIMD128-FAST-NEXT:    i32.shl $push40=, $pop39, $pop383418; SIMD128-FAST-NEXT:    i8x16.replace_lane $push41=, $pop36, 7, $pop403419; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push44=, $0, 83420; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push42=, $1, 83421; SIMD128-FAST-NEXT:    i32.const $push88=, 73422; SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $pop883423; SIMD128-FAST-NEXT:    i32.shl $push45=, $pop44, $pop433424; SIMD128-FAST-NEXT:    i8x16.replace_lane $push46=, $pop41, 8, $pop453425; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push49=, $0, 93426; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push47=, $1, 93427; SIMD128-FAST-NEXT:    i32.const $push87=, 73428; SIMD128-FAST-NEXT:    i32.and $push48=, $pop47, $pop873429; SIMD128-FAST-NEXT:    i32.shl $push50=, $pop49, $pop483430; SIMD128-FAST-NEXT:    i8x16.replace_lane $push51=, $pop46, 9, $pop503431; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push54=, $0, 103432; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push52=, $1, 103433; SIMD128-FAST-NEXT:    i32.const $push86=, 73434; SIMD128-FAST-NEXT:    i32.and $push53=, $pop52, $pop863435; SIMD128-FAST-NEXT:    i32.shl $push55=, $pop54, $pop533436; SIMD128-FAST-NEXT:    i8x16.replace_lane $push56=, $pop51, 10, $pop553437; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push59=, $0, 113438; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push57=, $1, 113439; SIMD128-FAST-NEXT:    i32.const $push85=, 73440; SIMD128-FAST-NEXT:    i32.and $push58=, $pop57, $pop853441; SIMD128-FAST-NEXT:    i32.shl $push60=, $pop59, $pop583442; SIMD128-FAST-NEXT:    i8x16.replace_lane $push61=, $pop56, 11, $pop603443; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push64=, $0, 123444; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push62=, $1, 123445; SIMD128-FAST-NEXT:    i32.const $push84=, 73446; SIMD128-FAST-NEXT:    i32.and $push63=, $pop62, $pop843447; SIMD128-FAST-NEXT:    i32.shl $push65=, $pop64, $pop633448; SIMD128-FAST-NEXT:    i8x16.replace_lane $push66=, $pop61, 12, $pop653449; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push69=, $0, 133450; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push67=, $1, 133451; SIMD128-FAST-NEXT:    i32.const $push83=, 73452; SIMD128-FAST-NEXT:    i32.and $push68=, $pop67, $pop833453; SIMD128-FAST-NEXT:    i32.shl $push70=, $pop69, $pop683454; SIMD128-FAST-NEXT:    i8x16.replace_lane $push71=, $pop66, 13, $pop703455; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push74=, $0, 143456; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push72=, $1, 143457; SIMD128-FAST-NEXT:    i32.const $push82=, 73458; SIMD128-FAST-NEXT:    i32.and $push73=, $pop72, $pop823459; SIMD128-FAST-NEXT:    i32.shl $push75=, $pop74, $pop733460; SIMD128-FAST-NEXT:    i8x16.replace_lane $push76=, $pop71, 14, $pop753461; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push79=, $0, 153462; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push77=, $1, 153463; SIMD128-FAST-NEXT:    i32.const $push81=, 73464; SIMD128-FAST-NEXT:    i32.and $push78=, $pop77, $pop813465; SIMD128-FAST-NEXT:    i32.shl $push80=, $pop79, $pop783466; SIMD128-FAST-NEXT:    i8x16.replace_lane $push0=, $pop76, 15, $pop803467; SIMD128-FAST-NEXT:    return $pop03468;3469; NO-SIMD128-LABEL: shl_vec_v16i8:3470; NO-SIMD128:         .functype shl_vec_v16i8 (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) -> ()3471; NO-SIMD128-NEXT:  # %bb.0:3472; NO-SIMD128-NEXT:    i32.const $push0=, 2553473; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop03474; NO-SIMD128-NEXT:    i32.shl $push2=, $16, $pop13475; NO-SIMD128-NEXT:    i32.store8 15($0), $pop23476; NO-SIMD128-NEXT:    i32.const $push47=, 2553477; NO-SIMD128-NEXT:    i32.and $push3=, $31, $pop473478; NO-SIMD128-NEXT:    i32.shl $push4=, $15, $pop33479; NO-SIMD128-NEXT:    i32.store8 14($0), $pop43480; NO-SIMD128-NEXT:    i32.const $push46=, 2553481; NO-SIMD128-NEXT:    i32.and $push5=, $30, $pop463482; NO-SIMD128-NEXT:    i32.shl $push6=, $14, $pop53483; NO-SIMD128-NEXT:    i32.store8 13($0), $pop63484; NO-SIMD128-NEXT:    i32.const $push45=, 2553485; NO-SIMD128-NEXT:    i32.and $push7=, $29, $pop453486; NO-SIMD128-NEXT:    i32.shl $push8=, $13, $pop73487; NO-SIMD128-NEXT:    i32.store8 12($0), $pop83488; NO-SIMD128-NEXT:    i32.const $push44=, 2553489; NO-SIMD128-NEXT:    i32.and $push9=, $28, $pop443490; NO-SIMD128-NEXT:    i32.shl $push10=, $12, $pop93491; NO-SIMD128-NEXT:    i32.store8 11($0), $pop103492; NO-SIMD128-NEXT:    i32.const $push43=, 2553493; NO-SIMD128-NEXT:    i32.and $push11=, $27, $pop433494; NO-SIMD128-NEXT:    i32.shl $push12=, $11, $pop113495; NO-SIMD128-NEXT:    i32.store8 10($0), $pop123496; NO-SIMD128-NEXT:    i32.const $push42=, 2553497; NO-SIMD128-NEXT:    i32.and $push13=, $26, $pop423498; NO-SIMD128-NEXT:    i32.shl $push14=, $10, $pop133499; NO-SIMD128-NEXT:    i32.store8 9($0), $pop143500; NO-SIMD128-NEXT:    i32.const $push41=, 2553501; NO-SIMD128-NEXT:    i32.and $push15=, $25, $pop413502; NO-SIMD128-NEXT:    i32.shl $push16=, $9, $pop153503; NO-SIMD128-NEXT:    i32.store8 8($0), $pop163504; NO-SIMD128-NEXT:    i32.const $push40=, 2553505; NO-SIMD128-NEXT:    i32.and $push17=, $24, $pop403506; NO-SIMD128-NEXT:    i32.shl $push18=, $8, $pop173507; NO-SIMD128-NEXT:    i32.store8 7($0), $pop183508; NO-SIMD128-NEXT:    i32.const $push39=, 2553509; NO-SIMD128-NEXT:    i32.and $push19=, $23, $pop393510; NO-SIMD128-NEXT:    i32.shl $push20=, $7, $pop193511; NO-SIMD128-NEXT:    i32.store8 6($0), $pop203512; NO-SIMD128-NEXT:    i32.const $push38=, 2553513; NO-SIMD128-NEXT:    i32.and $push21=, $22, $pop383514; NO-SIMD128-NEXT:    i32.shl $push22=, $6, $pop213515; NO-SIMD128-NEXT:    i32.store8 5($0), $pop223516; NO-SIMD128-NEXT:    i32.const $push37=, 2553517; NO-SIMD128-NEXT:    i32.and $push23=, $21, $pop373518; NO-SIMD128-NEXT:    i32.shl $push24=, $5, $pop233519; NO-SIMD128-NEXT:    i32.store8 4($0), $pop243520; NO-SIMD128-NEXT:    i32.const $push36=, 2553521; NO-SIMD128-NEXT:    i32.and $push25=, $20, $pop363522; NO-SIMD128-NEXT:    i32.shl $push26=, $4, $pop253523; NO-SIMD128-NEXT:    i32.store8 3($0), $pop263524; NO-SIMD128-NEXT:    i32.const $push35=, 2553525; NO-SIMD128-NEXT:    i32.and $push27=, $19, $pop353526; NO-SIMD128-NEXT:    i32.shl $push28=, $3, $pop273527; NO-SIMD128-NEXT:    i32.store8 2($0), $pop283528; NO-SIMD128-NEXT:    i32.const $push34=, 2553529; NO-SIMD128-NEXT:    i32.and $push29=, $18, $pop343530; NO-SIMD128-NEXT:    i32.shl $push30=, $2, $pop293531; NO-SIMD128-NEXT:    i32.store8 1($0), $pop303532; NO-SIMD128-NEXT:    i32.const $push33=, 2553533; NO-SIMD128-NEXT:    i32.and $push31=, $17, $pop333534; NO-SIMD128-NEXT:    i32.shl $push32=, $1, $pop313535; NO-SIMD128-NEXT:    i32.store8 0($0), $pop323536; NO-SIMD128-NEXT:    return3537;3538; NO-SIMD128-FAST-LABEL: shl_vec_v16i8:3539; NO-SIMD128-FAST:         .functype shl_vec_v16i8 (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) -> ()3540; NO-SIMD128-FAST-NEXT:  # %bb.0:3541; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2553542; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop03543; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $1, $pop13544; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop23545; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 2553546; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $18, $pop473547; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $2, $pop33548; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop43549; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 2553550; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $19, $pop463551; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $3, $pop53552; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop63553; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 2553554; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $20, $pop453555; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $4, $pop73556; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop83557; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 2553558; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $21, $pop443559; NO-SIMD128-FAST-NEXT:    i32.shl $push10=, $5, $pop93560; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop103561; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 2553562; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $22, $pop433563; NO-SIMD128-FAST-NEXT:    i32.shl $push12=, $6, $pop113564; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop123565; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 2553566; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $23, $pop423567; NO-SIMD128-FAST-NEXT:    i32.shl $push14=, $7, $pop133568; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop143569; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 2553570; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $24, $pop413571; NO-SIMD128-FAST-NEXT:    i32.shl $push16=, $8, $pop153572; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop163573; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 2553574; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $25, $pop403575; NO-SIMD128-FAST-NEXT:    i32.shl $push18=, $9, $pop173576; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop183577; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 2553578; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $26, $pop393579; NO-SIMD128-FAST-NEXT:    i32.shl $push20=, $10, $pop193580; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop203581; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 2553582; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $27, $pop383583; NO-SIMD128-FAST-NEXT:    i32.shl $push22=, $11, $pop213584; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop223585; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 2553586; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $28, $pop373587; NO-SIMD128-FAST-NEXT:    i32.shl $push24=, $12, $pop233588; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop243589; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 2553590; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $29, $pop363591; NO-SIMD128-FAST-NEXT:    i32.shl $push26=, $13, $pop253592; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop263593; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 2553594; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $30, $pop353595; NO-SIMD128-FAST-NEXT:    i32.shl $push28=, $14, $pop273596; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop283597; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 2553598; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $31, $pop343599; NO-SIMD128-FAST-NEXT:    i32.shl $push30=, $15, $pop293600; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop303601; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 2553602; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $32, $pop333603; NO-SIMD128-FAST-NEXT:    i32.shl $push32=, $16, $pop313604; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop323605; NO-SIMD128-FAST-NEXT:    return3606  %a = shl <16 x i8> %v, %x3607  ret <16 x i8> %a3608}3609 3610define <16 x i8> @shr_s_v16i8(<16 x i8> %v, i8 %x) {3611; SIMD128-LABEL: shr_s_v16i8:3612; SIMD128:         .functype shr_s_v16i8 (v128, i32) -> (v128)3613; SIMD128-NEXT:  # %bb.0:3614; SIMD128-NEXT:    i8x16.shr_s $push0=, $0, $13615; SIMD128-NEXT:    return $pop03616;3617; SIMD128-FAST-LABEL: shr_s_v16i8:3618; SIMD128-FAST:         .functype shr_s_v16i8 (v128, i32) -> (v128)3619; SIMD128-FAST-NEXT:  # %bb.0:3620; SIMD128-FAST-NEXT:    i8x16.shr_s $push0=, $0, $13621; SIMD128-FAST-NEXT:    return $pop03622;3623; NO-SIMD128-LABEL: shr_s_v16i8:3624; NO-SIMD128:         .functype shr_s_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3625; NO-SIMD128-NEXT:  # %bb.0:3626; NO-SIMD128-NEXT:    i32.extend8_s $push1=, $163627; NO-SIMD128-NEXT:    i32.const $push0=, 2553628; NO-SIMD128-NEXT:    i32.and $push34=, $17, $pop03629; NO-SIMD128-NEXT:    local.tee $push33=, $17=, $pop343630; NO-SIMD128-NEXT:    i32.shr_s $push2=, $pop1, $pop333631; NO-SIMD128-NEXT:    i32.store8 15($0), $pop23632; NO-SIMD128-NEXT:    i32.extend8_s $push3=, $153633; NO-SIMD128-NEXT:    i32.shr_s $push4=, $pop3, $173634; NO-SIMD128-NEXT:    i32.store8 14($0), $pop43635; NO-SIMD128-NEXT:    i32.extend8_s $push5=, $143636; NO-SIMD128-NEXT:    i32.shr_s $push6=, $pop5, $173637; NO-SIMD128-NEXT:    i32.store8 13($0), $pop63638; NO-SIMD128-NEXT:    i32.extend8_s $push7=, $133639; NO-SIMD128-NEXT:    i32.shr_s $push8=, $pop7, $173640; NO-SIMD128-NEXT:    i32.store8 12($0), $pop83641; NO-SIMD128-NEXT:    i32.extend8_s $push9=, $123642; NO-SIMD128-NEXT:    i32.shr_s $push10=, $pop9, $173643; NO-SIMD128-NEXT:    i32.store8 11($0), $pop103644; NO-SIMD128-NEXT:    i32.extend8_s $push11=, $113645; NO-SIMD128-NEXT:    i32.shr_s $push12=, $pop11, $173646; NO-SIMD128-NEXT:    i32.store8 10($0), $pop123647; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $103648; NO-SIMD128-NEXT:    i32.shr_s $push14=, $pop13, $173649; NO-SIMD128-NEXT:    i32.store8 9($0), $pop143650; NO-SIMD128-NEXT:    i32.extend8_s $push15=, $93651; NO-SIMD128-NEXT:    i32.shr_s $push16=, $pop15, $173652; NO-SIMD128-NEXT:    i32.store8 8($0), $pop163653; NO-SIMD128-NEXT:    i32.extend8_s $push17=, $83654; NO-SIMD128-NEXT:    i32.shr_s $push18=, $pop17, $173655; NO-SIMD128-NEXT:    i32.store8 7($0), $pop183656; NO-SIMD128-NEXT:    i32.extend8_s $push19=, $73657; NO-SIMD128-NEXT:    i32.shr_s $push20=, $pop19, $173658; NO-SIMD128-NEXT:    i32.store8 6($0), $pop203659; NO-SIMD128-NEXT:    i32.extend8_s $push21=, $63660; NO-SIMD128-NEXT:    i32.shr_s $push22=, $pop21, $173661; NO-SIMD128-NEXT:    i32.store8 5($0), $pop223662; NO-SIMD128-NEXT:    i32.extend8_s $push23=, $53663; NO-SIMD128-NEXT:    i32.shr_s $push24=, $pop23, $173664; NO-SIMD128-NEXT:    i32.store8 4($0), $pop243665; NO-SIMD128-NEXT:    i32.extend8_s $push25=, $43666; NO-SIMD128-NEXT:    i32.shr_s $push26=, $pop25, $173667; NO-SIMD128-NEXT:    i32.store8 3($0), $pop263668; NO-SIMD128-NEXT:    i32.extend8_s $push27=, $33669; NO-SIMD128-NEXT:    i32.shr_s $push28=, $pop27, $173670; NO-SIMD128-NEXT:    i32.store8 2($0), $pop283671; NO-SIMD128-NEXT:    i32.extend8_s $push29=, $23672; NO-SIMD128-NEXT:    i32.shr_s $push30=, $pop29, $173673; NO-SIMD128-NEXT:    i32.store8 1($0), $pop303674; NO-SIMD128-NEXT:    i32.extend8_s $push31=, $13675; NO-SIMD128-NEXT:    i32.shr_s $push32=, $pop31, $173676; NO-SIMD128-NEXT:    i32.store8 0($0), $pop323677; NO-SIMD128-NEXT:    return3678;3679; NO-SIMD128-FAST-LABEL: shr_s_v16i8:3680; NO-SIMD128-FAST:         .functype shr_s_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()3681; NO-SIMD128-FAST-NEXT:  # %bb.0:3682; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push1=, $13683; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2553684; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $17, $pop03685; NO-SIMD128-FAST-NEXT:    local.tee $push33=, $1=, $pop343686; NO-SIMD128-FAST-NEXT:    i32.shr_s $push2=, $pop1, $pop333687; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop23688; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push3=, $23689; NO-SIMD128-FAST-NEXT:    i32.shr_s $push4=, $pop3, $13690; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop43691; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push5=, $33692; NO-SIMD128-FAST-NEXT:    i32.shr_s $push6=, $pop5, $13693; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop63694; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push7=, $43695; NO-SIMD128-FAST-NEXT:    i32.shr_s $push8=, $pop7, $13696; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop83697; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push9=, $53698; NO-SIMD128-FAST-NEXT:    i32.shr_s $push10=, $pop9, $13699; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop103700; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push11=, $63701; NO-SIMD128-FAST-NEXT:    i32.shr_s $push12=, $pop11, $13702; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop123703; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $73704; NO-SIMD128-FAST-NEXT:    i32.shr_s $push14=, $pop13, $13705; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop143706; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push15=, $83707; NO-SIMD128-FAST-NEXT:    i32.shr_s $push16=, $pop15, $13708; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop163709; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push17=, $93710; NO-SIMD128-FAST-NEXT:    i32.shr_s $push18=, $pop17, $13711; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop183712; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push19=, $103713; NO-SIMD128-FAST-NEXT:    i32.shr_s $push20=, $pop19, $13714; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop203715; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push21=, $113716; NO-SIMD128-FAST-NEXT:    i32.shr_s $push22=, $pop21, $13717; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop223718; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push23=, $123719; NO-SIMD128-FAST-NEXT:    i32.shr_s $push24=, $pop23, $13720; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop243721; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push25=, $133722; NO-SIMD128-FAST-NEXT:    i32.shr_s $push26=, $pop25, $13723; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop263724; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push27=, $143725; NO-SIMD128-FAST-NEXT:    i32.shr_s $push28=, $pop27, $13726; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop283727; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push29=, $153728; NO-SIMD128-FAST-NEXT:    i32.shr_s $push30=, $pop29, $13729; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop303730; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push31=, $163731; NO-SIMD128-FAST-NEXT:    i32.shr_s $push32=, $pop31, $13732; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop323733; NO-SIMD128-FAST-NEXT:    return3734  %t = insertelement <16 x i8> undef, i8 %x, i32 03735  %s = shufflevector <16 x i8> %t, <16 x i8> undef,3736    <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0,3737                i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>3738  %a = ashr <16 x i8> %v, %s3739  ret <16 x i8> %a3740}3741 3742define <16 x i8> @shr_s_vec_v16i8(<16 x i8> %v, <16 x i8> %x) {3743; SIMD128-LABEL: shr_s_vec_v16i8:3744; SIMD128:         .functype shr_s_vec_v16i8 (v128, v128) -> (v128)3745; SIMD128-NEXT:  # %bb.0:3746; SIMD128-NEXT:    i8x16.extract_lane_s $push7=, $0, 03747; SIMD128-NEXT:    i8x16.extract_lane_u $push5=, $1, 03748; SIMD128-NEXT:    i32.const $push1=, 73749; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop13750; SIMD128-NEXT:    i32.shr_s $push8=, $pop7, $pop63751; SIMD128-NEXT:    i8x16.splat $push9=, $pop83752; SIMD128-NEXT:    i8x16.extract_lane_s $push3=, $0, 13753; SIMD128-NEXT:    i8x16.extract_lane_u $push0=, $1, 13754; SIMD128-NEXT:    i32.const $push95=, 73755; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop953756; SIMD128-NEXT:    i32.shr_s $push4=, $pop3, $pop23757; SIMD128-NEXT:    i8x16.replace_lane $push10=, $pop9, 1, $pop43758; SIMD128-NEXT:    i8x16.extract_lane_s $push13=, $0, 23759; SIMD128-NEXT:    i8x16.extract_lane_u $push11=, $1, 23760; SIMD128-NEXT:    i32.const $push94=, 73761; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop943762; SIMD128-NEXT:    i32.shr_s $push14=, $pop13, $pop123763; SIMD128-NEXT:    i8x16.replace_lane $push15=, $pop10, 2, $pop143764; SIMD128-NEXT:    i8x16.extract_lane_s $push18=, $0, 33765; SIMD128-NEXT:    i8x16.extract_lane_u $push16=, $1, 33766; SIMD128-NEXT:    i32.const $push93=, 73767; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop933768; SIMD128-NEXT:    i32.shr_s $push19=, $pop18, $pop173769; SIMD128-NEXT:    i8x16.replace_lane $push20=, $pop15, 3, $pop193770; SIMD128-NEXT:    i8x16.extract_lane_s $push23=, $0, 43771; SIMD128-NEXT:    i8x16.extract_lane_u $push21=, $1, 43772; SIMD128-NEXT:    i32.const $push92=, 73773; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop923774; SIMD128-NEXT:    i32.shr_s $push24=, $pop23, $pop223775; SIMD128-NEXT:    i8x16.replace_lane $push25=, $pop20, 4, $pop243776; SIMD128-NEXT:    i8x16.extract_lane_s $push28=, $0, 53777; SIMD128-NEXT:    i8x16.extract_lane_u $push26=, $1, 53778; SIMD128-NEXT:    i32.const $push91=, 73779; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop913780; SIMD128-NEXT:    i32.shr_s $push29=, $pop28, $pop273781; SIMD128-NEXT:    i8x16.replace_lane $push30=, $pop25, 5, $pop293782; SIMD128-NEXT:    i8x16.extract_lane_s $push33=, $0, 63783; SIMD128-NEXT:    i8x16.extract_lane_u $push31=, $1, 63784; SIMD128-NEXT:    i32.const $push90=, 73785; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop903786; SIMD128-NEXT:    i32.shr_s $push34=, $pop33, $pop323787; SIMD128-NEXT:    i8x16.replace_lane $push35=, $pop30, 6, $pop343788; SIMD128-NEXT:    i8x16.extract_lane_s $push38=, $0, 73789; SIMD128-NEXT:    i8x16.extract_lane_u $push36=, $1, 73790; SIMD128-NEXT:    i32.const $push89=, 73791; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop893792; SIMD128-NEXT:    i32.shr_s $push39=, $pop38, $pop373793; SIMD128-NEXT:    i8x16.replace_lane $push40=, $pop35, 7, $pop393794; SIMD128-NEXT:    i8x16.extract_lane_s $push43=, $0, 83795; SIMD128-NEXT:    i8x16.extract_lane_u $push41=, $1, 83796; SIMD128-NEXT:    i32.const $push88=, 73797; SIMD128-NEXT:    i32.and $push42=, $pop41, $pop883798; SIMD128-NEXT:    i32.shr_s $push44=, $pop43, $pop423799; SIMD128-NEXT:    i8x16.replace_lane $push45=, $pop40, 8, $pop443800; SIMD128-NEXT:    i8x16.extract_lane_s $push48=, $0, 93801; SIMD128-NEXT:    i8x16.extract_lane_u $push46=, $1, 93802; SIMD128-NEXT:    i32.const $push87=, 73803; SIMD128-NEXT:    i32.and $push47=, $pop46, $pop873804; SIMD128-NEXT:    i32.shr_s $push49=, $pop48, $pop473805; SIMD128-NEXT:    i8x16.replace_lane $push50=, $pop45, 9, $pop493806; SIMD128-NEXT:    i8x16.extract_lane_s $push53=, $0, 103807; SIMD128-NEXT:    i8x16.extract_lane_u $push51=, $1, 103808; SIMD128-NEXT:    i32.const $push86=, 73809; SIMD128-NEXT:    i32.and $push52=, $pop51, $pop863810; SIMD128-NEXT:    i32.shr_s $push54=, $pop53, $pop523811; SIMD128-NEXT:    i8x16.replace_lane $push55=, $pop50, 10, $pop543812; SIMD128-NEXT:    i8x16.extract_lane_s $push58=, $0, 113813; SIMD128-NEXT:    i8x16.extract_lane_u $push56=, $1, 113814; SIMD128-NEXT:    i32.const $push85=, 73815; SIMD128-NEXT:    i32.and $push57=, $pop56, $pop853816; SIMD128-NEXT:    i32.shr_s $push59=, $pop58, $pop573817; SIMD128-NEXT:    i8x16.replace_lane $push60=, $pop55, 11, $pop593818; SIMD128-NEXT:    i8x16.extract_lane_s $push63=, $0, 123819; SIMD128-NEXT:    i8x16.extract_lane_u $push61=, $1, 123820; SIMD128-NEXT:    i32.const $push84=, 73821; SIMD128-NEXT:    i32.and $push62=, $pop61, $pop843822; SIMD128-NEXT:    i32.shr_s $push64=, $pop63, $pop623823; SIMD128-NEXT:    i8x16.replace_lane $push65=, $pop60, 12, $pop643824; SIMD128-NEXT:    i8x16.extract_lane_s $push68=, $0, 133825; SIMD128-NEXT:    i8x16.extract_lane_u $push66=, $1, 133826; SIMD128-NEXT:    i32.const $push83=, 73827; SIMD128-NEXT:    i32.and $push67=, $pop66, $pop833828; SIMD128-NEXT:    i32.shr_s $push69=, $pop68, $pop673829; SIMD128-NEXT:    i8x16.replace_lane $push70=, $pop65, 13, $pop693830; SIMD128-NEXT:    i8x16.extract_lane_s $push73=, $0, 143831; SIMD128-NEXT:    i8x16.extract_lane_u $push71=, $1, 143832; SIMD128-NEXT:    i32.const $push82=, 73833; SIMD128-NEXT:    i32.and $push72=, $pop71, $pop823834; SIMD128-NEXT:    i32.shr_s $push74=, $pop73, $pop723835; SIMD128-NEXT:    i8x16.replace_lane $push75=, $pop70, 14, $pop743836; SIMD128-NEXT:    i8x16.extract_lane_s $push78=, $0, 153837; SIMD128-NEXT:    i8x16.extract_lane_u $push76=, $1, 153838; SIMD128-NEXT:    i32.const $push81=, 73839; SIMD128-NEXT:    i32.and $push77=, $pop76, $pop813840; SIMD128-NEXT:    i32.shr_s $push79=, $pop78, $pop773841; SIMD128-NEXT:    i8x16.replace_lane $push80=, $pop75, 15, $pop793842; SIMD128-NEXT:    return $pop803843;3844; SIMD128-FAST-LABEL: shr_s_vec_v16i8:3845; SIMD128-FAST:         .functype shr_s_vec_v16i8 (v128, v128) -> (v128)3846; SIMD128-FAST-NEXT:  # %bb.0:3847; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push8=, $0, 03848; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push6=, $1, 03849; SIMD128-FAST-NEXT:    i32.const $push2=, 73850; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop23851; SIMD128-FAST-NEXT:    i32.shr_s $push9=, $pop8, $pop73852; SIMD128-FAST-NEXT:    i8x16.splat $push10=, $pop93853; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push4=, $0, 13854; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push1=, $1, 13855; SIMD128-FAST-NEXT:    i32.const $push95=, 73856; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop953857; SIMD128-FAST-NEXT:    i32.shr_s $push5=, $pop4, $pop33858; SIMD128-FAST-NEXT:    i8x16.replace_lane $push11=, $pop10, 1, $pop53859; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push14=, $0, 23860; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push12=, $1, 23861; SIMD128-FAST-NEXT:    i32.const $push94=, 73862; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop943863; SIMD128-FAST-NEXT:    i32.shr_s $push15=, $pop14, $pop133864; SIMD128-FAST-NEXT:    i8x16.replace_lane $push16=, $pop11, 2, $pop153865; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push19=, $0, 33866; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push17=, $1, 33867; SIMD128-FAST-NEXT:    i32.const $push93=, 73868; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop933869; SIMD128-FAST-NEXT:    i32.shr_s $push20=, $pop19, $pop183870; SIMD128-FAST-NEXT:    i8x16.replace_lane $push21=, $pop16, 3, $pop203871; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push24=, $0, 43872; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push22=, $1, 43873; SIMD128-FAST-NEXT:    i32.const $push92=, 73874; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop923875; SIMD128-FAST-NEXT:    i32.shr_s $push25=, $pop24, $pop233876; SIMD128-FAST-NEXT:    i8x16.replace_lane $push26=, $pop21, 4, $pop253877; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push29=, $0, 53878; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push27=, $1, 53879; SIMD128-FAST-NEXT:    i32.const $push91=, 73880; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop913881; SIMD128-FAST-NEXT:    i32.shr_s $push30=, $pop29, $pop283882; SIMD128-FAST-NEXT:    i8x16.replace_lane $push31=, $pop26, 5, $pop303883; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push34=, $0, 63884; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push32=, $1, 63885; SIMD128-FAST-NEXT:    i32.const $push90=, 73886; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop903887; SIMD128-FAST-NEXT:    i32.shr_s $push35=, $pop34, $pop333888; SIMD128-FAST-NEXT:    i8x16.replace_lane $push36=, $pop31, 6, $pop353889; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push39=, $0, 73890; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push37=, $1, 73891; SIMD128-FAST-NEXT:    i32.const $push89=, 73892; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop893893; SIMD128-FAST-NEXT:    i32.shr_s $push40=, $pop39, $pop383894; SIMD128-FAST-NEXT:    i8x16.replace_lane $push41=, $pop36, 7, $pop403895; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push44=, $0, 83896; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push42=, $1, 83897; SIMD128-FAST-NEXT:    i32.const $push88=, 73898; SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $pop883899; SIMD128-FAST-NEXT:    i32.shr_s $push45=, $pop44, $pop433900; SIMD128-FAST-NEXT:    i8x16.replace_lane $push46=, $pop41, 8, $pop453901; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push49=, $0, 93902; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push47=, $1, 93903; SIMD128-FAST-NEXT:    i32.const $push87=, 73904; SIMD128-FAST-NEXT:    i32.and $push48=, $pop47, $pop873905; SIMD128-FAST-NEXT:    i32.shr_s $push50=, $pop49, $pop483906; SIMD128-FAST-NEXT:    i8x16.replace_lane $push51=, $pop46, 9, $pop503907; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push54=, $0, 103908; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push52=, $1, 103909; SIMD128-FAST-NEXT:    i32.const $push86=, 73910; SIMD128-FAST-NEXT:    i32.and $push53=, $pop52, $pop863911; SIMD128-FAST-NEXT:    i32.shr_s $push55=, $pop54, $pop533912; SIMD128-FAST-NEXT:    i8x16.replace_lane $push56=, $pop51, 10, $pop553913; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push59=, $0, 113914; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push57=, $1, 113915; SIMD128-FAST-NEXT:    i32.const $push85=, 73916; SIMD128-FAST-NEXT:    i32.and $push58=, $pop57, $pop853917; SIMD128-FAST-NEXT:    i32.shr_s $push60=, $pop59, $pop583918; SIMD128-FAST-NEXT:    i8x16.replace_lane $push61=, $pop56, 11, $pop603919; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push64=, $0, 123920; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push62=, $1, 123921; SIMD128-FAST-NEXT:    i32.const $push84=, 73922; SIMD128-FAST-NEXT:    i32.and $push63=, $pop62, $pop843923; SIMD128-FAST-NEXT:    i32.shr_s $push65=, $pop64, $pop633924; SIMD128-FAST-NEXT:    i8x16.replace_lane $push66=, $pop61, 12, $pop653925; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push69=, $0, 133926; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push67=, $1, 133927; SIMD128-FAST-NEXT:    i32.const $push83=, 73928; SIMD128-FAST-NEXT:    i32.and $push68=, $pop67, $pop833929; SIMD128-FAST-NEXT:    i32.shr_s $push70=, $pop69, $pop683930; SIMD128-FAST-NEXT:    i8x16.replace_lane $push71=, $pop66, 13, $pop703931; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push74=, $0, 143932; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push72=, $1, 143933; SIMD128-FAST-NEXT:    i32.const $push82=, 73934; SIMD128-FAST-NEXT:    i32.and $push73=, $pop72, $pop823935; SIMD128-FAST-NEXT:    i32.shr_s $push75=, $pop74, $pop733936; SIMD128-FAST-NEXT:    i8x16.replace_lane $push76=, $pop71, 14, $pop753937; SIMD128-FAST-NEXT:    i8x16.extract_lane_s $push79=, $0, 153938; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push77=, $1, 153939; SIMD128-FAST-NEXT:    i32.const $push81=, 73940; SIMD128-FAST-NEXT:    i32.and $push78=, $pop77, $pop813941; SIMD128-FAST-NEXT:    i32.shr_s $push80=, $pop79, $pop783942; SIMD128-FAST-NEXT:    i8x16.replace_lane $push0=, $pop76, 15, $pop803943; SIMD128-FAST-NEXT:    return $pop03944;3945; NO-SIMD128-LABEL: shr_s_vec_v16i8:3946; NO-SIMD128:         .functype shr_s_vec_v16i8 (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) -> ()3947; NO-SIMD128-NEXT:  # %bb.0:3948; NO-SIMD128-NEXT:    i32.extend8_s $push2=, $163949; NO-SIMD128-NEXT:    i32.const $push0=, 2553950; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop03951; NO-SIMD128-NEXT:    i32.shr_s $push3=, $pop2, $pop13952; NO-SIMD128-NEXT:    i32.store8 15($0), $pop33953; NO-SIMD128-NEXT:    i32.extend8_s $push5=, $153954; NO-SIMD128-NEXT:    i32.const $push63=, 2553955; NO-SIMD128-NEXT:    i32.and $push4=, $31, $pop633956; NO-SIMD128-NEXT:    i32.shr_s $push6=, $pop5, $pop43957; NO-SIMD128-NEXT:    i32.store8 14($0), $pop63958; NO-SIMD128-NEXT:    i32.extend8_s $push8=, $143959; NO-SIMD128-NEXT:    i32.const $push62=, 2553960; NO-SIMD128-NEXT:    i32.and $push7=, $30, $pop623961; NO-SIMD128-NEXT:    i32.shr_s $push9=, $pop8, $pop73962; NO-SIMD128-NEXT:    i32.store8 13($0), $pop93963; NO-SIMD128-NEXT:    i32.extend8_s $push11=, $133964; NO-SIMD128-NEXT:    i32.const $push61=, 2553965; NO-SIMD128-NEXT:    i32.and $push10=, $29, $pop613966; NO-SIMD128-NEXT:    i32.shr_s $push12=, $pop11, $pop103967; NO-SIMD128-NEXT:    i32.store8 12($0), $pop123968; NO-SIMD128-NEXT:    i32.extend8_s $push14=, $123969; NO-SIMD128-NEXT:    i32.const $push60=, 2553970; NO-SIMD128-NEXT:    i32.and $push13=, $28, $pop603971; NO-SIMD128-NEXT:    i32.shr_s $push15=, $pop14, $pop133972; NO-SIMD128-NEXT:    i32.store8 11($0), $pop153973; NO-SIMD128-NEXT:    i32.extend8_s $push17=, $113974; NO-SIMD128-NEXT:    i32.const $push59=, 2553975; NO-SIMD128-NEXT:    i32.and $push16=, $27, $pop593976; NO-SIMD128-NEXT:    i32.shr_s $push18=, $pop17, $pop163977; NO-SIMD128-NEXT:    i32.store8 10($0), $pop183978; NO-SIMD128-NEXT:    i32.extend8_s $push20=, $103979; NO-SIMD128-NEXT:    i32.const $push58=, 2553980; NO-SIMD128-NEXT:    i32.and $push19=, $26, $pop583981; NO-SIMD128-NEXT:    i32.shr_s $push21=, $pop20, $pop193982; NO-SIMD128-NEXT:    i32.store8 9($0), $pop213983; NO-SIMD128-NEXT:    i32.extend8_s $push23=, $93984; NO-SIMD128-NEXT:    i32.const $push57=, 2553985; NO-SIMD128-NEXT:    i32.and $push22=, $25, $pop573986; NO-SIMD128-NEXT:    i32.shr_s $push24=, $pop23, $pop223987; NO-SIMD128-NEXT:    i32.store8 8($0), $pop243988; NO-SIMD128-NEXT:    i32.extend8_s $push26=, $83989; NO-SIMD128-NEXT:    i32.const $push56=, 2553990; NO-SIMD128-NEXT:    i32.and $push25=, $24, $pop563991; NO-SIMD128-NEXT:    i32.shr_s $push27=, $pop26, $pop253992; NO-SIMD128-NEXT:    i32.store8 7($0), $pop273993; NO-SIMD128-NEXT:    i32.extend8_s $push29=, $73994; NO-SIMD128-NEXT:    i32.const $push55=, 2553995; NO-SIMD128-NEXT:    i32.and $push28=, $23, $pop553996; NO-SIMD128-NEXT:    i32.shr_s $push30=, $pop29, $pop283997; NO-SIMD128-NEXT:    i32.store8 6($0), $pop303998; NO-SIMD128-NEXT:    i32.extend8_s $push32=, $63999; NO-SIMD128-NEXT:    i32.const $push54=, 2554000; NO-SIMD128-NEXT:    i32.and $push31=, $22, $pop544001; NO-SIMD128-NEXT:    i32.shr_s $push33=, $pop32, $pop314002; NO-SIMD128-NEXT:    i32.store8 5($0), $pop334003; NO-SIMD128-NEXT:    i32.extend8_s $push35=, $54004; NO-SIMD128-NEXT:    i32.const $push53=, 2554005; NO-SIMD128-NEXT:    i32.and $push34=, $21, $pop534006; NO-SIMD128-NEXT:    i32.shr_s $push36=, $pop35, $pop344007; NO-SIMD128-NEXT:    i32.store8 4($0), $pop364008; NO-SIMD128-NEXT:    i32.extend8_s $push38=, $44009; NO-SIMD128-NEXT:    i32.const $push52=, 2554010; NO-SIMD128-NEXT:    i32.and $push37=, $20, $pop524011; NO-SIMD128-NEXT:    i32.shr_s $push39=, $pop38, $pop374012; NO-SIMD128-NEXT:    i32.store8 3($0), $pop394013; NO-SIMD128-NEXT:    i32.extend8_s $push41=, $34014; NO-SIMD128-NEXT:    i32.const $push51=, 2554015; NO-SIMD128-NEXT:    i32.and $push40=, $19, $pop514016; NO-SIMD128-NEXT:    i32.shr_s $push42=, $pop41, $pop404017; NO-SIMD128-NEXT:    i32.store8 2($0), $pop424018; NO-SIMD128-NEXT:    i32.extend8_s $push44=, $24019; NO-SIMD128-NEXT:    i32.const $push50=, 2554020; NO-SIMD128-NEXT:    i32.and $push43=, $18, $pop504021; NO-SIMD128-NEXT:    i32.shr_s $push45=, $pop44, $pop434022; NO-SIMD128-NEXT:    i32.store8 1($0), $pop454023; NO-SIMD128-NEXT:    i32.extend8_s $push47=, $14024; NO-SIMD128-NEXT:    i32.const $push49=, 2554025; NO-SIMD128-NEXT:    i32.and $push46=, $17, $pop494026; NO-SIMD128-NEXT:    i32.shr_s $push48=, $pop47, $pop464027; NO-SIMD128-NEXT:    i32.store8 0($0), $pop484028; NO-SIMD128-NEXT:    return4029;4030; NO-SIMD128-FAST-LABEL: shr_s_vec_v16i8:4031; NO-SIMD128-FAST:         .functype shr_s_vec_v16i8 (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) -> ()4032; NO-SIMD128-FAST-NEXT:  # %bb.0:4033; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push2=, $14034; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2554035; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop04036; NO-SIMD128-FAST-NEXT:    i32.shr_s $push3=, $pop2, $pop14037; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop34038; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push5=, $24039; NO-SIMD128-FAST-NEXT:    i32.const $push63=, 2554040; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $18, $pop634041; NO-SIMD128-FAST-NEXT:    i32.shr_s $push6=, $pop5, $pop44042; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop64043; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push8=, $34044; NO-SIMD128-FAST-NEXT:    i32.const $push62=, 2554045; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $19, $pop624046; NO-SIMD128-FAST-NEXT:    i32.shr_s $push9=, $pop8, $pop74047; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop94048; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push11=, $44049; NO-SIMD128-FAST-NEXT:    i32.const $push61=, 2554050; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $20, $pop614051; NO-SIMD128-FAST-NEXT:    i32.shr_s $push12=, $pop11, $pop104052; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop124053; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push14=, $54054; NO-SIMD128-FAST-NEXT:    i32.const $push60=, 2554055; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $21, $pop604056; NO-SIMD128-FAST-NEXT:    i32.shr_s $push15=, $pop14, $pop134057; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop154058; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push17=, $64059; NO-SIMD128-FAST-NEXT:    i32.const $push59=, 2554060; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $22, $pop594061; NO-SIMD128-FAST-NEXT:    i32.shr_s $push18=, $pop17, $pop164062; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop184063; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push20=, $74064; NO-SIMD128-FAST-NEXT:    i32.const $push58=, 2554065; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $23, $pop584066; NO-SIMD128-FAST-NEXT:    i32.shr_s $push21=, $pop20, $pop194067; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop214068; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push23=, $84069; NO-SIMD128-FAST-NEXT:    i32.const $push57=, 2554070; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $24, $pop574071; NO-SIMD128-FAST-NEXT:    i32.shr_s $push24=, $pop23, $pop224072; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop244073; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push26=, $94074; NO-SIMD128-FAST-NEXT:    i32.const $push56=, 2554075; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $25, $pop564076; NO-SIMD128-FAST-NEXT:    i32.shr_s $push27=, $pop26, $pop254077; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop274078; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push29=, $104079; NO-SIMD128-FAST-NEXT:    i32.const $push55=, 2554080; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $26, $pop554081; NO-SIMD128-FAST-NEXT:    i32.shr_s $push30=, $pop29, $pop284082; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop304083; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push32=, $114084; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 2554085; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $27, $pop544086; NO-SIMD128-FAST-NEXT:    i32.shr_s $push33=, $pop32, $pop314087; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop334088; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push35=, $124089; NO-SIMD128-FAST-NEXT:    i32.const $push53=, 2554090; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $28, $pop534091; NO-SIMD128-FAST-NEXT:    i32.shr_s $push36=, $pop35, $pop344092; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop364093; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push38=, $134094; NO-SIMD128-FAST-NEXT:    i32.const $push52=, 2554095; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $29, $pop524096; NO-SIMD128-FAST-NEXT:    i32.shr_s $push39=, $pop38, $pop374097; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop394098; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push41=, $144099; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 2554100; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $30, $pop514101; NO-SIMD128-FAST-NEXT:    i32.shr_s $push42=, $pop41, $pop404102; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop424103; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push44=, $154104; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 2554105; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $31, $pop504106; NO-SIMD128-FAST-NEXT:    i32.shr_s $push45=, $pop44, $pop434107; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop454108; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push47=, $164109; NO-SIMD128-FAST-NEXT:    i32.const $push49=, 2554110; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $32, $pop494111; NO-SIMD128-FAST-NEXT:    i32.shr_s $push48=, $pop47, $pop464112; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop484113; NO-SIMD128-FAST-NEXT:    return4114  %a = ashr <16 x i8> %v, %x4115  ret <16 x i8> %a4116}4117 4118define <16 x i8> @shr_u_v16i8(<16 x i8> %v, i8 %x) {4119; SIMD128-LABEL: shr_u_v16i8:4120; SIMD128:         .functype shr_u_v16i8 (v128, i32) -> (v128)4121; SIMD128-NEXT:  # %bb.0:4122; SIMD128-NEXT:    i8x16.shr_u $push0=, $0, $14123; SIMD128-NEXT:    return $pop04124;4125; SIMD128-FAST-LABEL: shr_u_v16i8:4126; SIMD128-FAST:         .functype shr_u_v16i8 (v128, i32) -> (v128)4127; SIMD128-FAST-NEXT:  # %bb.0:4128; SIMD128-FAST-NEXT:    i8x16.shr_u $push0=, $0, $14129; SIMD128-FAST-NEXT:    return $pop04130;4131; NO-SIMD128-LABEL: shr_u_v16i8:4132; NO-SIMD128:         .functype shr_u_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()4133; NO-SIMD128-NEXT:  # %bb.0:4134; NO-SIMD128-NEXT:    i32.const $push0=, 2554135; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop04136; NO-SIMD128-NEXT:    i32.const $push50=, 2554137; NO-SIMD128-NEXT:    i32.and $push49=, $17, $pop504138; NO-SIMD128-NEXT:    local.tee $push48=, $17=, $pop494139; NO-SIMD128-NEXT:    i32.shr_u $push2=, $pop1, $pop484140; NO-SIMD128-NEXT:    i32.store8 15($0), $pop24141; NO-SIMD128-NEXT:    i32.const $push47=, 2554142; NO-SIMD128-NEXT:    i32.and $push3=, $15, $pop474143; NO-SIMD128-NEXT:    i32.shr_u $push4=, $pop3, $174144; NO-SIMD128-NEXT:    i32.store8 14($0), $pop44145; NO-SIMD128-NEXT:    i32.const $push46=, 2554146; NO-SIMD128-NEXT:    i32.and $push5=, $14, $pop464147; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $174148; NO-SIMD128-NEXT:    i32.store8 13($0), $pop64149; NO-SIMD128-NEXT:    i32.const $push45=, 2554150; NO-SIMD128-NEXT:    i32.and $push7=, $13, $pop454151; NO-SIMD128-NEXT:    i32.shr_u $push8=, $pop7, $174152; NO-SIMD128-NEXT:    i32.store8 12($0), $pop84153; NO-SIMD128-NEXT:    i32.const $push44=, 2554154; NO-SIMD128-NEXT:    i32.and $push9=, $12, $pop444155; NO-SIMD128-NEXT:    i32.shr_u $push10=, $pop9, $174156; NO-SIMD128-NEXT:    i32.store8 11($0), $pop104157; NO-SIMD128-NEXT:    i32.const $push43=, 2554158; NO-SIMD128-NEXT:    i32.and $push11=, $11, $pop434159; NO-SIMD128-NEXT:    i32.shr_u $push12=, $pop11, $174160; NO-SIMD128-NEXT:    i32.store8 10($0), $pop124161; NO-SIMD128-NEXT:    i32.const $push42=, 2554162; NO-SIMD128-NEXT:    i32.and $push13=, $10, $pop424163; NO-SIMD128-NEXT:    i32.shr_u $push14=, $pop13, $174164; NO-SIMD128-NEXT:    i32.store8 9($0), $pop144165; NO-SIMD128-NEXT:    i32.const $push41=, 2554166; NO-SIMD128-NEXT:    i32.and $push15=, $9, $pop414167; NO-SIMD128-NEXT:    i32.shr_u $push16=, $pop15, $174168; NO-SIMD128-NEXT:    i32.store8 8($0), $pop164169; NO-SIMD128-NEXT:    i32.const $push40=, 2554170; NO-SIMD128-NEXT:    i32.and $push17=, $8, $pop404171; NO-SIMD128-NEXT:    i32.shr_u $push18=, $pop17, $174172; NO-SIMD128-NEXT:    i32.store8 7($0), $pop184173; NO-SIMD128-NEXT:    i32.const $push39=, 2554174; NO-SIMD128-NEXT:    i32.and $push19=, $7, $pop394175; NO-SIMD128-NEXT:    i32.shr_u $push20=, $pop19, $174176; NO-SIMD128-NEXT:    i32.store8 6($0), $pop204177; NO-SIMD128-NEXT:    i32.const $push38=, 2554178; NO-SIMD128-NEXT:    i32.and $push21=, $6, $pop384179; NO-SIMD128-NEXT:    i32.shr_u $push22=, $pop21, $174180; NO-SIMD128-NEXT:    i32.store8 5($0), $pop224181; NO-SIMD128-NEXT:    i32.const $push37=, 2554182; NO-SIMD128-NEXT:    i32.and $push23=, $5, $pop374183; NO-SIMD128-NEXT:    i32.shr_u $push24=, $pop23, $174184; NO-SIMD128-NEXT:    i32.store8 4($0), $pop244185; NO-SIMD128-NEXT:    i32.const $push36=, 2554186; NO-SIMD128-NEXT:    i32.and $push25=, $4, $pop364187; NO-SIMD128-NEXT:    i32.shr_u $push26=, $pop25, $174188; NO-SIMD128-NEXT:    i32.store8 3($0), $pop264189; NO-SIMD128-NEXT:    i32.const $push35=, 2554190; NO-SIMD128-NEXT:    i32.and $push27=, $3, $pop354191; NO-SIMD128-NEXT:    i32.shr_u $push28=, $pop27, $174192; NO-SIMD128-NEXT:    i32.store8 2($0), $pop284193; NO-SIMD128-NEXT:    i32.const $push34=, 2554194; NO-SIMD128-NEXT:    i32.and $push29=, $2, $pop344195; NO-SIMD128-NEXT:    i32.shr_u $push30=, $pop29, $174196; NO-SIMD128-NEXT:    i32.store8 1($0), $pop304197; NO-SIMD128-NEXT:    i32.const $push33=, 2554198; NO-SIMD128-NEXT:    i32.and $push31=, $1, $pop334199; NO-SIMD128-NEXT:    i32.shr_u $push32=, $pop31, $174200; NO-SIMD128-NEXT:    i32.store8 0($0), $pop324201; NO-SIMD128-NEXT:    return4202;4203; NO-SIMD128-FAST-LABEL: shr_u_v16i8:4204; NO-SIMD128-FAST:         .functype shr_u_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()4205; NO-SIMD128-FAST-NEXT:  # %bb.0:4206; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2554207; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $1, $pop04208; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 2554209; NO-SIMD128-FAST-NEXT:    i32.and $push49=, $17, $pop504210; NO-SIMD128-FAST-NEXT:    local.tee $push48=, $1=, $pop494211; NO-SIMD128-FAST-NEXT:    i32.shr_u $push2=, $pop1, $pop484212; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop24213; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 2554214; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $2, $pop474215; NO-SIMD128-FAST-NEXT:    i32.shr_u $push4=, $pop3, $14216; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop44217; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 2554218; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $3, $pop464219; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $14220; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop64221; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 2554222; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $4, $pop454223; NO-SIMD128-FAST-NEXT:    i32.shr_u $push8=, $pop7, $14224; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop84225; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 2554226; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $5, $pop444227; NO-SIMD128-FAST-NEXT:    i32.shr_u $push10=, $pop9, $14228; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop104229; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 2554230; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $6, $pop434231; NO-SIMD128-FAST-NEXT:    i32.shr_u $push12=, $pop11, $14232; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop124233; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 2554234; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $7, $pop424235; NO-SIMD128-FAST-NEXT:    i32.shr_u $push14=, $pop13, $14236; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop144237; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 2554238; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $8, $pop414239; NO-SIMD128-FAST-NEXT:    i32.shr_u $push16=, $pop15, $14240; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop164241; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 2554242; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $9, $pop404243; NO-SIMD128-FAST-NEXT:    i32.shr_u $push18=, $pop17, $14244; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop184245; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 2554246; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $10, $pop394247; NO-SIMD128-FAST-NEXT:    i32.shr_u $push20=, $pop19, $14248; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop204249; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 2554250; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $11, $pop384251; NO-SIMD128-FAST-NEXT:    i32.shr_u $push22=, $pop21, $14252; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop224253; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 2554254; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $12, $pop374255; NO-SIMD128-FAST-NEXT:    i32.shr_u $push24=, $pop23, $14256; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop244257; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 2554258; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $13, $pop364259; NO-SIMD128-FAST-NEXT:    i32.shr_u $push26=, $pop25, $14260; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop264261; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 2554262; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $14, $pop354263; NO-SIMD128-FAST-NEXT:    i32.shr_u $push28=, $pop27, $14264; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop284265; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 2554266; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $15, $pop344267; NO-SIMD128-FAST-NEXT:    i32.shr_u $push30=, $pop29, $14268; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop304269; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 2554270; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $16, $pop334271; NO-SIMD128-FAST-NEXT:    i32.shr_u $push32=, $pop31, $14272; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop324273; NO-SIMD128-FAST-NEXT:    return4274  %t = insertelement <16 x i8> undef, i8 %x, i32 04275  %s = shufflevector <16 x i8> %t, <16 x i8> undef,4276    <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0,4277                i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>4278  %a = lshr <16 x i8> %v, %s4279  ret <16 x i8> %a4280}4281 4282define <16 x i8> @shr_u_vec_v16i8(<16 x i8> %v, <16 x i8> %x) {4283; SIMD128-LABEL: shr_u_vec_v16i8:4284; SIMD128:         .functype shr_u_vec_v16i8 (v128, v128) -> (v128)4285; SIMD128-NEXT:  # %bb.0:4286; SIMD128-NEXT:    i8x16.extract_lane_u $push7=, $0, 04287; SIMD128-NEXT:    i8x16.extract_lane_u $push5=, $1, 04288; SIMD128-NEXT:    i32.const $push1=, 74289; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop14290; SIMD128-NEXT:    i32.shr_u $push8=, $pop7, $pop64291; SIMD128-NEXT:    i8x16.splat $push9=, $pop84292; SIMD128-NEXT:    i8x16.extract_lane_u $push3=, $0, 14293; SIMD128-NEXT:    i8x16.extract_lane_u $push0=, $1, 14294; SIMD128-NEXT:    i32.const $push95=, 74295; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop954296; SIMD128-NEXT:    i32.shr_u $push4=, $pop3, $pop24297; SIMD128-NEXT:    i8x16.replace_lane $push10=, $pop9, 1, $pop44298; SIMD128-NEXT:    i8x16.extract_lane_u $push13=, $0, 24299; SIMD128-NEXT:    i8x16.extract_lane_u $push11=, $1, 24300; SIMD128-NEXT:    i32.const $push94=, 74301; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop944302; SIMD128-NEXT:    i32.shr_u $push14=, $pop13, $pop124303; SIMD128-NEXT:    i8x16.replace_lane $push15=, $pop10, 2, $pop144304; SIMD128-NEXT:    i8x16.extract_lane_u $push18=, $0, 34305; SIMD128-NEXT:    i8x16.extract_lane_u $push16=, $1, 34306; SIMD128-NEXT:    i32.const $push93=, 74307; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop934308; SIMD128-NEXT:    i32.shr_u $push19=, $pop18, $pop174309; SIMD128-NEXT:    i8x16.replace_lane $push20=, $pop15, 3, $pop194310; SIMD128-NEXT:    i8x16.extract_lane_u $push23=, $0, 44311; SIMD128-NEXT:    i8x16.extract_lane_u $push21=, $1, 44312; SIMD128-NEXT:    i32.const $push92=, 74313; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop924314; SIMD128-NEXT:    i32.shr_u $push24=, $pop23, $pop224315; SIMD128-NEXT:    i8x16.replace_lane $push25=, $pop20, 4, $pop244316; SIMD128-NEXT:    i8x16.extract_lane_u $push28=, $0, 54317; SIMD128-NEXT:    i8x16.extract_lane_u $push26=, $1, 54318; SIMD128-NEXT:    i32.const $push91=, 74319; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop914320; SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop274321; SIMD128-NEXT:    i8x16.replace_lane $push30=, $pop25, 5, $pop294322; SIMD128-NEXT:    i8x16.extract_lane_u $push33=, $0, 64323; SIMD128-NEXT:    i8x16.extract_lane_u $push31=, $1, 64324; SIMD128-NEXT:    i32.const $push90=, 74325; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop904326; SIMD128-NEXT:    i32.shr_u $push34=, $pop33, $pop324327; SIMD128-NEXT:    i8x16.replace_lane $push35=, $pop30, 6, $pop344328; SIMD128-NEXT:    i8x16.extract_lane_u $push38=, $0, 74329; SIMD128-NEXT:    i8x16.extract_lane_u $push36=, $1, 74330; SIMD128-NEXT:    i32.const $push89=, 74331; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop894332; SIMD128-NEXT:    i32.shr_u $push39=, $pop38, $pop374333; SIMD128-NEXT:    i8x16.replace_lane $push40=, $pop35, 7, $pop394334; SIMD128-NEXT:    i8x16.extract_lane_u $push43=, $0, 84335; SIMD128-NEXT:    i8x16.extract_lane_u $push41=, $1, 84336; SIMD128-NEXT:    i32.const $push88=, 74337; SIMD128-NEXT:    i32.and $push42=, $pop41, $pop884338; SIMD128-NEXT:    i32.shr_u $push44=, $pop43, $pop424339; SIMD128-NEXT:    i8x16.replace_lane $push45=, $pop40, 8, $pop444340; SIMD128-NEXT:    i8x16.extract_lane_u $push48=, $0, 94341; SIMD128-NEXT:    i8x16.extract_lane_u $push46=, $1, 94342; SIMD128-NEXT:    i32.const $push87=, 74343; SIMD128-NEXT:    i32.and $push47=, $pop46, $pop874344; SIMD128-NEXT:    i32.shr_u $push49=, $pop48, $pop474345; SIMD128-NEXT:    i8x16.replace_lane $push50=, $pop45, 9, $pop494346; SIMD128-NEXT:    i8x16.extract_lane_u $push53=, $0, 104347; SIMD128-NEXT:    i8x16.extract_lane_u $push51=, $1, 104348; SIMD128-NEXT:    i32.const $push86=, 74349; SIMD128-NEXT:    i32.and $push52=, $pop51, $pop864350; SIMD128-NEXT:    i32.shr_u $push54=, $pop53, $pop524351; SIMD128-NEXT:    i8x16.replace_lane $push55=, $pop50, 10, $pop544352; SIMD128-NEXT:    i8x16.extract_lane_u $push58=, $0, 114353; SIMD128-NEXT:    i8x16.extract_lane_u $push56=, $1, 114354; SIMD128-NEXT:    i32.const $push85=, 74355; SIMD128-NEXT:    i32.and $push57=, $pop56, $pop854356; SIMD128-NEXT:    i32.shr_u $push59=, $pop58, $pop574357; SIMD128-NEXT:    i8x16.replace_lane $push60=, $pop55, 11, $pop594358; SIMD128-NEXT:    i8x16.extract_lane_u $push63=, $0, 124359; SIMD128-NEXT:    i8x16.extract_lane_u $push61=, $1, 124360; SIMD128-NEXT:    i32.const $push84=, 74361; SIMD128-NEXT:    i32.and $push62=, $pop61, $pop844362; SIMD128-NEXT:    i32.shr_u $push64=, $pop63, $pop624363; SIMD128-NEXT:    i8x16.replace_lane $push65=, $pop60, 12, $pop644364; SIMD128-NEXT:    i8x16.extract_lane_u $push68=, $0, 134365; SIMD128-NEXT:    i8x16.extract_lane_u $push66=, $1, 134366; SIMD128-NEXT:    i32.const $push83=, 74367; SIMD128-NEXT:    i32.and $push67=, $pop66, $pop834368; SIMD128-NEXT:    i32.shr_u $push69=, $pop68, $pop674369; SIMD128-NEXT:    i8x16.replace_lane $push70=, $pop65, 13, $pop694370; SIMD128-NEXT:    i8x16.extract_lane_u $push73=, $0, 144371; SIMD128-NEXT:    i8x16.extract_lane_u $push71=, $1, 144372; SIMD128-NEXT:    i32.const $push82=, 74373; SIMD128-NEXT:    i32.and $push72=, $pop71, $pop824374; SIMD128-NEXT:    i32.shr_u $push74=, $pop73, $pop724375; SIMD128-NEXT:    i8x16.replace_lane $push75=, $pop70, 14, $pop744376; SIMD128-NEXT:    i8x16.extract_lane_u $push78=, $0, 154377; SIMD128-NEXT:    i8x16.extract_lane_u $push76=, $1, 154378; SIMD128-NEXT:    i32.const $push81=, 74379; SIMD128-NEXT:    i32.and $push77=, $pop76, $pop814380; SIMD128-NEXT:    i32.shr_u $push79=, $pop78, $pop774381; SIMD128-NEXT:    i8x16.replace_lane $push80=, $pop75, 15, $pop794382; SIMD128-NEXT:    return $pop804383;4384; SIMD128-FAST-LABEL: shr_u_vec_v16i8:4385; SIMD128-FAST:         .functype shr_u_vec_v16i8 (v128, v128) -> (v128)4386; SIMD128-FAST-NEXT:  # %bb.0:4387; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push8=, $0, 04388; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push6=, $1, 04389; SIMD128-FAST-NEXT:    i32.const $push2=, 74390; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop24391; SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop74392; SIMD128-FAST-NEXT:    i8x16.splat $push10=, $pop94393; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push4=, $0, 14394; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push1=, $1, 14395; SIMD128-FAST-NEXT:    i32.const $push95=, 74396; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop954397; SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop34398; SIMD128-FAST-NEXT:    i8x16.replace_lane $push11=, $pop10, 1, $pop54399; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push14=, $0, 24400; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push12=, $1, 24401; SIMD128-FAST-NEXT:    i32.const $push94=, 74402; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop944403; SIMD128-FAST-NEXT:    i32.shr_u $push15=, $pop14, $pop134404; SIMD128-FAST-NEXT:    i8x16.replace_lane $push16=, $pop11, 2, $pop154405; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push19=, $0, 34406; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push17=, $1, 34407; SIMD128-FAST-NEXT:    i32.const $push93=, 74408; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop934409; SIMD128-FAST-NEXT:    i32.shr_u $push20=, $pop19, $pop184410; SIMD128-FAST-NEXT:    i8x16.replace_lane $push21=, $pop16, 3, $pop204411; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push24=, $0, 44412; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push22=, $1, 44413; SIMD128-FAST-NEXT:    i32.const $push92=, 74414; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop924415; SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop234416; SIMD128-FAST-NEXT:    i8x16.replace_lane $push26=, $pop21, 4, $pop254417; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push29=, $0, 54418; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push27=, $1, 54419; SIMD128-FAST-NEXT:    i32.const $push91=, 74420; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop914421; SIMD128-FAST-NEXT:    i32.shr_u $push30=, $pop29, $pop284422; SIMD128-FAST-NEXT:    i8x16.replace_lane $push31=, $pop26, 5, $pop304423; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push34=, $0, 64424; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push32=, $1, 64425; SIMD128-FAST-NEXT:    i32.const $push90=, 74426; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop904427; SIMD128-FAST-NEXT:    i32.shr_u $push35=, $pop34, $pop334428; SIMD128-FAST-NEXT:    i8x16.replace_lane $push36=, $pop31, 6, $pop354429; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push39=, $0, 74430; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push37=, $1, 74431; SIMD128-FAST-NEXT:    i32.const $push89=, 74432; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop894433; SIMD128-FAST-NEXT:    i32.shr_u $push40=, $pop39, $pop384434; SIMD128-FAST-NEXT:    i8x16.replace_lane $push41=, $pop36, 7, $pop404435; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push44=, $0, 84436; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push42=, $1, 84437; SIMD128-FAST-NEXT:    i32.const $push88=, 74438; SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $pop884439; SIMD128-FAST-NEXT:    i32.shr_u $push45=, $pop44, $pop434440; SIMD128-FAST-NEXT:    i8x16.replace_lane $push46=, $pop41, 8, $pop454441; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push49=, $0, 94442; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push47=, $1, 94443; SIMD128-FAST-NEXT:    i32.const $push87=, 74444; SIMD128-FAST-NEXT:    i32.and $push48=, $pop47, $pop874445; SIMD128-FAST-NEXT:    i32.shr_u $push50=, $pop49, $pop484446; SIMD128-FAST-NEXT:    i8x16.replace_lane $push51=, $pop46, 9, $pop504447; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push54=, $0, 104448; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push52=, $1, 104449; SIMD128-FAST-NEXT:    i32.const $push86=, 74450; SIMD128-FAST-NEXT:    i32.and $push53=, $pop52, $pop864451; SIMD128-FAST-NEXT:    i32.shr_u $push55=, $pop54, $pop534452; SIMD128-FAST-NEXT:    i8x16.replace_lane $push56=, $pop51, 10, $pop554453; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push59=, $0, 114454; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push57=, $1, 114455; SIMD128-FAST-NEXT:    i32.const $push85=, 74456; SIMD128-FAST-NEXT:    i32.and $push58=, $pop57, $pop854457; SIMD128-FAST-NEXT:    i32.shr_u $push60=, $pop59, $pop584458; SIMD128-FAST-NEXT:    i8x16.replace_lane $push61=, $pop56, 11, $pop604459; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push64=, $0, 124460; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push62=, $1, 124461; SIMD128-FAST-NEXT:    i32.const $push84=, 74462; SIMD128-FAST-NEXT:    i32.and $push63=, $pop62, $pop844463; SIMD128-FAST-NEXT:    i32.shr_u $push65=, $pop64, $pop634464; SIMD128-FAST-NEXT:    i8x16.replace_lane $push66=, $pop61, 12, $pop654465; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push69=, $0, 134466; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push67=, $1, 134467; SIMD128-FAST-NEXT:    i32.const $push83=, 74468; SIMD128-FAST-NEXT:    i32.and $push68=, $pop67, $pop834469; SIMD128-FAST-NEXT:    i32.shr_u $push70=, $pop69, $pop684470; SIMD128-FAST-NEXT:    i8x16.replace_lane $push71=, $pop66, 13, $pop704471; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push74=, $0, 144472; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push72=, $1, 144473; SIMD128-FAST-NEXT:    i32.const $push82=, 74474; SIMD128-FAST-NEXT:    i32.and $push73=, $pop72, $pop824475; SIMD128-FAST-NEXT:    i32.shr_u $push75=, $pop74, $pop734476; SIMD128-FAST-NEXT:    i8x16.replace_lane $push76=, $pop71, 14, $pop754477; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push79=, $0, 154478; SIMD128-FAST-NEXT:    i8x16.extract_lane_u $push77=, $1, 154479; SIMD128-FAST-NEXT:    i32.const $push81=, 74480; SIMD128-FAST-NEXT:    i32.and $push78=, $pop77, $pop814481; SIMD128-FAST-NEXT:    i32.shr_u $push80=, $pop79, $pop784482; SIMD128-FAST-NEXT:    i8x16.replace_lane $push0=, $pop76, 15, $pop804483; SIMD128-FAST-NEXT:    return $pop04484;4485; NO-SIMD128-LABEL: shr_u_vec_v16i8:4486; NO-SIMD128:         .functype shr_u_vec_v16i8 (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) -> ()4487; NO-SIMD128-NEXT:  # %bb.0:4488; NO-SIMD128-NEXT:    i32.const $push0=, 2554489; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop04490; NO-SIMD128-NEXT:    i32.const $push79=, 2554491; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop794492; NO-SIMD128-NEXT:    i32.shr_u $push3=, $pop2, $pop14493; NO-SIMD128-NEXT:    i32.store8 15($0), $pop34494; NO-SIMD128-NEXT:    i32.const $push78=, 2554495; NO-SIMD128-NEXT:    i32.and $push5=, $15, $pop784496; NO-SIMD128-NEXT:    i32.const $push77=, 2554497; NO-SIMD128-NEXT:    i32.and $push4=, $31, $pop774498; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $pop44499; NO-SIMD128-NEXT:    i32.store8 14($0), $pop64500; NO-SIMD128-NEXT:    i32.const $push76=, 2554501; NO-SIMD128-NEXT:    i32.and $push8=, $14, $pop764502; NO-SIMD128-NEXT:    i32.const $push75=, 2554503; NO-SIMD128-NEXT:    i32.and $push7=, $30, $pop754504; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop74505; NO-SIMD128-NEXT:    i32.store8 13($0), $pop94506; NO-SIMD128-NEXT:    i32.const $push74=, 2554507; NO-SIMD128-NEXT:    i32.and $push11=, $13, $pop744508; NO-SIMD128-NEXT:    i32.const $push73=, 2554509; NO-SIMD128-NEXT:    i32.and $push10=, $29, $pop734510; NO-SIMD128-NEXT:    i32.shr_u $push12=, $pop11, $pop104511; NO-SIMD128-NEXT:    i32.store8 12($0), $pop124512; NO-SIMD128-NEXT:    i32.const $push72=, 2554513; NO-SIMD128-NEXT:    i32.and $push14=, $12, $pop724514; NO-SIMD128-NEXT:    i32.const $push71=, 2554515; NO-SIMD128-NEXT:    i32.and $push13=, $28, $pop714516; NO-SIMD128-NEXT:    i32.shr_u $push15=, $pop14, $pop134517; NO-SIMD128-NEXT:    i32.store8 11($0), $pop154518; NO-SIMD128-NEXT:    i32.const $push70=, 2554519; NO-SIMD128-NEXT:    i32.and $push17=, $11, $pop704520; NO-SIMD128-NEXT:    i32.const $push69=, 2554521; NO-SIMD128-NEXT:    i32.and $push16=, $27, $pop694522; NO-SIMD128-NEXT:    i32.shr_u $push18=, $pop17, $pop164523; NO-SIMD128-NEXT:    i32.store8 10($0), $pop184524; NO-SIMD128-NEXT:    i32.const $push68=, 2554525; NO-SIMD128-NEXT:    i32.and $push20=, $10, $pop684526; NO-SIMD128-NEXT:    i32.const $push67=, 2554527; NO-SIMD128-NEXT:    i32.and $push19=, $26, $pop674528; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop194529; NO-SIMD128-NEXT:    i32.store8 9($0), $pop214530; NO-SIMD128-NEXT:    i32.const $push66=, 2554531; NO-SIMD128-NEXT:    i32.and $push23=, $9, $pop664532; NO-SIMD128-NEXT:    i32.const $push65=, 2554533; NO-SIMD128-NEXT:    i32.and $push22=, $25, $pop654534; NO-SIMD128-NEXT:    i32.shr_u $push24=, $pop23, $pop224535; NO-SIMD128-NEXT:    i32.store8 8($0), $pop244536; NO-SIMD128-NEXT:    i32.const $push64=, 2554537; NO-SIMD128-NEXT:    i32.and $push26=, $8, $pop644538; NO-SIMD128-NEXT:    i32.const $push63=, 2554539; NO-SIMD128-NEXT:    i32.and $push25=, $24, $pop634540; NO-SIMD128-NEXT:    i32.shr_u $push27=, $pop26, $pop254541; NO-SIMD128-NEXT:    i32.store8 7($0), $pop274542; NO-SIMD128-NEXT:    i32.const $push62=, 2554543; NO-SIMD128-NEXT:    i32.and $push29=, $7, $pop624544; NO-SIMD128-NEXT:    i32.const $push61=, 2554545; NO-SIMD128-NEXT:    i32.and $push28=, $23, $pop614546; NO-SIMD128-NEXT:    i32.shr_u $push30=, $pop29, $pop284547; NO-SIMD128-NEXT:    i32.store8 6($0), $pop304548; NO-SIMD128-NEXT:    i32.const $push60=, 2554549; NO-SIMD128-NEXT:    i32.and $push32=, $6, $pop604550; NO-SIMD128-NEXT:    i32.const $push59=, 2554551; NO-SIMD128-NEXT:    i32.and $push31=, $22, $pop594552; NO-SIMD128-NEXT:    i32.shr_u $push33=, $pop32, $pop314553; NO-SIMD128-NEXT:    i32.store8 5($0), $pop334554; NO-SIMD128-NEXT:    i32.const $push58=, 2554555; NO-SIMD128-NEXT:    i32.and $push35=, $5, $pop584556; NO-SIMD128-NEXT:    i32.const $push57=, 2554557; NO-SIMD128-NEXT:    i32.and $push34=, $21, $pop574558; NO-SIMD128-NEXT:    i32.shr_u $push36=, $pop35, $pop344559; NO-SIMD128-NEXT:    i32.store8 4($0), $pop364560; NO-SIMD128-NEXT:    i32.const $push56=, 2554561; NO-SIMD128-NEXT:    i32.and $push38=, $4, $pop564562; NO-SIMD128-NEXT:    i32.const $push55=, 2554563; NO-SIMD128-NEXT:    i32.and $push37=, $20, $pop554564; NO-SIMD128-NEXT:    i32.shr_u $push39=, $pop38, $pop374565; NO-SIMD128-NEXT:    i32.store8 3($0), $pop394566; NO-SIMD128-NEXT:    i32.const $push54=, 2554567; NO-SIMD128-NEXT:    i32.and $push41=, $3, $pop544568; NO-SIMD128-NEXT:    i32.const $push53=, 2554569; NO-SIMD128-NEXT:    i32.and $push40=, $19, $pop534570; NO-SIMD128-NEXT:    i32.shr_u $push42=, $pop41, $pop404571; NO-SIMD128-NEXT:    i32.store8 2($0), $pop424572; NO-SIMD128-NEXT:    i32.const $push52=, 2554573; NO-SIMD128-NEXT:    i32.and $push44=, $2, $pop524574; NO-SIMD128-NEXT:    i32.const $push51=, 2554575; NO-SIMD128-NEXT:    i32.and $push43=, $18, $pop514576; NO-SIMD128-NEXT:    i32.shr_u $push45=, $pop44, $pop434577; NO-SIMD128-NEXT:    i32.store8 1($0), $pop454578; NO-SIMD128-NEXT:    i32.const $push50=, 2554579; NO-SIMD128-NEXT:    i32.and $push47=, $1, $pop504580; NO-SIMD128-NEXT:    i32.const $push49=, 2554581; NO-SIMD128-NEXT:    i32.and $push46=, $17, $pop494582; NO-SIMD128-NEXT:    i32.shr_u $push48=, $pop47, $pop464583; NO-SIMD128-NEXT:    i32.store8 0($0), $pop484584; NO-SIMD128-NEXT:    return4585;4586; NO-SIMD128-FAST-LABEL: shr_u_vec_v16i8:4587; NO-SIMD128-FAST:         .functype shr_u_vec_v16i8 (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) -> ()4588; NO-SIMD128-FAST-NEXT:  # %bb.0:4589; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2554590; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop04591; NO-SIMD128-FAST-NEXT:    i32.const $push79=, 2554592; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop794593; NO-SIMD128-FAST-NEXT:    i32.shr_u $push3=, $pop2, $pop14594; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop34595; NO-SIMD128-FAST-NEXT:    i32.const $push78=, 2554596; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $2, $pop784597; NO-SIMD128-FAST-NEXT:    i32.const $push77=, 2554598; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $18, $pop774599; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop44600; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop64601; NO-SIMD128-FAST-NEXT:    i32.const $push76=, 2554602; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $3, $pop764603; NO-SIMD128-FAST-NEXT:    i32.const $push75=, 2554604; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $19, $pop754605; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop74606; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop94607; NO-SIMD128-FAST-NEXT:    i32.const $push74=, 2554608; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $4, $pop744609; NO-SIMD128-FAST-NEXT:    i32.const $push73=, 2554610; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $20, $pop734611; NO-SIMD128-FAST-NEXT:    i32.shr_u $push12=, $pop11, $pop104612; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop124613; NO-SIMD128-FAST-NEXT:    i32.const $push72=, 2554614; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $5, $pop724615; NO-SIMD128-FAST-NEXT:    i32.const $push71=, 2554616; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $21, $pop714617; NO-SIMD128-FAST-NEXT:    i32.shr_u $push15=, $pop14, $pop134618; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop154619; NO-SIMD128-FAST-NEXT:    i32.const $push70=, 2554620; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $6, $pop704621; NO-SIMD128-FAST-NEXT:    i32.const $push69=, 2554622; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $22, $pop694623; NO-SIMD128-FAST-NEXT:    i32.shr_u $push18=, $pop17, $pop164624; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop184625; NO-SIMD128-FAST-NEXT:    i32.const $push68=, 2554626; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $7, $pop684627; NO-SIMD128-FAST-NEXT:    i32.const $push67=, 2554628; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $23, $pop674629; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop194630; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop214631; NO-SIMD128-FAST-NEXT:    i32.const $push66=, 2554632; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $8, $pop664633; NO-SIMD128-FAST-NEXT:    i32.const $push65=, 2554634; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $24, $pop654635; NO-SIMD128-FAST-NEXT:    i32.shr_u $push24=, $pop23, $pop224636; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop244637; NO-SIMD128-FAST-NEXT:    i32.const $push64=, 2554638; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $9, $pop644639; NO-SIMD128-FAST-NEXT:    i32.const $push63=, 2554640; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $25, $pop634641; NO-SIMD128-FAST-NEXT:    i32.shr_u $push27=, $pop26, $pop254642; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop274643; NO-SIMD128-FAST-NEXT:    i32.const $push62=, 2554644; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $10, $pop624645; NO-SIMD128-FAST-NEXT:    i32.const $push61=, 2554646; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $26, $pop614647; NO-SIMD128-FAST-NEXT:    i32.shr_u $push30=, $pop29, $pop284648; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop304649; NO-SIMD128-FAST-NEXT:    i32.const $push60=, 2554650; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $11, $pop604651; NO-SIMD128-FAST-NEXT:    i32.const $push59=, 2554652; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $27, $pop594653; NO-SIMD128-FAST-NEXT:    i32.shr_u $push33=, $pop32, $pop314654; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop334655; NO-SIMD128-FAST-NEXT:    i32.const $push58=, 2554656; NO-SIMD128-FAST-NEXT:    i32.and $push35=, $12, $pop584657; NO-SIMD128-FAST-NEXT:    i32.const $push57=, 2554658; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $28, $pop574659; NO-SIMD128-FAST-NEXT:    i32.shr_u $push36=, $pop35, $pop344660; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop364661; NO-SIMD128-FAST-NEXT:    i32.const $push56=, 2554662; NO-SIMD128-FAST-NEXT:    i32.and $push38=, $13, $pop564663; NO-SIMD128-FAST-NEXT:    i32.const $push55=, 2554664; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $29, $pop554665; NO-SIMD128-FAST-NEXT:    i32.shr_u $push39=, $pop38, $pop374666; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop394667; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 2554668; NO-SIMD128-FAST-NEXT:    i32.and $push41=, $14, $pop544669; NO-SIMD128-FAST-NEXT:    i32.const $push53=, 2554670; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $30, $pop534671; NO-SIMD128-FAST-NEXT:    i32.shr_u $push42=, $pop41, $pop404672; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop424673; NO-SIMD128-FAST-NEXT:    i32.const $push52=, 2554674; NO-SIMD128-FAST-NEXT:    i32.and $push44=, $15, $pop524675; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 2554676; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $31, $pop514677; NO-SIMD128-FAST-NEXT:    i32.shr_u $push45=, $pop44, $pop434678; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop454679; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 2554680; NO-SIMD128-FAST-NEXT:    i32.and $push47=, $16, $pop504681; NO-SIMD128-FAST-NEXT:    i32.const $push49=, 2554682; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $32, $pop494683; NO-SIMD128-FAST-NEXT:    i32.shr_u $push48=, $pop47, $pop464684; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop484685; NO-SIMD128-FAST-NEXT:    return4686  %a = lshr <16 x i8> %v, %x4687  ret <16 x i8> %a4688}4689 4690define <16 x i8> @and_v16i8(<16 x i8> %x, <16 x i8> %y) {4691; SIMD128-LABEL: and_v16i8:4692; SIMD128:         .functype and_v16i8 (v128, v128) -> (v128)4693; SIMD128-NEXT:  # %bb.0:4694; SIMD128-NEXT:    v128.and $push0=, $0, $14695; SIMD128-NEXT:    return $pop04696;4697; SIMD128-FAST-LABEL: and_v16i8:4698; SIMD128-FAST:         .functype and_v16i8 (v128, v128) -> (v128)4699; SIMD128-FAST-NEXT:  # %bb.0:4700; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $14701; SIMD128-FAST-NEXT:    return $pop04702;4703; NO-SIMD128-LABEL: and_v16i8:4704; NO-SIMD128:         .functype and_v16i8 (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) -> ()4705; NO-SIMD128-NEXT:  # %bb.0:4706; NO-SIMD128-NEXT:    i32.and $push0=, $16, $324707; NO-SIMD128-NEXT:    i32.store8 15($0), $pop04708; NO-SIMD128-NEXT:    i32.and $push1=, $15, $314709; NO-SIMD128-NEXT:    i32.store8 14($0), $pop14710; NO-SIMD128-NEXT:    i32.and $push2=, $14, $304711; NO-SIMD128-NEXT:    i32.store8 13($0), $pop24712; NO-SIMD128-NEXT:    i32.and $push3=, $13, $294713; NO-SIMD128-NEXT:    i32.store8 12($0), $pop34714; NO-SIMD128-NEXT:    i32.and $push4=, $12, $284715; NO-SIMD128-NEXT:    i32.store8 11($0), $pop44716; NO-SIMD128-NEXT:    i32.and $push5=, $11, $274717; NO-SIMD128-NEXT:    i32.store8 10($0), $pop54718; NO-SIMD128-NEXT:    i32.and $push6=, $10, $264719; NO-SIMD128-NEXT:    i32.store8 9($0), $pop64720; NO-SIMD128-NEXT:    i32.and $push7=, $9, $254721; NO-SIMD128-NEXT:    i32.store8 8($0), $pop74722; NO-SIMD128-NEXT:    i32.and $push8=, $8, $244723; NO-SIMD128-NEXT:    i32.store8 7($0), $pop84724; NO-SIMD128-NEXT:    i32.and $push9=, $7, $234725; NO-SIMD128-NEXT:    i32.store8 6($0), $pop94726; NO-SIMD128-NEXT:    i32.and $push10=, $6, $224727; NO-SIMD128-NEXT:    i32.store8 5($0), $pop104728; NO-SIMD128-NEXT:    i32.and $push11=, $5, $214729; NO-SIMD128-NEXT:    i32.store8 4($0), $pop114730; NO-SIMD128-NEXT:    i32.and $push12=, $4, $204731; NO-SIMD128-NEXT:    i32.store8 3($0), $pop124732; NO-SIMD128-NEXT:    i32.and $push13=, $3, $194733; NO-SIMD128-NEXT:    i32.store8 2($0), $pop134734; NO-SIMD128-NEXT:    i32.and $push14=, $2, $184735; NO-SIMD128-NEXT:    i32.store8 1($0), $pop144736; NO-SIMD128-NEXT:    i32.and $push15=, $1, $174737; NO-SIMD128-NEXT:    i32.store8 0($0), $pop154738; NO-SIMD128-NEXT:    return4739;4740; NO-SIMD128-FAST-LABEL: and_v16i8:4741; NO-SIMD128-FAST:         .functype and_v16i8 (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) -> ()4742; NO-SIMD128-FAST-NEXT:  # %bb.0:4743; NO-SIMD128-FAST-NEXT:    i32.and $push0=, $1, $174744; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop04745; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $2, $184746; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop14747; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $3, $194748; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop24749; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $4, $204750; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop34751; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $5, $214752; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop44753; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $6, $224754; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop54755; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $7, $234756; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop64757; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $8, $244758; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop74759; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $9, $254760; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop84761; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $10, $264762; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop94763; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $11, $274764; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop104765; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $12, $284766; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop114767; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $13, $294768; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop124769; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $14, $304770; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop134771; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $15, $314772; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop144773; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $16, $324774; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop154775; NO-SIMD128-FAST-NEXT:    return4776  %a = and <16 x i8> %x, %y4777  ret <16 x i8> %a4778}4779 4780define <16 x i8> @or_v16i8(<16 x i8> %x, <16 x i8> %y) {4781; SIMD128-LABEL: or_v16i8:4782; SIMD128:         .functype or_v16i8 (v128, v128) -> (v128)4783; SIMD128-NEXT:  # %bb.0:4784; SIMD128-NEXT:    v128.or $push0=, $0, $14785; SIMD128-NEXT:    return $pop04786;4787; SIMD128-FAST-LABEL: or_v16i8:4788; SIMD128-FAST:         .functype or_v16i8 (v128, v128) -> (v128)4789; SIMD128-FAST-NEXT:  # %bb.0:4790; SIMD128-FAST-NEXT:    v128.or $push0=, $0, $14791; SIMD128-FAST-NEXT:    return $pop04792;4793; NO-SIMD128-LABEL: or_v16i8:4794; NO-SIMD128:         .functype or_v16i8 (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) -> ()4795; NO-SIMD128-NEXT:  # %bb.0:4796; NO-SIMD128-NEXT:    i32.or $push0=, $16, $324797; NO-SIMD128-NEXT:    i32.store8 15($0), $pop04798; NO-SIMD128-NEXT:    i32.or $push1=, $15, $314799; NO-SIMD128-NEXT:    i32.store8 14($0), $pop14800; NO-SIMD128-NEXT:    i32.or $push2=, $14, $304801; NO-SIMD128-NEXT:    i32.store8 13($0), $pop24802; NO-SIMD128-NEXT:    i32.or $push3=, $13, $294803; NO-SIMD128-NEXT:    i32.store8 12($0), $pop34804; NO-SIMD128-NEXT:    i32.or $push4=, $12, $284805; NO-SIMD128-NEXT:    i32.store8 11($0), $pop44806; NO-SIMD128-NEXT:    i32.or $push5=, $11, $274807; NO-SIMD128-NEXT:    i32.store8 10($0), $pop54808; NO-SIMD128-NEXT:    i32.or $push6=, $10, $264809; NO-SIMD128-NEXT:    i32.store8 9($0), $pop64810; NO-SIMD128-NEXT:    i32.or $push7=, $9, $254811; NO-SIMD128-NEXT:    i32.store8 8($0), $pop74812; NO-SIMD128-NEXT:    i32.or $push8=, $8, $244813; NO-SIMD128-NEXT:    i32.store8 7($0), $pop84814; NO-SIMD128-NEXT:    i32.or $push9=, $7, $234815; NO-SIMD128-NEXT:    i32.store8 6($0), $pop94816; NO-SIMD128-NEXT:    i32.or $push10=, $6, $224817; NO-SIMD128-NEXT:    i32.store8 5($0), $pop104818; NO-SIMD128-NEXT:    i32.or $push11=, $5, $214819; NO-SIMD128-NEXT:    i32.store8 4($0), $pop114820; NO-SIMD128-NEXT:    i32.or $push12=, $4, $204821; NO-SIMD128-NEXT:    i32.store8 3($0), $pop124822; NO-SIMD128-NEXT:    i32.or $push13=, $3, $194823; NO-SIMD128-NEXT:    i32.store8 2($0), $pop134824; NO-SIMD128-NEXT:    i32.or $push14=, $2, $184825; NO-SIMD128-NEXT:    i32.store8 1($0), $pop144826; NO-SIMD128-NEXT:    i32.or $push15=, $1, $174827; NO-SIMD128-NEXT:    i32.store8 0($0), $pop154828; NO-SIMD128-NEXT:    return4829;4830; NO-SIMD128-FAST-LABEL: or_v16i8:4831; NO-SIMD128-FAST:         .functype or_v16i8 (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) -> ()4832; NO-SIMD128-FAST-NEXT:  # %bb.0:4833; NO-SIMD128-FAST-NEXT:    i32.or $push0=, $1, $174834; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop04835; NO-SIMD128-FAST-NEXT:    i32.or $push1=, $2, $184836; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop14837; NO-SIMD128-FAST-NEXT:    i32.or $push2=, $3, $194838; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop24839; NO-SIMD128-FAST-NEXT:    i32.or $push3=, $4, $204840; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop34841; NO-SIMD128-FAST-NEXT:    i32.or $push4=, $5, $214842; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop44843; NO-SIMD128-FAST-NEXT:    i32.or $push5=, $6, $224844; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop54845; NO-SIMD128-FAST-NEXT:    i32.or $push6=, $7, $234846; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop64847; NO-SIMD128-FAST-NEXT:    i32.or $push7=, $8, $244848; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop74849; NO-SIMD128-FAST-NEXT:    i32.or $push8=, $9, $254850; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop84851; NO-SIMD128-FAST-NEXT:    i32.or $push9=, $10, $264852; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop94853; NO-SIMD128-FAST-NEXT:    i32.or $push10=, $11, $274854; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop104855; NO-SIMD128-FAST-NEXT:    i32.or $push11=, $12, $284856; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop114857; NO-SIMD128-FAST-NEXT:    i32.or $push12=, $13, $294858; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop124859; NO-SIMD128-FAST-NEXT:    i32.or $push13=, $14, $304860; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop134861; NO-SIMD128-FAST-NEXT:    i32.or $push14=, $15, $314862; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop144863; NO-SIMD128-FAST-NEXT:    i32.or $push15=, $16, $324864; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop154865; NO-SIMD128-FAST-NEXT:    return4866  %a = or <16 x i8> %x, %y4867  ret <16 x i8> %a4868}4869 4870define <16 x i8> @xor_v16i8(<16 x i8> %x, <16 x i8> %y) {4871; SIMD128-LABEL: xor_v16i8:4872; SIMD128:         .functype xor_v16i8 (v128, v128) -> (v128)4873; SIMD128-NEXT:  # %bb.0:4874; SIMD128-NEXT:    v128.xor $push0=, $0, $14875; SIMD128-NEXT:    return $pop04876;4877; SIMD128-FAST-LABEL: xor_v16i8:4878; SIMD128-FAST:         .functype xor_v16i8 (v128, v128) -> (v128)4879; SIMD128-FAST-NEXT:  # %bb.0:4880; SIMD128-FAST-NEXT:    v128.xor $push0=, $0, $14881; SIMD128-FAST-NEXT:    return $pop04882;4883; NO-SIMD128-LABEL: xor_v16i8:4884; NO-SIMD128:         .functype xor_v16i8 (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) -> ()4885; NO-SIMD128-NEXT:  # %bb.0:4886; NO-SIMD128-NEXT:    i32.xor $push0=, $16, $324887; NO-SIMD128-NEXT:    i32.store8 15($0), $pop04888; NO-SIMD128-NEXT:    i32.xor $push1=, $15, $314889; NO-SIMD128-NEXT:    i32.store8 14($0), $pop14890; NO-SIMD128-NEXT:    i32.xor $push2=, $14, $304891; NO-SIMD128-NEXT:    i32.store8 13($0), $pop24892; NO-SIMD128-NEXT:    i32.xor $push3=, $13, $294893; NO-SIMD128-NEXT:    i32.store8 12($0), $pop34894; NO-SIMD128-NEXT:    i32.xor $push4=, $12, $284895; NO-SIMD128-NEXT:    i32.store8 11($0), $pop44896; NO-SIMD128-NEXT:    i32.xor $push5=, $11, $274897; NO-SIMD128-NEXT:    i32.store8 10($0), $pop54898; NO-SIMD128-NEXT:    i32.xor $push6=, $10, $264899; NO-SIMD128-NEXT:    i32.store8 9($0), $pop64900; NO-SIMD128-NEXT:    i32.xor $push7=, $9, $254901; NO-SIMD128-NEXT:    i32.store8 8($0), $pop74902; NO-SIMD128-NEXT:    i32.xor $push8=, $8, $244903; NO-SIMD128-NEXT:    i32.store8 7($0), $pop84904; NO-SIMD128-NEXT:    i32.xor $push9=, $7, $234905; NO-SIMD128-NEXT:    i32.store8 6($0), $pop94906; NO-SIMD128-NEXT:    i32.xor $push10=, $6, $224907; NO-SIMD128-NEXT:    i32.store8 5($0), $pop104908; NO-SIMD128-NEXT:    i32.xor $push11=, $5, $214909; NO-SIMD128-NEXT:    i32.store8 4($0), $pop114910; NO-SIMD128-NEXT:    i32.xor $push12=, $4, $204911; NO-SIMD128-NEXT:    i32.store8 3($0), $pop124912; NO-SIMD128-NEXT:    i32.xor $push13=, $3, $194913; NO-SIMD128-NEXT:    i32.store8 2($0), $pop134914; NO-SIMD128-NEXT:    i32.xor $push14=, $2, $184915; NO-SIMD128-NEXT:    i32.store8 1($0), $pop144916; NO-SIMD128-NEXT:    i32.xor $push15=, $1, $174917; NO-SIMD128-NEXT:    i32.store8 0($0), $pop154918; NO-SIMD128-NEXT:    return4919;4920; NO-SIMD128-FAST-LABEL: xor_v16i8:4921; NO-SIMD128-FAST:         .functype xor_v16i8 (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) -> ()4922; NO-SIMD128-FAST-NEXT:  # %bb.0:4923; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $1, $174924; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop04925; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $2, $184926; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop14927; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $3, $194928; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop24929; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $4, $204930; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop34931; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $5, $214932; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop44933; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $6, $224934; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop54935; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $7, $234936; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop64937; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $8, $244938; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop74939; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $9, $254940; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop84941; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $10, $264942; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop94943; NO-SIMD128-FAST-NEXT:    i32.xor $push10=, $11, $274944; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop104945; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $12, $284946; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop114947; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $13, $294948; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop124949; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $14, $304950; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop134951; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $15, $314952; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop144953; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $16, $324954; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop154955; NO-SIMD128-FAST-NEXT:    return4956  %a = xor <16 x i8> %x, %y4957  ret <16 x i8> %a4958}4959 4960define <16 x i8> @not_v16i8(<16 x i8> %x) {4961; SIMD128-LABEL: not_v16i8:4962; SIMD128:         .functype not_v16i8 (v128) -> (v128)4963; SIMD128-NEXT:  # %bb.0:4964; SIMD128-NEXT:    v128.not $push0=, $04965; SIMD128-NEXT:    return $pop04966;4967; SIMD128-FAST-LABEL: not_v16i8:4968; SIMD128-FAST:         .functype not_v16i8 (v128) -> (v128)4969; SIMD128-FAST-NEXT:  # %bb.0:4970; SIMD128-FAST-NEXT:    v128.not $push0=, $04971; SIMD128-FAST-NEXT:    return $pop04972;4973; NO-SIMD128-LABEL: not_v16i8:4974; NO-SIMD128:         .functype not_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()4975; NO-SIMD128-NEXT:  # %bb.0:4976; NO-SIMD128-NEXT:    i32.const $push0=, -14977; NO-SIMD128-NEXT:    i32.xor $push1=, $16, $pop04978; NO-SIMD128-NEXT:    i32.store8 15($0), $pop14979; NO-SIMD128-NEXT:    i32.const $push31=, -14980; NO-SIMD128-NEXT:    i32.xor $push2=, $15, $pop314981; NO-SIMD128-NEXT:    i32.store8 14($0), $pop24982; NO-SIMD128-NEXT:    i32.const $push30=, -14983; NO-SIMD128-NEXT:    i32.xor $push3=, $14, $pop304984; NO-SIMD128-NEXT:    i32.store8 13($0), $pop34985; NO-SIMD128-NEXT:    i32.const $push29=, -14986; NO-SIMD128-NEXT:    i32.xor $push4=, $13, $pop294987; NO-SIMD128-NEXT:    i32.store8 12($0), $pop44988; NO-SIMD128-NEXT:    i32.const $push28=, -14989; NO-SIMD128-NEXT:    i32.xor $push5=, $12, $pop284990; NO-SIMD128-NEXT:    i32.store8 11($0), $pop54991; NO-SIMD128-NEXT:    i32.const $push27=, -14992; NO-SIMD128-NEXT:    i32.xor $push6=, $11, $pop274993; NO-SIMD128-NEXT:    i32.store8 10($0), $pop64994; NO-SIMD128-NEXT:    i32.const $push26=, -14995; NO-SIMD128-NEXT:    i32.xor $push7=, $10, $pop264996; NO-SIMD128-NEXT:    i32.store8 9($0), $pop74997; NO-SIMD128-NEXT:    i32.const $push25=, -14998; NO-SIMD128-NEXT:    i32.xor $push8=, $9, $pop254999; NO-SIMD128-NEXT:    i32.store8 8($0), $pop85000; NO-SIMD128-NEXT:    i32.const $push24=, -15001; NO-SIMD128-NEXT:    i32.xor $push9=, $8, $pop245002; NO-SIMD128-NEXT:    i32.store8 7($0), $pop95003; NO-SIMD128-NEXT:    i32.const $push23=, -15004; NO-SIMD128-NEXT:    i32.xor $push10=, $7, $pop235005; NO-SIMD128-NEXT:    i32.store8 6($0), $pop105006; NO-SIMD128-NEXT:    i32.const $push22=, -15007; NO-SIMD128-NEXT:    i32.xor $push11=, $6, $pop225008; NO-SIMD128-NEXT:    i32.store8 5($0), $pop115009; NO-SIMD128-NEXT:    i32.const $push21=, -15010; NO-SIMD128-NEXT:    i32.xor $push12=, $5, $pop215011; NO-SIMD128-NEXT:    i32.store8 4($0), $pop125012; NO-SIMD128-NEXT:    i32.const $push20=, -15013; NO-SIMD128-NEXT:    i32.xor $push13=, $4, $pop205014; NO-SIMD128-NEXT:    i32.store8 3($0), $pop135015; NO-SIMD128-NEXT:    i32.const $push19=, -15016; NO-SIMD128-NEXT:    i32.xor $push14=, $3, $pop195017; NO-SIMD128-NEXT:    i32.store8 2($0), $pop145018; NO-SIMD128-NEXT:    i32.const $push18=, -15019; NO-SIMD128-NEXT:    i32.xor $push15=, $2, $pop185020; NO-SIMD128-NEXT:    i32.store8 1($0), $pop155021; NO-SIMD128-NEXT:    i32.const $push17=, -15022; NO-SIMD128-NEXT:    i32.xor $push16=, $1, $pop175023; NO-SIMD128-NEXT:    i32.store8 0($0), $pop165024; NO-SIMD128-NEXT:    return5025;5026; NO-SIMD128-FAST-LABEL: not_v16i8:5027; NO-SIMD128-FAST:         .functype not_v16i8 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5028; NO-SIMD128-FAST-NEXT:  # %bb.0:5029; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -15030; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop05031; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop15032; NO-SIMD128-FAST-NEXT:    i32.const $push31=, -15033; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $2, $pop315034; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop25035; NO-SIMD128-FAST-NEXT:    i32.const $push30=, -15036; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $3, $pop305037; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop35038; NO-SIMD128-FAST-NEXT:    i32.const $push29=, -15039; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $4, $pop295040; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop45041; NO-SIMD128-FAST-NEXT:    i32.const $push28=, -15042; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $5, $pop285043; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop55044; NO-SIMD128-FAST-NEXT:    i32.const $push27=, -15045; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $6, $pop275046; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop65047; NO-SIMD128-FAST-NEXT:    i32.const $push26=, -15048; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $7, $pop265049; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop75050; NO-SIMD128-FAST-NEXT:    i32.const $push25=, -15051; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $8, $pop255052; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop85053; NO-SIMD128-FAST-NEXT:    i32.const $push24=, -15054; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $9, $pop245055; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop95056; NO-SIMD128-FAST-NEXT:    i32.const $push23=, -15057; NO-SIMD128-FAST-NEXT:    i32.xor $push10=, $10, $pop235058; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop105059; NO-SIMD128-FAST-NEXT:    i32.const $push22=, -15060; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $11, $pop225061; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop115062; NO-SIMD128-FAST-NEXT:    i32.const $push21=, -15063; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $12, $pop215064; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop125065; NO-SIMD128-FAST-NEXT:    i32.const $push20=, -15066; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $13, $pop205067; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop135068; NO-SIMD128-FAST-NEXT:    i32.const $push19=, -15069; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $14, $pop195070; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop145071; NO-SIMD128-FAST-NEXT:    i32.const $push18=, -15072; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $15, $pop185073; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop155074; NO-SIMD128-FAST-NEXT:    i32.const $push17=, -15075; NO-SIMD128-FAST-NEXT:    i32.xor $push16=, $16, $pop175076; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop165077; NO-SIMD128-FAST-NEXT:    return5078  %a = xor <16 x i8> %x, <i8 -1, i8 -1, i8 -1, i8 -1,5079                          i8 -1, i8 -1, i8 -1, i8 -1,5080                          i8 -1, i8 -1, i8 -1, i8 -1,5081                          i8 -1, i8 -1, i8 -1, i8 -1>5082  ret <16 x i8> %a5083}5084 5085define <16 x i8> @andnot_v16i8(<16 x i8> %x, <16 x i8> %y) {5086; SIMD128-LABEL: andnot_v16i8:5087; SIMD128:         .functype andnot_v16i8 (v128, v128) -> (v128)5088; SIMD128-NEXT:  # %bb.0:5089; SIMD128-NEXT:    v128.andnot $push0=, $0, $15090; SIMD128-NEXT:    return $pop05091;5092; SIMD128-FAST-LABEL: andnot_v16i8:5093; SIMD128-FAST:         .functype andnot_v16i8 (v128, v128) -> (v128)5094; SIMD128-FAST-NEXT:  # %bb.0:5095; SIMD128-FAST-NEXT:    v128.not $push0=, $15096; SIMD128-FAST-NEXT:    v128.and $push1=, $0, $pop05097; SIMD128-FAST-NEXT:    return $pop15098;5099; NO-SIMD128-LABEL: andnot_v16i8:5100; NO-SIMD128:         .functype andnot_v16i8 (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) -> ()5101; NO-SIMD128-NEXT:  # %bb.0:5102; NO-SIMD128-NEXT:    i32.const $push0=, -15103; NO-SIMD128-NEXT:    i32.xor $push1=, $32, $pop05104; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop15105; NO-SIMD128-NEXT:    i32.store8 15($0), $pop25106; NO-SIMD128-NEXT:    i32.const $push47=, -15107; NO-SIMD128-NEXT:    i32.xor $push3=, $31, $pop475108; NO-SIMD128-NEXT:    i32.and $push4=, $15, $pop35109; NO-SIMD128-NEXT:    i32.store8 14($0), $pop45110; NO-SIMD128-NEXT:    i32.const $push46=, -15111; NO-SIMD128-NEXT:    i32.xor $push5=, $30, $pop465112; NO-SIMD128-NEXT:    i32.and $push6=, $14, $pop55113; NO-SIMD128-NEXT:    i32.store8 13($0), $pop65114; NO-SIMD128-NEXT:    i32.const $push45=, -15115; NO-SIMD128-NEXT:    i32.xor $push7=, $29, $pop455116; NO-SIMD128-NEXT:    i32.and $push8=, $13, $pop75117; NO-SIMD128-NEXT:    i32.store8 12($0), $pop85118; NO-SIMD128-NEXT:    i32.const $push44=, -15119; NO-SIMD128-NEXT:    i32.xor $push9=, $28, $pop445120; NO-SIMD128-NEXT:    i32.and $push10=, $12, $pop95121; NO-SIMD128-NEXT:    i32.store8 11($0), $pop105122; NO-SIMD128-NEXT:    i32.const $push43=, -15123; NO-SIMD128-NEXT:    i32.xor $push11=, $27, $pop435124; NO-SIMD128-NEXT:    i32.and $push12=, $11, $pop115125; NO-SIMD128-NEXT:    i32.store8 10($0), $pop125126; NO-SIMD128-NEXT:    i32.const $push42=, -15127; NO-SIMD128-NEXT:    i32.xor $push13=, $26, $pop425128; NO-SIMD128-NEXT:    i32.and $push14=, $10, $pop135129; NO-SIMD128-NEXT:    i32.store8 9($0), $pop145130; NO-SIMD128-NEXT:    i32.const $push41=, -15131; NO-SIMD128-NEXT:    i32.xor $push15=, $25, $pop415132; NO-SIMD128-NEXT:    i32.and $push16=, $9, $pop155133; NO-SIMD128-NEXT:    i32.store8 8($0), $pop165134; NO-SIMD128-NEXT:    i32.const $push40=, -15135; NO-SIMD128-NEXT:    i32.xor $push17=, $24, $pop405136; NO-SIMD128-NEXT:    i32.and $push18=, $8, $pop175137; NO-SIMD128-NEXT:    i32.store8 7($0), $pop185138; NO-SIMD128-NEXT:    i32.const $push39=, -15139; NO-SIMD128-NEXT:    i32.xor $push19=, $23, $pop395140; NO-SIMD128-NEXT:    i32.and $push20=, $7, $pop195141; NO-SIMD128-NEXT:    i32.store8 6($0), $pop205142; NO-SIMD128-NEXT:    i32.const $push38=, -15143; NO-SIMD128-NEXT:    i32.xor $push21=, $22, $pop385144; NO-SIMD128-NEXT:    i32.and $push22=, $6, $pop215145; NO-SIMD128-NEXT:    i32.store8 5($0), $pop225146; NO-SIMD128-NEXT:    i32.const $push37=, -15147; NO-SIMD128-NEXT:    i32.xor $push23=, $21, $pop375148; NO-SIMD128-NEXT:    i32.and $push24=, $5, $pop235149; NO-SIMD128-NEXT:    i32.store8 4($0), $pop245150; NO-SIMD128-NEXT:    i32.const $push36=, -15151; NO-SIMD128-NEXT:    i32.xor $push25=, $20, $pop365152; NO-SIMD128-NEXT:    i32.and $push26=, $4, $pop255153; NO-SIMD128-NEXT:    i32.store8 3($0), $pop265154; NO-SIMD128-NEXT:    i32.const $push35=, -15155; NO-SIMD128-NEXT:    i32.xor $push27=, $19, $pop355156; NO-SIMD128-NEXT:    i32.and $push28=, $3, $pop275157; NO-SIMD128-NEXT:    i32.store8 2($0), $pop285158; NO-SIMD128-NEXT:    i32.const $push34=, -15159; NO-SIMD128-NEXT:    i32.xor $push29=, $18, $pop345160; NO-SIMD128-NEXT:    i32.and $push30=, $2, $pop295161; NO-SIMD128-NEXT:    i32.store8 1($0), $pop305162; NO-SIMD128-NEXT:    i32.const $push33=, -15163; NO-SIMD128-NEXT:    i32.xor $push31=, $17, $pop335164; NO-SIMD128-NEXT:    i32.and $push32=, $1, $pop315165; NO-SIMD128-NEXT:    i32.store8 0($0), $pop325166; NO-SIMD128-NEXT:    return5167;5168; NO-SIMD128-FAST-LABEL: andnot_v16i8:5169; NO-SIMD128-FAST:         .functype andnot_v16i8 (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) -> ()5170; NO-SIMD128-FAST-NEXT:  # %bb.0:5171; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -15172; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $17, $pop05173; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop15174; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop25175; NO-SIMD128-FAST-NEXT:    i32.const $push47=, -15176; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $18, $pop475177; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $2, $pop35178; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop45179; NO-SIMD128-FAST-NEXT:    i32.const $push46=, -15180; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $19, $pop465181; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $3, $pop55182; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop65183; NO-SIMD128-FAST-NEXT:    i32.const $push45=, -15184; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $20, $pop455185; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $4, $pop75186; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop85187; NO-SIMD128-FAST-NEXT:    i32.const $push44=, -15188; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $21, $pop445189; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $5, $pop95190; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop105191; NO-SIMD128-FAST-NEXT:    i32.const $push43=, -15192; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $22, $pop435193; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $6, $pop115194; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop125195; NO-SIMD128-FAST-NEXT:    i32.const $push42=, -15196; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $23, $pop425197; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $7, $pop135198; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop145199; NO-SIMD128-FAST-NEXT:    i32.const $push41=, -15200; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $24, $pop415201; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $8, $pop155202; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop165203; NO-SIMD128-FAST-NEXT:    i32.const $push40=, -15204; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $25, $pop405205; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $9, $pop175206; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop185207; NO-SIMD128-FAST-NEXT:    i32.const $push39=, -15208; NO-SIMD128-FAST-NEXT:    i32.xor $push19=, $26, $pop395209; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $10, $pop195210; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop205211; NO-SIMD128-FAST-NEXT:    i32.const $push38=, -15212; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $27, $pop385213; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $11, $pop215214; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop225215; NO-SIMD128-FAST-NEXT:    i32.const $push37=, -15216; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $28, $pop375217; NO-SIMD128-FAST-NEXT:    i32.and $push24=, $12, $pop235218; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop245219; NO-SIMD128-FAST-NEXT:    i32.const $push36=, -15220; NO-SIMD128-FAST-NEXT:    i32.xor $push25=, $29, $pop365221; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $13, $pop255222; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop265223; NO-SIMD128-FAST-NEXT:    i32.const $push35=, -15224; NO-SIMD128-FAST-NEXT:    i32.xor $push27=, $30, $pop355225; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $14, $pop275226; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop285227; NO-SIMD128-FAST-NEXT:    i32.const $push34=, -15228; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $31, $pop345229; NO-SIMD128-FAST-NEXT:    i32.and $push30=, $15, $pop295230; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop305231; NO-SIMD128-FAST-NEXT:    i32.const $push33=, -15232; NO-SIMD128-FAST-NEXT:    i32.xor $push31=, $32, $pop335233; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $16, $pop315234; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop325235; NO-SIMD128-FAST-NEXT:    return5236 %inv_y = xor <16 x i8> %y,5237   <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,5238    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>5239 %a = and <16 x i8> %x, %inv_y5240 ret <16 x i8> %a5241}5242 5243define <16 x i8> @bitselect_v16i8(<16 x i8> %c, <16 x i8> %v1, <16 x i8> %v2) {5244; SIMD128-LABEL: bitselect_v16i8:5245; SIMD128:         .functype bitselect_v16i8 (v128, v128, v128) -> (v128)5246; SIMD128-NEXT:  # %bb.0:5247; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $05248; SIMD128-NEXT:    return $pop05249;5250; SIMD128-FAST-LABEL: bitselect_v16i8:5251; SIMD128-FAST:         .functype bitselect_v16i8 (v128, v128, v128) -> (v128)5252; SIMD128-FAST-NEXT:  # %bb.0:5253; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $15254; SIMD128-FAST-NEXT:    v128.not $push2=, $05255; SIMD128-FAST-NEXT:    v128.and $push3=, $pop2, $25256; SIMD128-FAST-NEXT:    v128.or $push1=, $pop0, $pop35257; SIMD128-FAST-NEXT:    return $pop15258;5259; NO-SIMD128-LABEL: bitselect_v16i8:5260; NO-SIMD128:         .functype bitselect_v16i8 (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) -> ()5261; NO-SIMD128-NEXT:  # %bb.0:5262; NO-SIMD128-NEXT:    i32.xor $push0=, $32, $485263; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $165264; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $485265; NO-SIMD128-NEXT:    i32.store8 15($0), $pop25266; NO-SIMD128-NEXT:    i32.xor $push3=, $31, $475267; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $155268; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $475269; NO-SIMD128-NEXT:    i32.store8 14($0), $pop55270; NO-SIMD128-NEXT:    i32.xor $push6=, $30, $465271; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $145272; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $465273; NO-SIMD128-NEXT:    i32.store8 13($0), $pop85274; NO-SIMD128-NEXT:    i32.xor $push9=, $29, $455275; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $135276; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $455277; NO-SIMD128-NEXT:    i32.store8 12($0), $pop115278; NO-SIMD128-NEXT:    i32.xor $push12=, $28, $445279; NO-SIMD128-NEXT:    i32.and $push13=, $pop12, $125280; NO-SIMD128-NEXT:    i32.xor $push14=, $pop13, $445281; NO-SIMD128-NEXT:    i32.store8 11($0), $pop145282; NO-SIMD128-NEXT:    i32.xor $push15=, $27, $435283; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $115284; NO-SIMD128-NEXT:    i32.xor $push17=, $pop16, $435285; NO-SIMD128-NEXT:    i32.store8 10($0), $pop175286; NO-SIMD128-NEXT:    i32.xor $push18=, $26, $425287; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $105288; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $425289; NO-SIMD128-NEXT:    i32.store8 9($0), $pop205290; NO-SIMD128-NEXT:    i32.xor $push21=, $25, $415291; NO-SIMD128-NEXT:    i32.and $push22=, $pop21, $95292; NO-SIMD128-NEXT:    i32.xor $push23=, $pop22, $415293; NO-SIMD128-NEXT:    i32.store8 8($0), $pop235294; NO-SIMD128-NEXT:    i32.xor $push24=, $24, $405295; NO-SIMD128-NEXT:    i32.and $push25=, $pop24, $85296; NO-SIMD128-NEXT:    i32.xor $push26=, $pop25, $405297; NO-SIMD128-NEXT:    i32.store8 7($0), $pop265298; NO-SIMD128-NEXT:    i32.xor $push27=, $23, $395299; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $75300; NO-SIMD128-NEXT:    i32.xor $push29=, $pop28, $395301; NO-SIMD128-NEXT:    i32.store8 6($0), $pop295302; NO-SIMD128-NEXT:    i32.xor $push30=, $22, $385303; NO-SIMD128-NEXT:    i32.and $push31=, $pop30, $65304; NO-SIMD128-NEXT:    i32.xor $push32=, $pop31, $385305; NO-SIMD128-NEXT:    i32.store8 5($0), $pop325306; NO-SIMD128-NEXT:    i32.xor $push33=, $21, $375307; NO-SIMD128-NEXT:    i32.and $push34=, $pop33, $55308; NO-SIMD128-NEXT:    i32.xor $push35=, $pop34, $375309; NO-SIMD128-NEXT:    i32.store8 4($0), $pop355310; NO-SIMD128-NEXT:    i32.xor $push36=, $20, $365311; NO-SIMD128-NEXT:    i32.and $push37=, $pop36, $45312; NO-SIMD128-NEXT:    i32.xor $push38=, $pop37, $365313; NO-SIMD128-NEXT:    i32.store8 3($0), $pop385314; NO-SIMD128-NEXT:    i32.xor $push39=, $19, $355315; NO-SIMD128-NEXT:    i32.and $push40=, $pop39, $35316; NO-SIMD128-NEXT:    i32.xor $push41=, $pop40, $355317; NO-SIMD128-NEXT:    i32.store8 2($0), $pop415318; NO-SIMD128-NEXT:    i32.xor $push42=, $18, $345319; NO-SIMD128-NEXT:    i32.and $push43=, $pop42, $25320; NO-SIMD128-NEXT:    i32.xor $push44=, $pop43, $345321; NO-SIMD128-NEXT:    i32.store8 1($0), $pop445322; NO-SIMD128-NEXT:    i32.xor $push45=, $17, $335323; NO-SIMD128-NEXT:    i32.and $push46=, $pop45, $15324; NO-SIMD128-NEXT:    i32.xor $push47=, $pop46, $335325; NO-SIMD128-NEXT:    i32.store8 0($0), $pop475326; NO-SIMD128-NEXT:    return5327;5328; NO-SIMD128-FAST-LABEL: bitselect_v16i8:5329; NO-SIMD128-FAST:         .functype bitselect_v16i8 (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) -> ()5330; NO-SIMD128-FAST-NEXT:  # %bb.0:5331; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $17, $335332; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $15333; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $335334; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop25335; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $18, $345336; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $25337; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $345338; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop55339; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $19, $355340; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $35341; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $355342; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop85343; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $20, $365344; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $45345; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $365346; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop115347; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $21, $375348; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $55349; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $pop13, $375350; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop145351; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $22, $385352; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $65353; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $pop16, $385354; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop175355; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $23, $395356; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $75357; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $395358; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop205359; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $24, $405360; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $pop21, $85361; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $pop22, $405362; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop235363; NO-SIMD128-FAST-NEXT:    i32.xor $push24=, $25, $415364; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $pop24, $95365; NO-SIMD128-FAST-NEXT:    i32.xor $push26=, $pop25, $415366; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop265367; NO-SIMD128-FAST-NEXT:    i32.xor $push27=, $26, $425368; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $105369; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $pop28, $425370; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop295371; NO-SIMD128-FAST-NEXT:    i32.xor $push30=, $27, $435372; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $pop30, $115373; NO-SIMD128-FAST-NEXT:    i32.xor $push32=, $pop31, $435374; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop325375; NO-SIMD128-FAST-NEXT:    i32.xor $push33=, $28, $445376; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $pop33, $125377; NO-SIMD128-FAST-NEXT:    i32.xor $push35=, $pop34, $445378; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop355379; NO-SIMD128-FAST-NEXT:    i32.xor $push36=, $29, $455380; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $pop36, $135381; NO-SIMD128-FAST-NEXT:    i32.xor $push38=, $pop37, $455382; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop385383; NO-SIMD128-FAST-NEXT:    i32.xor $push39=, $30, $465384; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $pop39, $145385; NO-SIMD128-FAST-NEXT:    i32.xor $push41=, $pop40, $465386; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop415387; NO-SIMD128-FAST-NEXT:    i32.xor $push42=, $31, $475388; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $155389; NO-SIMD128-FAST-NEXT:    i32.xor $push44=, $pop43, $475390; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop445391; NO-SIMD128-FAST-NEXT:    i32.xor $push45=, $32, $485392; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $pop45, $165393; NO-SIMD128-FAST-NEXT:    i32.xor $push47=, $pop46, $485394; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop475395; NO-SIMD128-FAST-NEXT:    return5396  %masked_v1 = and <16 x i8> %c, %v15397  %inv_mask = xor <16 x i8> %c,5398    <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,5399     i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>5400  %masked_v2 = and <16 x i8> %inv_mask, %v25401  %a = or <16 x i8> %masked_v1, %masked_v25402  ret <16 x i8> %a5403}5404 5405define <16 x i8> @bitselect_xor_v16i8(<16 x i8> %c, <16 x i8> %v1, <16 x i8> %v2) {5406; SIMD128-LABEL: bitselect_xor_v16i8:5407; SIMD128:         .functype bitselect_xor_v16i8 (v128, v128, v128) -> (v128)5408; SIMD128-NEXT:  # %bb.0:5409; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $05410; SIMD128-NEXT:    return $pop05411;5412; SIMD128-FAST-LABEL: bitselect_xor_v16i8:5413; SIMD128-FAST:         .functype bitselect_xor_v16i8 (v128, v128, v128) -> (v128)5414; SIMD128-FAST-NEXT:  # %bb.0:5415; SIMD128-FAST-NEXT:    v128.xor $push2=, $1, $25416; SIMD128-FAST-NEXT:    v128.and $push1=, $pop2, $05417; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop1, $25418; SIMD128-FAST-NEXT:    return $pop05419;5420; NO-SIMD128-LABEL: bitselect_xor_v16i8:5421; NO-SIMD128:         .functype bitselect_xor_v16i8 (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) -> ()5422; NO-SIMD128-NEXT:  # %bb.0:5423; NO-SIMD128-NEXT:    i32.xor $push0=, $32, $485424; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $165425; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $485426; NO-SIMD128-NEXT:    i32.store8 15($0), $pop25427; NO-SIMD128-NEXT:    i32.xor $push3=, $31, $475428; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $155429; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $475430; NO-SIMD128-NEXT:    i32.store8 14($0), $pop55431; NO-SIMD128-NEXT:    i32.xor $push6=, $30, $465432; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $145433; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $465434; NO-SIMD128-NEXT:    i32.store8 13($0), $pop85435; NO-SIMD128-NEXT:    i32.xor $push9=, $29, $455436; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $135437; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $455438; NO-SIMD128-NEXT:    i32.store8 12($0), $pop115439; NO-SIMD128-NEXT:    i32.xor $push12=, $28, $445440; NO-SIMD128-NEXT:    i32.and $push13=, $pop12, $125441; NO-SIMD128-NEXT:    i32.xor $push14=, $pop13, $445442; NO-SIMD128-NEXT:    i32.store8 11($0), $pop145443; NO-SIMD128-NEXT:    i32.xor $push15=, $27, $435444; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $115445; NO-SIMD128-NEXT:    i32.xor $push17=, $pop16, $435446; NO-SIMD128-NEXT:    i32.store8 10($0), $pop175447; NO-SIMD128-NEXT:    i32.xor $push18=, $26, $425448; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $105449; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $425450; NO-SIMD128-NEXT:    i32.store8 9($0), $pop205451; NO-SIMD128-NEXT:    i32.xor $push21=, $25, $415452; NO-SIMD128-NEXT:    i32.and $push22=, $pop21, $95453; NO-SIMD128-NEXT:    i32.xor $push23=, $pop22, $415454; NO-SIMD128-NEXT:    i32.store8 8($0), $pop235455; NO-SIMD128-NEXT:    i32.xor $push24=, $24, $405456; NO-SIMD128-NEXT:    i32.and $push25=, $pop24, $85457; NO-SIMD128-NEXT:    i32.xor $push26=, $pop25, $405458; NO-SIMD128-NEXT:    i32.store8 7($0), $pop265459; NO-SIMD128-NEXT:    i32.xor $push27=, $23, $395460; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $75461; NO-SIMD128-NEXT:    i32.xor $push29=, $pop28, $395462; NO-SIMD128-NEXT:    i32.store8 6($0), $pop295463; NO-SIMD128-NEXT:    i32.xor $push30=, $22, $385464; NO-SIMD128-NEXT:    i32.and $push31=, $pop30, $65465; NO-SIMD128-NEXT:    i32.xor $push32=, $pop31, $385466; NO-SIMD128-NEXT:    i32.store8 5($0), $pop325467; NO-SIMD128-NEXT:    i32.xor $push33=, $21, $375468; NO-SIMD128-NEXT:    i32.and $push34=, $pop33, $55469; NO-SIMD128-NEXT:    i32.xor $push35=, $pop34, $375470; NO-SIMD128-NEXT:    i32.store8 4($0), $pop355471; NO-SIMD128-NEXT:    i32.xor $push36=, $20, $365472; NO-SIMD128-NEXT:    i32.and $push37=, $pop36, $45473; NO-SIMD128-NEXT:    i32.xor $push38=, $pop37, $365474; NO-SIMD128-NEXT:    i32.store8 3($0), $pop385475; NO-SIMD128-NEXT:    i32.xor $push39=, $19, $355476; NO-SIMD128-NEXT:    i32.and $push40=, $pop39, $35477; NO-SIMD128-NEXT:    i32.xor $push41=, $pop40, $355478; NO-SIMD128-NEXT:    i32.store8 2($0), $pop415479; NO-SIMD128-NEXT:    i32.xor $push42=, $18, $345480; NO-SIMD128-NEXT:    i32.and $push43=, $pop42, $25481; NO-SIMD128-NEXT:    i32.xor $push44=, $pop43, $345482; NO-SIMD128-NEXT:    i32.store8 1($0), $pop445483; NO-SIMD128-NEXT:    i32.xor $push45=, $17, $335484; NO-SIMD128-NEXT:    i32.and $push46=, $pop45, $15485; NO-SIMD128-NEXT:    i32.xor $push47=, $pop46, $335486; NO-SIMD128-NEXT:    i32.store8 0($0), $pop475487; NO-SIMD128-NEXT:    return5488;5489; NO-SIMD128-FAST-LABEL: bitselect_xor_v16i8:5490; NO-SIMD128-FAST:         .functype bitselect_xor_v16i8 (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) -> ()5491; NO-SIMD128-FAST-NEXT:  # %bb.0:5492; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $17, $335493; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $15494; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $335495; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop25496; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $18, $345497; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $25498; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $345499; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop55500; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $19, $355501; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $35502; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $355503; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop85504; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $20, $365505; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $45506; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $365507; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop115508; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $21, $375509; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $55510; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $pop13, $375511; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop145512; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $22, $385513; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $65514; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $pop16, $385515; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop175516; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $23, $395517; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $75518; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $395519; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop205520; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $24, $405521; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $pop21, $85522; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $pop22, $405523; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop235524; NO-SIMD128-FAST-NEXT:    i32.xor $push24=, $25, $415525; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $pop24, $95526; NO-SIMD128-FAST-NEXT:    i32.xor $push26=, $pop25, $415527; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop265528; NO-SIMD128-FAST-NEXT:    i32.xor $push27=, $26, $425529; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $105530; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $pop28, $425531; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop295532; NO-SIMD128-FAST-NEXT:    i32.xor $push30=, $27, $435533; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $pop30, $115534; NO-SIMD128-FAST-NEXT:    i32.xor $push32=, $pop31, $435535; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop325536; NO-SIMD128-FAST-NEXT:    i32.xor $push33=, $28, $445537; NO-SIMD128-FAST-NEXT:    i32.and $push34=, $pop33, $125538; NO-SIMD128-FAST-NEXT:    i32.xor $push35=, $pop34, $445539; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop355540; NO-SIMD128-FAST-NEXT:    i32.xor $push36=, $29, $455541; NO-SIMD128-FAST-NEXT:    i32.and $push37=, $pop36, $135542; NO-SIMD128-FAST-NEXT:    i32.xor $push38=, $pop37, $455543; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop385544; NO-SIMD128-FAST-NEXT:    i32.xor $push39=, $30, $465545; NO-SIMD128-FAST-NEXT:    i32.and $push40=, $pop39, $145546; NO-SIMD128-FAST-NEXT:    i32.xor $push41=, $pop40, $465547; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop415548; NO-SIMD128-FAST-NEXT:    i32.xor $push42=, $31, $475549; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $155550; NO-SIMD128-FAST-NEXT:    i32.xor $push44=, $pop43, $475551; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop445552; NO-SIMD128-FAST-NEXT:    i32.xor $push45=, $32, $485553; NO-SIMD128-FAST-NEXT:    i32.and $push46=, $pop45, $165554; NO-SIMD128-FAST-NEXT:    i32.xor $push47=, $pop46, $485555; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop475556; NO-SIMD128-FAST-NEXT:    return5557 %xor1 = xor <16 x i8> %v1, %v25558 %and = and <16 x i8> %xor1, %c5559 %a = xor <16 x i8> %and, %v25560 ret <16 x i8> %a5561}5562 5563define <16 x i8> @bitselect_xor_reversed_v16i8(<16 x i8> %c, <16 x i8> %v1, <16 x i8> %v2) {5564; SIMD128-LABEL: bitselect_xor_reversed_v16i8:5565; SIMD128:         .functype bitselect_xor_reversed_v16i8 (v128, v128, v128) -> (v128)5566; SIMD128-NEXT:  # %bb.0:5567; SIMD128-NEXT:    v128.bitselect $push0=, $2, $1, $05568; SIMD128-NEXT:    return $pop05569;5570; SIMD128-FAST-LABEL: bitselect_xor_reversed_v16i8:5571; SIMD128-FAST:         .functype bitselect_xor_reversed_v16i8 (v128, v128, v128) -> (v128)5572; SIMD128-FAST-NEXT:  # %bb.0:5573; SIMD128-FAST-NEXT:    v128.xor $push1=, $1, $25574; SIMD128-FAST-NEXT:    v128.not $push2=, $05575; SIMD128-FAST-NEXT:    v128.and $push3=, $pop1, $pop25576; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop3, $25577; SIMD128-FAST-NEXT:    return $pop05578;5579; NO-SIMD128-LABEL: bitselect_xor_reversed_v16i8:5580; NO-SIMD128:         .functype bitselect_xor_reversed_v16i8 (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) -> ()5581; NO-SIMD128-NEXT:  # %bb.0:5582; NO-SIMD128-NEXT:    i32.xor $push2=, $32, $485583; NO-SIMD128-NEXT:    i32.const $push0=, -15584; NO-SIMD128-NEXT:    i32.xor $push1=, $16, $pop05585; NO-SIMD128-NEXT:    i32.and $push3=, $pop2, $pop15586; NO-SIMD128-NEXT:    i32.xor $push4=, $pop3, $485587; NO-SIMD128-NEXT:    i32.store8 15($0), $pop45588; NO-SIMD128-NEXT:    i32.xor $push6=, $31, $475589; NO-SIMD128-NEXT:    i32.const $push79=, -15590; NO-SIMD128-NEXT:    i32.xor $push5=, $15, $pop795591; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $pop55592; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $475593; NO-SIMD128-NEXT:    i32.store8 14($0), $pop85594; NO-SIMD128-NEXT:    i32.xor $push10=, $30, $465595; NO-SIMD128-NEXT:    i32.const $push78=, -15596; NO-SIMD128-NEXT:    i32.xor $push9=, $14, $pop785597; NO-SIMD128-NEXT:    i32.and $push11=, $pop10, $pop95598; NO-SIMD128-NEXT:    i32.xor $push12=, $pop11, $465599; NO-SIMD128-NEXT:    i32.store8 13($0), $pop125600; NO-SIMD128-NEXT:    i32.xor $push14=, $29, $455601; NO-SIMD128-NEXT:    i32.const $push77=, -15602; NO-SIMD128-NEXT:    i32.xor $push13=, $13, $pop775603; NO-SIMD128-NEXT:    i32.and $push15=, $pop14, $pop135604; NO-SIMD128-NEXT:    i32.xor $push16=, $pop15, $455605; NO-SIMD128-NEXT:    i32.store8 12($0), $pop165606; NO-SIMD128-NEXT:    i32.xor $push18=, $28, $445607; NO-SIMD128-NEXT:    i32.const $push76=, -15608; NO-SIMD128-NEXT:    i32.xor $push17=, $12, $pop765609; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $pop175610; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $445611; NO-SIMD128-NEXT:    i32.store8 11($0), $pop205612; NO-SIMD128-NEXT:    i32.xor $push22=, $27, $435613; NO-SIMD128-NEXT:    i32.const $push75=, -15614; NO-SIMD128-NEXT:    i32.xor $push21=, $11, $pop755615; NO-SIMD128-NEXT:    i32.and $push23=, $pop22, $pop215616; NO-SIMD128-NEXT:    i32.xor $push24=, $pop23, $435617; NO-SIMD128-NEXT:    i32.store8 10($0), $pop245618; NO-SIMD128-NEXT:    i32.xor $push26=, $26, $425619; NO-SIMD128-NEXT:    i32.const $push74=, -15620; NO-SIMD128-NEXT:    i32.xor $push25=, $10, $pop745621; NO-SIMD128-NEXT:    i32.and $push27=, $pop26, $pop255622; NO-SIMD128-NEXT:    i32.xor $push28=, $pop27, $425623; NO-SIMD128-NEXT:    i32.store8 9($0), $pop285624; NO-SIMD128-NEXT:    i32.xor $push30=, $25, $415625; NO-SIMD128-NEXT:    i32.const $push73=, -15626; NO-SIMD128-NEXT:    i32.xor $push29=, $9, $pop735627; NO-SIMD128-NEXT:    i32.and $push31=, $pop30, $pop295628; NO-SIMD128-NEXT:    i32.xor $push32=, $pop31, $415629; NO-SIMD128-NEXT:    i32.store8 8($0), $pop325630; NO-SIMD128-NEXT:    i32.xor $push34=, $24, $405631; NO-SIMD128-NEXT:    i32.const $push72=, -15632; NO-SIMD128-NEXT:    i32.xor $push33=, $8, $pop725633; NO-SIMD128-NEXT:    i32.and $push35=, $pop34, $pop335634; NO-SIMD128-NEXT:    i32.xor $push36=, $pop35, $405635; NO-SIMD128-NEXT:    i32.store8 7($0), $pop365636; NO-SIMD128-NEXT:    i32.xor $push38=, $23, $395637; NO-SIMD128-NEXT:    i32.const $push71=, -15638; NO-SIMD128-NEXT:    i32.xor $push37=, $7, $pop715639; NO-SIMD128-NEXT:    i32.and $push39=, $pop38, $pop375640; NO-SIMD128-NEXT:    i32.xor $push40=, $pop39, $395641; NO-SIMD128-NEXT:    i32.store8 6($0), $pop405642; NO-SIMD128-NEXT:    i32.xor $push42=, $22, $385643; NO-SIMD128-NEXT:    i32.const $push70=, -15644; NO-SIMD128-NEXT:    i32.xor $push41=, $6, $pop705645; NO-SIMD128-NEXT:    i32.and $push43=, $pop42, $pop415646; NO-SIMD128-NEXT:    i32.xor $push44=, $pop43, $385647; NO-SIMD128-NEXT:    i32.store8 5($0), $pop445648; NO-SIMD128-NEXT:    i32.xor $push46=, $21, $375649; NO-SIMD128-NEXT:    i32.const $push69=, -15650; NO-SIMD128-NEXT:    i32.xor $push45=, $5, $pop695651; NO-SIMD128-NEXT:    i32.and $push47=, $pop46, $pop455652; NO-SIMD128-NEXT:    i32.xor $push48=, $pop47, $375653; NO-SIMD128-NEXT:    i32.store8 4($0), $pop485654; NO-SIMD128-NEXT:    i32.xor $push50=, $20, $365655; NO-SIMD128-NEXT:    i32.const $push68=, -15656; NO-SIMD128-NEXT:    i32.xor $push49=, $4, $pop685657; NO-SIMD128-NEXT:    i32.and $push51=, $pop50, $pop495658; NO-SIMD128-NEXT:    i32.xor $push52=, $pop51, $365659; NO-SIMD128-NEXT:    i32.store8 3($0), $pop525660; NO-SIMD128-NEXT:    i32.xor $push54=, $19, $355661; NO-SIMD128-NEXT:    i32.const $push67=, -15662; NO-SIMD128-NEXT:    i32.xor $push53=, $3, $pop675663; NO-SIMD128-NEXT:    i32.and $push55=, $pop54, $pop535664; NO-SIMD128-NEXT:    i32.xor $push56=, $pop55, $355665; NO-SIMD128-NEXT:    i32.store8 2($0), $pop565666; NO-SIMD128-NEXT:    i32.xor $push58=, $18, $345667; NO-SIMD128-NEXT:    i32.const $push66=, -15668; NO-SIMD128-NEXT:    i32.xor $push57=, $2, $pop665669; NO-SIMD128-NEXT:    i32.and $push59=, $pop58, $pop575670; NO-SIMD128-NEXT:    i32.xor $push60=, $pop59, $345671; NO-SIMD128-NEXT:    i32.store8 1($0), $pop605672; NO-SIMD128-NEXT:    i32.xor $push62=, $17, $335673; NO-SIMD128-NEXT:    i32.const $push65=, -15674; NO-SIMD128-NEXT:    i32.xor $push61=, $1, $pop655675; NO-SIMD128-NEXT:    i32.and $push63=, $pop62, $pop615676; NO-SIMD128-NEXT:    i32.xor $push64=, $pop63, $335677; NO-SIMD128-NEXT:    i32.store8 0($0), $pop645678; NO-SIMD128-NEXT:    return5679;5680; NO-SIMD128-FAST-LABEL: bitselect_xor_reversed_v16i8:5681; NO-SIMD128-FAST:         .functype bitselect_xor_reversed_v16i8 (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) -> ()5682; NO-SIMD128-FAST-NEXT:  # %bb.0:5683; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $17, $335684; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -15685; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop05686; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $pop2, $pop15687; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $pop3, $335688; NO-SIMD128-FAST-NEXT:    i32.store8 0($0), $pop45689; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $18, $345690; NO-SIMD128-FAST-NEXT:    i32.const $push79=, -15691; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $2, $pop795692; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop55693; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $345694; NO-SIMD128-FAST-NEXT:    i32.store8 1($0), $pop85695; NO-SIMD128-FAST-NEXT:    i32.xor $push10=, $19, $355696; NO-SIMD128-FAST-NEXT:    i32.const $push78=, -15697; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $3, $pop785698; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $pop10, $pop95699; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $pop11, $355700; NO-SIMD128-FAST-NEXT:    i32.store8 2($0), $pop125701; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $20, $365702; NO-SIMD128-FAST-NEXT:    i32.const $push77=, -15703; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $4, $pop775704; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $pop14, $pop135705; NO-SIMD128-FAST-NEXT:    i32.xor $push16=, $pop15, $365706; NO-SIMD128-FAST-NEXT:    i32.store8 3($0), $pop165707; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $21, $375708; NO-SIMD128-FAST-NEXT:    i32.const $push76=, -15709; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $5, $pop765710; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $pop175711; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $375712; NO-SIMD128-FAST-NEXT:    i32.store8 4($0), $pop205713; NO-SIMD128-FAST-NEXT:    i32.xor $push22=, $22, $385714; NO-SIMD128-FAST-NEXT:    i32.const $push75=, -15715; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $6, $pop755716; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop215717; NO-SIMD128-FAST-NEXT:    i32.xor $push24=, $pop23, $385718; NO-SIMD128-FAST-NEXT:    i32.store8 5($0), $pop245719; NO-SIMD128-FAST-NEXT:    i32.xor $push26=, $23, $395720; NO-SIMD128-FAST-NEXT:    i32.const $push74=, -15721; NO-SIMD128-FAST-NEXT:    i32.xor $push25=, $7, $pop745722; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $pop26, $pop255723; NO-SIMD128-FAST-NEXT:    i32.xor $push28=, $pop27, $395724; NO-SIMD128-FAST-NEXT:    i32.store8 6($0), $pop285725; NO-SIMD128-FAST-NEXT:    i32.xor $push30=, $24, $405726; NO-SIMD128-FAST-NEXT:    i32.const $push73=, -15727; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $8, $pop735728; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $pop30, $pop295729; NO-SIMD128-FAST-NEXT:    i32.xor $push32=, $pop31, $405730; NO-SIMD128-FAST-NEXT:    i32.store8 7($0), $pop325731; NO-SIMD128-FAST-NEXT:    i32.xor $push34=, $25, $415732; NO-SIMD128-FAST-NEXT:    i32.const $push72=, -15733; NO-SIMD128-FAST-NEXT:    i32.xor $push33=, $9, $pop725734; NO-SIMD128-FAST-NEXT:    i32.and $push35=, $pop34, $pop335735; NO-SIMD128-FAST-NEXT:    i32.xor $push36=, $pop35, $415736; NO-SIMD128-FAST-NEXT:    i32.store8 8($0), $pop365737; NO-SIMD128-FAST-NEXT:    i32.xor $push38=, $26, $425738; NO-SIMD128-FAST-NEXT:    i32.const $push71=, -15739; NO-SIMD128-FAST-NEXT:    i32.xor $push37=, $10, $pop715740; NO-SIMD128-FAST-NEXT:    i32.and $push39=, $pop38, $pop375741; NO-SIMD128-FAST-NEXT:    i32.xor $push40=, $pop39, $425742; NO-SIMD128-FAST-NEXT:    i32.store8 9($0), $pop405743; NO-SIMD128-FAST-NEXT:    i32.xor $push42=, $27, $435744; NO-SIMD128-FAST-NEXT:    i32.const $push70=, -15745; NO-SIMD128-FAST-NEXT:    i32.xor $push41=, $11, $pop705746; NO-SIMD128-FAST-NEXT:    i32.and $push43=, $pop42, $pop415747; NO-SIMD128-FAST-NEXT:    i32.xor $push44=, $pop43, $435748; NO-SIMD128-FAST-NEXT:    i32.store8 10($0), $pop445749; NO-SIMD128-FAST-NEXT:    i32.xor $push46=, $28, $445750; NO-SIMD128-FAST-NEXT:    i32.const $push69=, -15751; NO-SIMD128-FAST-NEXT:    i32.xor $push45=, $12, $pop695752; NO-SIMD128-FAST-NEXT:    i32.and $push47=, $pop46, $pop455753; NO-SIMD128-FAST-NEXT:    i32.xor $push48=, $pop47, $445754; NO-SIMD128-FAST-NEXT:    i32.store8 11($0), $pop485755; NO-SIMD128-FAST-NEXT:    i32.xor $push50=, $29, $455756; NO-SIMD128-FAST-NEXT:    i32.const $push68=, -15757; NO-SIMD128-FAST-NEXT:    i32.xor $push49=, $13, $pop685758; NO-SIMD128-FAST-NEXT:    i32.and $push51=, $pop50, $pop495759; NO-SIMD128-FAST-NEXT:    i32.xor $push52=, $pop51, $455760; NO-SIMD128-FAST-NEXT:    i32.store8 12($0), $pop525761; NO-SIMD128-FAST-NEXT:    i32.xor $push54=, $30, $465762; NO-SIMD128-FAST-NEXT:    i32.const $push67=, -15763; NO-SIMD128-FAST-NEXT:    i32.xor $push53=, $14, $pop675764; NO-SIMD128-FAST-NEXT:    i32.and $push55=, $pop54, $pop535765; NO-SIMD128-FAST-NEXT:    i32.xor $push56=, $pop55, $465766; NO-SIMD128-FAST-NEXT:    i32.store8 13($0), $pop565767; NO-SIMD128-FAST-NEXT:    i32.xor $push58=, $31, $475768; NO-SIMD128-FAST-NEXT:    i32.const $push66=, -15769; NO-SIMD128-FAST-NEXT:    i32.xor $push57=, $15, $pop665770; NO-SIMD128-FAST-NEXT:    i32.and $push59=, $pop58, $pop575771; NO-SIMD128-FAST-NEXT:    i32.xor $push60=, $pop59, $475772; NO-SIMD128-FAST-NEXT:    i32.store8 14($0), $pop605773; NO-SIMD128-FAST-NEXT:    i32.xor $push62=, $32, $485774; NO-SIMD128-FAST-NEXT:    i32.const $push65=, -15775; NO-SIMD128-FAST-NEXT:    i32.xor $push61=, $16, $pop655776; NO-SIMD128-FAST-NEXT:    i32.and $push63=, $pop62, $pop615777; NO-SIMD128-FAST-NEXT:    i32.xor $push64=, $pop63, $485778; NO-SIMD128-FAST-NEXT:    i32.store8 15($0), $pop645779; NO-SIMD128-FAST-NEXT:    return5780 %xor1 = xor <16 x i8> %v1, %v25781 %notc = xor <16 x i8> %c, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,5782                            i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>5783 %and = and <16 x i8> %xor1, %notc5784 %a = xor <16 x i8> %and, %v25785 ret <16 x i8> %a5786}5787 5788; ==============================================================================5789; 8 x i165790; ==============================================================================5791define <8 x i16> @add_v8i16(<8 x i16> %x, <8 x i16> %y) {5792; SIMD128-LABEL: add_v8i16:5793; SIMD128:         .functype add_v8i16 (v128, v128) -> (v128)5794; SIMD128-NEXT:  # %bb.0:5795; SIMD128-NEXT:    i16x8.add $push0=, $0, $15796; SIMD128-NEXT:    return $pop05797;5798; SIMD128-FAST-LABEL: add_v8i16:5799; SIMD128-FAST:         .functype add_v8i16 (v128, v128) -> (v128)5800; SIMD128-FAST-NEXT:  # %bb.0:5801; SIMD128-FAST-NEXT:    i16x8.add $push0=, $0, $15802; SIMD128-FAST-NEXT:    return $pop05803;5804; NO-SIMD128-LABEL: add_v8i16:5805; NO-SIMD128:         .functype add_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5806; NO-SIMD128-NEXT:  # %bb.0:5807; NO-SIMD128-NEXT:    i32.add $push0=, $8, $165808; NO-SIMD128-NEXT:    i32.store16 14($0), $pop05809; NO-SIMD128-NEXT:    i32.add $push1=, $7, $155810; NO-SIMD128-NEXT:    i32.store16 12($0), $pop15811; NO-SIMD128-NEXT:    i32.add $push2=, $6, $145812; NO-SIMD128-NEXT:    i32.store16 10($0), $pop25813; NO-SIMD128-NEXT:    i32.add $push3=, $5, $135814; NO-SIMD128-NEXT:    i32.store16 8($0), $pop35815; NO-SIMD128-NEXT:    i32.add $push4=, $4, $125816; NO-SIMD128-NEXT:    i32.store16 6($0), $pop45817; NO-SIMD128-NEXT:    i32.add $push5=, $3, $115818; NO-SIMD128-NEXT:    i32.store16 4($0), $pop55819; NO-SIMD128-NEXT:    i32.add $push6=, $2, $105820; NO-SIMD128-NEXT:    i32.store16 2($0), $pop65821; NO-SIMD128-NEXT:    i32.add $push7=, $1, $95822; NO-SIMD128-NEXT:    i32.store16 0($0), $pop75823; NO-SIMD128-NEXT:    return5824;5825; NO-SIMD128-FAST-LABEL: add_v8i16:5826; NO-SIMD128-FAST:         .functype add_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5827; NO-SIMD128-FAST-NEXT:  # %bb.0:5828; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $95829; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop05830; NO-SIMD128-FAST-NEXT:    i32.add $push1=, $2, $105831; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop15832; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $3, $115833; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop25834; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $4, $125835; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop35836; NO-SIMD128-FAST-NEXT:    i32.add $push4=, $5, $135837; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop45838; NO-SIMD128-FAST-NEXT:    i32.add $push5=, $6, $145839; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop55840; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $7, $155841; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop65842; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $8, $165843; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop75844; NO-SIMD128-FAST-NEXT:    return5845  %a = add <8 x i16> %x, %y5846  ret <8 x i16> %a5847}5848 5849define <8 x i16> @sub_v8i16(<8 x i16> %x, <8 x i16> %y) {5850; SIMD128-LABEL: sub_v8i16:5851; SIMD128:         .functype sub_v8i16 (v128, v128) -> (v128)5852; SIMD128-NEXT:  # %bb.0:5853; SIMD128-NEXT:    i16x8.sub $push0=, $0, $15854; SIMD128-NEXT:    return $pop05855;5856; SIMD128-FAST-LABEL: sub_v8i16:5857; SIMD128-FAST:         .functype sub_v8i16 (v128, v128) -> (v128)5858; SIMD128-FAST-NEXT:  # %bb.0:5859; SIMD128-FAST-NEXT:    i16x8.sub $push0=, $0, $15860; SIMD128-FAST-NEXT:    return $pop05861;5862; NO-SIMD128-LABEL: sub_v8i16:5863; NO-SIMD128:         .functype sub_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5864; NO-SIMD128-NEXT:  # %bb.0:5865; NO-SIMD128-NEXT:    i32.sub $push0=, $8, $165866; NO-SIMD128-NEXT:    i32.store16 14($0), $pop05867; NO-SIMD128-NEXT:    i32.sub $push1=, $7, $155868; NO-SIMD128-NEXT:    i32.store16 12($0), $pop15869; NO-SIMD128-NEXT:    i32.sub $push2=, $6, $145870; NO-SIMD128-NEXT:    i32.store16 10($0), $pop25871; NO-SIMD128-NEXT:    i32.sub $push3=, $5, $135872; NO-SIMD128-NEXT:    i32.store16 8($0), $pop35873; NO-SIMD128-NEXT:    i32.sub $push4=, $4, $125874; NO-SIMD128-NEXT:    i32.store16 6($0), $pop45875; NO-SIMD128-NEXT:    i32.sub $push5=, $3, $115876; NO-SIMD128-NEXT:    i32.store16 4($0), $pop55877; NO-SIMD128-NEXT:    i32.sub $push6=, $2, $105878; NO-SIMD128-NEXT:    i32.store16 2($0), $pop65879; NO-SIMD128-NEXT:    i32.sub $push7=, $1, $95880; NO-SIMD128-NEXT:    i32.store16 0($0), $pop75881; NO-SIMD128-NEXT:    return5882;5883; NO-SIMD128-FAST-LABEL: sub_v8i16:5884; NO-SIMD128-FAST:         .functype sub_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5885; NO-SIMD128-FAST-NEXT:  # %bb.0:5886; NO-SIMD128-FAST-NEXT:    i32.sub $push0=, $1, $95887; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop05888; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $2, $105889; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop15890; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $3, $115891; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop25892; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $4, $125893; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop35894; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $5, $135895; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop45896; NO-SIMD128-FAST-NEXT:    i32.sub $push5=, $6, $145897; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop55898; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $7, $155899; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop65900; NO-SIMD128-FAST-NEXT:    i32.sub $push7=, $8, $165901; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop75902; NO-SIMD128-FAST-NEXT:    return5903  %a = sub <8 x i16> %x, %y5904  ret <8 x i16> %a5905}5906 5907define <8 x i16> @mul_v8i16(<8 x i16> %x, <8 x i16> %y) {5908; SIMD128-LABEL: mul_v8i16:5909; SIMD128:         .functype mul_v8i16 (v128, v128) -> (v128)5910; SIMD128-NEXT:  # %bb.0:5911; SIMD128-NEXT:    i16x8.mul $push0=, $0, $15912; SIMD128-NEXT:    return $pop05913;5914; SIMD128-FAST-LABEL: mul_v8i16:5915; SIMD128-FAST:         .functype mul_v8i16 (v128, v128) -> (v128)5916; SIMD128-FAST-NEXT:  # %bb.0:5917; SIMD128-FAST-NEXT:    i16x8.mul $push0=, $0, $15918; SIMD128-FAST-NEXT:    return $pop05919;5920; NO-SIMD128-LABEL: mul_v8i16:5921; NO-SIMD128:         .functype mul_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5922; NO-SIMD128-NEXT:  # %bb.0:5923; NO-SIMD128-NEXT:    i32.mul $push0=, $8, $165924; NO-SIMD128-NEXT:    i32.store16 14($0), $pop05925; NO-SIMD128-NEXT:    i32.mul $push1=, $7, $155926; NO-SIMD128-NEXT:    i32.store16 12($0), $pop15927; NO-SIMD128-NEXT:    i32.mul $push2=, $6, $145928; NO-SIMD128-NEXT:    i32.store16 10($0), $pop25929; NO-SIMD128-NEXT:    i32.mul $push3=, $5, $135930; NO-SIMD128-NEXT:    i32.store16 8($0), $pop35931; NO-SIMD128-NEXT:    i32.mul $push4=, $4, $125932; NO-SIMD128-NEXT:    i32.store16 6($0), $pop45933; NO-SIMD128-NEXT:    i32.mul $push5=, $3, $115934; NO-SIMD128-NEXT:    i32.store16 4($0), $pop55935; NO-SIMD128-NEXT:    i32.mul $push6=, $2, $105936; NO-SIMD128-NEXT:    i32.store16 2($0), $pop65937; NO-SIMD128-NEXT:    i32.mul $push7=, $1, $95938; NO-SIMD128-NEXT:    i32.store16 0($0), $pop75939; NO-SIMD128-NEXT:    return5940;5941; NO-SIMD128-FAST-LABEL: mul_v8i16:5942; NO-SIMD128-FAST:         .functype mul_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5943; NO-SIMD128-FAST-NEXT:  # %bb.0:5944; NO-SIMD128-FAST-NEXT:    i32.mul $push0=, $1, $95945; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop05946; NO-SIMD128-FAST-NEXT:    i32.mul $push1=, $2, $105947; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop15948; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $3, $115949; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop25950; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $4, $125951; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop35952; NO-SIMD128-FAST-NEXT:    i32.mul $push4=, $5, $135953; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop45954; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $6, $145955; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop55956; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $7, $155957; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop65958; NO-SIMD128-FAST-NEXT:    i32.mul $push7=, $8, $165959; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop75960; NO-SIMD128-FAST-NEXT:    return5961  %a = mul <8 x i16> %x, %y5962  ret <8 x i16> %a5963}5964 5965define <8 x i16> @min_s_v8i16(<8 x i16> %x, <8 x i16> %y) {5966; SIMD128-LABEL: min_s_v8i16:5967; SIMD128:         .functype min_s_v8i16 (v128, v128) -> (v128)5968; SIMD128-NEXT:  # %bb.0:5969; SIMD128-NEXT:    i16x8.min_s $push0=, $0, $15970; SIMD128-NEXT:    return $pop05971;5972; SIMD128-FAST-LABEL: min_s_v8i16:5973; SIMD128-FAST:         .functype min_s_v8i16 (v128, v128) -> (v128)5974; SIMD128-FAST-NEXT:  # %bb.0:5975; SIMD128-FAST-NEXT:    i16x8.min_s $push0=, $0, $15976; SIMD128-FAST-NEXT:    return $pop05977;5978; NO-SIMD128-LABEL: min_s_v8i16:5979; NO-SIMD128:         .functype min_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()5980; NO-SIMD128-NEXT:  # %bb.0:5981; NO-SIMD128-NEXT:    i32.extend16_s $push1=, $85982; NO-SIMD128-NEXT:    i32.extend16_s $push0=, $165983; NO-SIMD128-NEXT:    i32.lt_s $push2=, $pop1, $pop05984; NO-SIMD128-NEXT:    i32.select $push3=, $8, $16, $pop25985; NO-SIMD128-NEXT:    i32.store16 14($0), $pop35986; NO-SIMD128-NEXT:    i32.extend16_s $push5=, $75987; NO-SIMD128-NEXT:    i32.extend16_s $push4=, $155988; NO-SIMD128-NEXT:    i32.lt_s $push6=, $pop5, $pop45989; NO-SIMD128-NEXT:    i32.select $push7=, $7, $15, $pop65990; NO-SIMD128-NEXT:    i32.store16 12($0), $pop75991; NO-SIMD128-NEXT:    i32.extend16_s $push9=, $65992; NO-SIMD128-NEXT:    i32.extend16_s $push8=, $145993; NO-SIMD128-NEXT:    i32.lt_s $push10=, $pop9, $pop85994; NO-SIMD128-NEXT:    i32.select $push11=, $6, $14, $pop105995; NO-SIMD128-NEXT:    i32.store16 10($0), $pop115996; NO-SIMD128-NEXT:    i32.extend16_s $push13=, $55997; NO-SIMD128-NEXT:    i32.extend16_s $push12=, $135998; NO-SIMD128-NEXT:    i32.lt_s $push14=, $pop13, $pop125999; NO-SIMD128-NEXT:    i32.select $push15=, $5, $13, $pop146000; NO-SIMD128-NEXT:    i32.store16 8($0), $pop156001; NO-SIMD128-NEXT:    i32.extend16_s $push17=, $46002; NO-SIMD128-NEXT:    i32.extend16_s $push16=, $126003; NO-SIMD128-NEXT:    i32.lt_s $push18=, $pop17, $pop166004; NO-SIMD128-NEXT:    i32.select $push19=, $4, $12, $pop186005; NO-SIMD128-NEXT:    i32.store16 6($0), $pop196006; NO-SIMD128-NEXT:    i32.extend16_s $push21=, $36007; NO-SIMD128-NEXT:    i32.extend16_s $push20=, $116008; NO-SIMD128-NEXT:    i32.lt_s $push22=, $pop21, $pop206009; NO-SIMD128-NEXT:    i32.select $push23=, $3, $11, $pop226010; NO-SIMD128-NEXT:    i32.store16 4($0), $pop236011; NO-SIMD128-NEXT:    i32.extend16_s $push25=, $26012; NO-SIMD128-NEXT:    i32.extend16_s $push24=, $106013; NO-SIMD128-NEXT:    i32.lt_s $push26=, $pop25, $pop246014; NO-SIMD128-NEXT:    i32.select $push27=, $2, $10, $pop266015; NO-SIMD128-NEXT:    i32.store16 2($0), $pop276016; NO-SIMD128-NEXT:    i32.extend16_s $push29=, $16017; NO-SIMD128-NEXT:    i32.extend16_s $push28=, $96018; NO-SIMD128-NEXT:    i32.lt_s $push30=, $pop29, $pop286019; NO-SIMD128-NEXT:    i32.select $push31=, $1, $9, $pop306020; NO-SIMD128-NEXT:    i32.store16 0($0), $pop316021; NO-SIMD128-NEXT:    return6022;6023; NO-SIMD128-FAST-LABEL: min_s_v8i16:6024; NO-SIMD128-FAST:         .functype min_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6025; NO-SIMD128-FAST-NEXT:  # %bb.0:6026; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push1=, $16027; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push0=, $96028; NO-SIMD128-FAST-NEXT:    i32.lt_s $push2=, $pop1, $pop06029; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $1, $9, $pop26030; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop36031; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push5=, $26032; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push4=, $106033; NO-SIMD128-FAST-NEXT:    i32.lt_s $push6=, $pop5, $pop46034; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $2, $10, $pop66035; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop76036; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push9=, $36037; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push8=, $116038; NO-SIMD128-FAST-NEXT:    i32.lt_s $push10=, $pop9, $pop86039; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $3, $11, $pop106040; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop116041; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push13=, $46042; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push12=, $126043; NO-SIMD128-FAST-NEXT:    i32.lt_s $push14=, $pop13, $pop126044; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $4, $12, $pop146045; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop156046; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push17=, $56047; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push16=, $136048; NO-SIMD128-FAST-NEXT:    i32.lt_s $push18=, $pop17, $pop166049; NO-SIMD128-FAST-NEXT:    i32.select $push19=, $5, $13, $pop186050; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop196051; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push21=, $66052; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push20=, $146053; NO-SIMD128-FAST-NEXT:    i32.lt_s $push22=, $pop21, $pop206054; NO-SIMD128-FAST-NEXT:    i32.select $push23=, $6, $14, $pop226055; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop236056; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push25=, $76057; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push24=, $156058; NO-SIMD128-FAST-NEXT:    i32.lt_s $push26=, $pop25, $pop246059; NO-SIMD128-FAST-NEXT:    i32.select $push27=, $7, $15, $pop266060; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop276061; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push29=, $86062; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push28=, $166063; NO-SIMD128-FAST-NEXT:    i32.lt_s $push30=, $pop29, $pop286064; NO-SIMD128-FAST-NEXT:    i32.select $push31=, $8, $16, $pop306065; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop316066; NO-SIMD128-FAST-NEXT:    return6067  %c = icmp slt <8 x i16> %x, %y6068  %a = select <8 x i1> %c, <8 x i16> %x, <8 x i16> %y6069  ret <8 x i16> %a6070}6071 6072define <8 x i16> @min_u_v8i16(<8 x i16> %x, <8 x i16> %y) {6073; SIMD128-LABEL: min_u_v8i16:6074; SIMD128:         .functype min_u_v8i16 (v128, v128) -> (v128)6075; SIMD128-NEXT:  # %bb.0:6076; SIMD128-NEXT:    i16x8.min_u $push0=, $0, $16077; SIMD128-NEXT:    return $pop06078;6079; SIMD128-FAST-LABEL: min_u_v8i16:6080; SIMD128-FAST:         .functype min_u_v8i16 (v128, v128) -> (v128)6081; SIMD128-FAST-NEXT:  # %bb.0:6082; SIMD128-FAST-NEXT:    i16x8.min_u $push0=, $0, $16083; SIMD128-FAST-NEXT:    return $pop06084;6085; NO-SIMD128-LABEL: min_u_v8i16:6086; NO-SIMD128:         .functype min_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6087; NO-SIMD128-NEXT:  # %bb.0:6088; NO-SIMD128-NEXT:    i32.const $push0=, 655356089; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop06090; NO-SIMD128-NEXT:    i32.const $push47=, 655356091; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop476092; NO-SIMD128-NEXT:    i32.lt_u $push3=, $pop2, $pop16093; NO-SIMD128-NEXT:    i32.select $push4=, $8, $16, $pop36094; NO-SIMD128-NEXT:    i32.store16 14($0), $pop46095; NO-SIMD128-NEXT:    i32.const $push46=, 655356096; NO-SIMD128-NEXT:    i32.and $push6=, $7, $pop466097; NO-SIMD128-NEXT:    i32.const $push45=, 655356098; NO-SIMD128-NEXT:    i32.and $push5=, $15, $pop456099; NO-SIMD128-NEXT:    i32.lt_u $push7=, $pop6, $pop56100; NO-SIMD128-NEXT:    i32.select $push8=, $7, $15, $pop76101; NO-SIMD128-NEXT:    i32.store16 12($0), $pop86102; NO-SIMD128-NEXT:    i32.const $push44=, 655356103; NO-SIMD128-NEXT:    i32.and $push10=, $6, $pop446104; NO-SIMD128-NEXT:    i32.const $push43=, 655356105; NO-SIMD128-NEXT:    i32.and $push9=, $14, $pop436106; NO-SIMD128-NEXT:    i32.lt_u $push11=, $pop10, $pop96107; NO-SIMD128-NEXT:    i32.select $push12=, $6, $14, $pop116108; NO-SIMD128-NEXT:    i32.store16 10($0), $pop126109; NO-SIMD128-NEXT:    i32.const $push42=, 655356110; NO-SIMD128-NEXT:    i32.and $push14=, $5, $pop426111; NO-SIMD128-NEXT:    i32.const $push41=, 655356112; NO-SIMD128-NEXT:    i32.and $push13=, $13, $pop416113; NO-SIMD128-NEXT:    i32.lt_u $push15=, $pop14, $pop136114; NO-SIMD128-NEXT:    i32.select $push16=, $5, $13, $pop156115; NO-SIMD128-NEXT:    i32.store16 8($0), $pop166116; NO-SIMD128-NEXT:    i32.const $push40=, 655356117; NO-SIMD128-NEXT:    i32.and $push18=, $4, $pop406118; NO-SIMD128-NEXT:    i32.const $push39=, 655356119; NO-SIMD128-NEXT:    i32.and $push17=, $12, $pop396120; NO-SIMD128-NEXT:    i32.lt_u $push19=, $pop18, $pop176121; NO-SIMD128-NEXT:    i32.select $push20=, $4, $12, $pop196122; NO-SIMD128-NEXT:    i32.store16 6($0), $pop206123; NO-SIMD128-NEXT:    i32.const $push38=, 655356124; NO-SIMD128-NEXT:    i32.and $push22=, $3, $pop386125; NO-SIMD128-NEXT:    i32.const $push37=, 655356126; NO-SIMD128-NEXT:    i32.and $push21=, $11, $pop376127; NO-SIMD128-NEXT:    i32.lt_u $push23=, $pop22, $pop216128; NO-SIMD128-NEXT:    i32.select $push24=, $3, $11, $pop236129; NO-SIMD128-NEXT:    i32.store16 4($0), $pop246130; NO-SIMD128-NEXT:    i32.const $push36=, 655356131; NO-SIMD128-NEXT:    i32.and $push26=, $2, $pop366132; NO-SIMD128-NEXT:    i32.const $push35=, 655356133; NO-SIMD128-NEXT:    i32.and $push25=, $10, $pop356134; NO-SIMD128-NEXT:    i32.lt_u $push27=, $pop26, $pop256135; NO-SIMD128-NEXT:    i32.select $push28=, $2, $10, $pop276136; NO-SIMD128-NEXT:    i32.store16 2($0), $pop286137; NO-SIMD128-NEXT:    i32.const $push34=, 655356138; NO-SIMD128-NEXT:    i32.and $push30=, $1, $pop346139; NO-SIMD128-NEXT:    i32.const $push33=, 655356140; NO-SIMD128-NEXT:    i32.and $push29=, $9, $pop336141; NO-SIMD128-NEXT:    i32.lt_u $push31=, $pop30, $pop296142; NO-SIMD128-NEXT:    i32.select $push32=, $1, $9, $pop316143; NO-SIMD128-NEXT:    i32.store16 0($0), $pop326144; NO-SIMD128-NEXT:    return6145;6146; NO-SIMD128-FAST-LABEL: min_u_v8i16:6147; NO-SIMD128-FAST:         .functype min_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6148; NO-SIMD128-FAST-NEXT:  # %bb.0:6149; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655356150; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop06151; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 655356152; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop476153; NO-SIMD128-FAST-NEXT:    i32.lt_u $push3=, $pop2, $pop16154; NO-SIMD128-FAST-NEXT:    i32.select $push4=, $1, $9, $pop36155; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop46156; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 655356157; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $2, $pop466158; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 655356159; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $10, $pop456160; NO-SIMD128-FAST-NEXT:    i32.lt_u $push7=, $pop6, $pop56161; NO-SIMD128-FAST-NEXT:    i32.select $push8=, $2, $10, $pop76162; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop86163; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 655356164; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $3, $pop446165; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 655356166; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $11, $pop436167; NO-SIMD128-FAST-NEXT:    i32.lt_u $push11=, $pop10, $pop96168; NO-SIMD128-FAST-NEXT:    i32.select $push12=, $3, $11, $pop116169; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop126170; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 655356171; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $4, $pop426172; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 655356173; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $12, $pop416174; NO-SIMD128-FAST-NEXT:    i32.lt_u $push15=, $pop14, $pop136175; NO-SIMD128-FAST-NEXT:    i32.select $push16=, $4, $12, $pop156176; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop166177; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 655356178; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $5, $pop406179; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 655356180; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $13, $pop396181; NO-SIMD128-FAST-NEXT:    i32.lt_u $push19=, $pop18, $pop176182; NO-SIMD128-FAST-NEXT:    i32.select $push20=, $5, $13, $pop196183; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop206184; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 655356185; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $6, $pop386186; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 655356187; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $14, $pop376188; NO-SIMD128-FAST-NEXT:    i32.lt_u $push23=, $pop22, $pop216189; NO-SIMD128-FAST-NEXT:    i32.select $push24=, $6, $14, $pop236190; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop246191; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 655356192; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $7, $pop366193; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 655356194; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $15, $pop356195; NO-SIMD128-FAST-NEXT:    i32.lt_u $push27=, $pop26, $pop256196; NO-SIMD128-FAST-NEXT:    i32.select $push28=, $7, $15, $pop276197; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop286198; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 655356199; NO-SIMD128-FAST-NEXT:    i32.and $push30=, $8, $pop346200; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 655356201; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $16, $pop336202; NO-SIMD128-FAST-NEXT:    i32.lt_u $push31=, $pop30, $pop296203; NO-SIMD128-FAST-NEXT:    i32.select $push32=, $8, $16, $pop316204; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop326205; NO-SIMD128-FAST-NEXT:    return6206  %c = icmp ult <8 x i16> %x, %y6207  %a = select <8 x i1> %c, <8 x i16> %x, <8 x i16> %y6208  ret <8 x i16> %a6209}6210 6211define <8 x i16> @max_s_v8i16(<8 x i16> %x, <8 x i16> %y) {6212; SIMD128-LABEL: max_s_v8i16:6213; SIMD128:         .functype max_s_v8i16 (v128, v128) -> (v128)6214; SIMD128-NEXT:  # %bb.0:6215; SIMD128-NEXT:    i16x8.max_s $push0=, $0, $16216; SIMD128-NEXT:    return $pop06217;6218; SIMD128-FAST-LABEL: max_s_v8i16:6219; SIMD128-FAST:         .functype max_s_v8i16 (v128, v128) -> (v128)6220; SIMD128-FAST-NEXT:  # %bb.0:6221; SIMD128-FAST-NEXT:    i16x8.max_s $push0=, $0, $16222; SIMD128-FAST-NEXT:    return $pop06223;6224; NO-SIMD128-LABEL: max_s_v8i16:6225; NO-SIMD128:         .functype max_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6226; NO-SIMD128-NEXT:  # %bb.0:6227; NO-SIMD128-NEXT:    i32.extend16_s $push1=, $86228; NO-SIMD128-NEXT:    i32.extend16_s $push0=, $166229; NO-SIMD128-NEXT:    i32.gt_s $push2=, $pop1, $pop06230; NO-SIMD128-NEXT:    i32.select $push3=, $8, $16, $pop26231; NO-SIMD128-NEXT:    i32.store16 14($0), $pop36232; NO-SIMD128-NEXT:    i32.extend16_s $push5=, $76233; NO-SIMD128-NEXT:    i32.extend16_s $push4=, $156234; NO-SIMD128-NEXT:    i32.gt_s $push6=, $pop5, $pop46235; NO-SIMD128-NEXT:    i32.select $push7=, $7, $15, $pop66236; NO-SIMD128-NEXT:    i32.store16 12($0), $pop76237; NO-SIMD128-NEXT:    i32.extend16_s $push9=, $66238; NO-SIMD128-NEXT:    i32.extend16_s $push8=, $146239; NO-SIMD128-NEXT:    i32.gt_s $push10=, $pop9, $pop86240; NO-SIMD128-NEXT:    i32.select $push11=, $6, $14, $pop106241; NO-SIMD128-NEXT:    i32.store16 10($0), $pop116242; NO-SIMD128-NEXT:    i32.extend16_s $push13=, $56243; NO-SIMD128-NEXT:    i32.extend16_s $push12=, $136244; NO-SIMD128-NEXT:    i32.gt_s $push14=, $pop13, $pop126245; NO-SIMD128-NEXT:    i32.select $push15=, $5, $13, $pop146246; NO-SIMD128-NEXT:    i32.store16 8($0), $pop156247; NO-SIMD128-NEXT:    i32.extend16_s $push17=, $46248; NO-SIMD128-NEXT:    i32.extend16_s $push16=, $126249; NO-SIMD128-NEXT:    i32.gt_s $push18=, $pop17, $pop166250; NO-SIMD128-NEXT:    i32.select $push19=, $4, $12, $pop186251; NO-SIMD128-NEXT:    i32.store16 6($0), $pop196252; NO-SIMD128-NEXT:    i32.extend16_s $push21=, $36253; NO-SIMD128-NEXT:    i32.extend16_s $push20=, $116254; NO-SIMD128-NEXT:    i32.gt_s $push22=, $pop21, $pop206255; NO-SIMD128-NEXT:    i32.select $push23=, $3, $11, $pop226256; NO-SIMD128-NEXT:    i32.store16 4($0), $pop236257; NO-SIMD128-NEXT:    i32.extend16_s $push25=, $26258; NO-SIMD128-NEXT:    i32.extend16_s $push24=, $106259; NO-SIMD128-NEXT:    i32.gt_s $push26=, $pop25, $pop246260; NO-SIMD128-NEXT:    i32.select $push27=, $2, $10, $pop266261; NO-SIMD128-NEXT:    i32.store16 2($0), $pop276262; NO-SIMD128-NEXT:    i32.extend16_s $push29=, $16263; NO-SIMD128-NEXT:    i32.extend16_s $push28=, $96264; NO-SIMD128-NEXT:    i32.gt_s $push30=, $pop29, $pop286265; NO-SIMD128-NEXT:    i32.select $push31=, $1, $9, $pop306266; NO-SIMD128-NEXT:    i32.store16 0($0), $pop316267; NO-SIMD128-NEXT:    return6268;6269; NO-SIMD128-FAST-LABEL: max_s_v8i16:6270; NO-SIMD128-FAST:         .functype max_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6271; NO-SIMD128-FAST-NEXT:  # %bb.0:6272; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push1=, $16273; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push0=, $96274; NO-SIMD128-FAST-NEXT:    i32.gt_s $push2=, $pop1, $pop06275; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $1, $9, $pop26276; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop36277; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push5=, $26278; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push4=, $106279; NO-SIMD128-FAST-NEXT:    i32.gt_s $push6=, $pop5, $pop46280; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $2, $10, $pop66281; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop76282; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push9=, $36283; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push8=, $116284; NO-SIMD128-FAST-NEXT:    i32.gt_s $push10=, $pop9, $pop86285; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $3, $11, $pop106286; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop116287; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push13=, $46288; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push12=, $126289; NO-SIMD128-FAST-NEXT:    i32.gt_s $push14=, $pop13, $pop126290; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $4, $12, $pop146291; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop156292; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push17=, $56293; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push16=, $136294; NO-SIMD128-FAST-NEXT:    i32.gt_s $push18=, $pop17, $pop166295; NO-SIMD128-FAST-NEXT:    i32.select $push19=, $5, $13, $pop186296; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop196297; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push21=, $66298; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push20=, $146299; NO-SIMD128-FAST-NEXT:    i32.gt_s $push22=, $pop21, $pop206300; NO-SIMD128-FAST-NEXT:    i32.select $push23=, $6, $14, $pop226301; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop236302; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push25=, $76303; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push24=, $156304; NO-SIMD128-FAST-NEXT:    i32.gt_s $push26=, $pop25, $pop246305; NO-SIMD128-FAST-NEXT:    i32.select $push27=, $7, $15, $pop266306; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop276307; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push29=, $86308; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push28=, $166309; NO-SIMD128-FAST-NEXT:    i32.gt_s $push30=, $pop29, $pop286310; NO-SIMD128-FAST-NEXT:    i32.select $push31=, $8, $16, $pop306311; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop316312; NO-SIMD128-FAST-NEXT:    return6313  %c = icmp sgt <8 x i16> %x, %y6314  %a = select <8 x i1> %c, <8 x i16> %x, <8 x i16> %y6315  ret <8 x i16> %a6316}6317 6318define <8 x i16> @max_u_v8i16(<8 x i16> %x, <8 x i16> %y) {6319; SIMD128-LABEL: max_u_v8i16:6320; SIMD128:         .functype max_u_v8i16 (v128, v128) -> (v128)6321; SIMD128-NEXT:  # %bb.0:6322; SIMD128-NEXT:    i16x8.max_u $push0=, $0, $16323; SIMD128-NEXT:    return $pop06324;6325; SIMD128-FAST-LABEL: max_u_v8i16:6326; SIMD128-FAST:         .functype max_u_v8i16 (v128, v128) -> (v128)6327; SIMD128-FAST-NEXT:  # %bb.0:6328; SIMD128-FAST-NEXT:    i16x8.max_u $push0=, $0, $16329; SIMD128-FAST-NEXT:    return $pop06330;6331; NO-SIMD128-LABEL: max_u_v8i16:6332; NO-SIMD128:         .functype max_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6333; NO-SIMD128-NEXT:  # %bb.0:6334; NO-SIMD128-NEXT:    i32.const $push0=, 655356335; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop06336; NO-SIMD128-NEXT:    i32.const $push47=, 655356337; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop476338; NO-SIMD128-NEXT:    i32.gt_u $push3=, $pop2, $pop16339; NO-SIMD128-NEXT:    i32.select $push4=, $8, $16, $pop36340; NO-SIMD128-NEXT:    i32.store16 14($0), $pop46341; NO-SIMD128-NEXT:    i32.const $push46=, 655356342; NO-SIMD128-NEXT:    i32.and $push6=, $7, $pop466343; NO-SIMD128-NEXT:    i32.const $push45=, 655356344; NO-SIMD128-NEXT:    i32.and $push5=, $15, $pop456345; NO-SIMD128-NEXT:    i32.gt_u $push7=, $pop6, $pop56346; NO-SIMD128-NEXT:    i32.select $push8=, $7, $15, $pop76347; NO-SIMD128-NEXT:    i32.store16 12($0), $pop86348; NO-SIMD128-NEXT:    i32.const $push44=, 655356349; NO-SIMD128-NEXT:    i32.and $push10=, $6, $pop446350; NO-SIMD128-NEXT:    i32.const $push43=, 655356351; NO-SIMD128-NEXT:    i32.and $push9=, $14, $pop436352; NO-SIMD128-NEXT:    i32.gt_u $push11=, $pop10, $pop96353; NO-SIMD128-NEXT:    i32.select $push12=, $6, $14, $pop116354; NO-SIMD128-NEXT:    i32.store16 10($0), $pop126355; NO-SIMD128-NEXT:    i32.const $push42=, 655356356; NO-SIMD128-NEXT:    i32.and $push14=, $5, $pop426357; NO-SIMD128-NEXT:    i32.const $push41=, 655356358; NO-SIMD128-NEXT:    i32.and $push13=, $13, $pop416359; NO-SIMD128-NEXT:    i32.gt_u $push15=, $pop14, $pop136360; NO-SIMD128-NEXT:    i32.select $push16=, $5, $13, $pop156361; NO-SIMD128-NEXT:    i32.store16 8($0), $pop166362; NO-SIMD128-NEXT:    i32.const $push40=, 655356363; NO-SIMD128-NEXT:    i32.and $push18=, $4, $pop406364; NO-SIMD128-NEXT:    i32.const $push39=, 655356365; NO-SIMD128-NEXT:    i32.and $push17=, $12, $pop396366; NO-SIMD128-NEXT:    i32.gt_u $push19=, $pop18, $pop176367; NO-SIMD128-NEXT:    i32.select $push20=, $4, $12, $pop196368; NO-SIMD128-NEXT:    i32.store16 6($0), $pop206369; NO-SIMD128-NEXT:    i32.const $push38=, 655356370; NO-SIMD128-NEXT:    i32.and $push22=, $3, $pop386371; NO-SIMD128-NEXT:    i32.const $push37=, 655356372; NO-SIMD128-NEXT:    i32.and $push21=, $11, $pop376373; NO-SIMD128-NEXT:    i32.gt_u $push23=, $pop22, $pop216374; NO-SIMD128-NEXT:    i32.select $push24=, $3, $11, $pop236375; NO-SIMD128-NEXT:    i32.store16 4($0), $pop246376; NO-SIMD128-NEXT:    i32.const $push36=, 655356377; NO-SIMD128-NEXT:    i32.and $push26=, $2, $pop366378; NO-SIMD128-NEXT:    i32.const $push35=, 655356379; NO-SIMD128-NEXT:    i32.and $push25=, $10, $pop356380; NO-SIMD128-NEXT:    i32.gt_u $push27=, $pop26, $pop256381; NO-SIMD128-NEXT:    i32.select $push28=, $2, $10, $pop276382; NO-SIMD128-NEXT:    i32.store16 2($0), $pop286383; NO-SIMD128-NEXT:    i32.const $push34=, 655356384; NO-SIMD128-NEXT:    i32.and $push30=, $1, $pop346385; NO-SIMD128-NEXT:    i32.const $push33=, 655356386; NO-SIMD128-NEXT:    i32.and $push29=, $9, $pop336387; NO-SIMD128-NEXT:    i32.gt_u $push31=, $pop30, $pop296388; NO-SIMD128-NEXT:    i32.select $push32=, $1, $9, $pop316389; NO-SIMD128-NEXT:    i32.store16 0($0), $pop326390; NO-SIMD128-NEXT:    return6391;6392; NO-SIMD128-FAST-LABEL: max_u_v8i16:6393; NO-SIMD128-FAST:         .functype max_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6394; NO-SIMD128-FAST-NEXT:  # %bb.0:6395; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655356396; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop06397; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 655356398; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop476399; NO-SIMD128-FAST-NEXT:    i32.gt_u $push3=, $pop2, $pop16400; NO-SIMD128-FAST-NEXT:    i32.select $push4=, $1, $9, $pop36401; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop46402; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 655356403; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $2, $pop466404; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 655356405; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $10, $pop456406; NO-SIMD128-FAST-NEXT:    i32.gt_u $push7=, $pop6, $pop56407; NO-SIMD128-FAST-NEXT:    i32.select $push8=, $2, $10, $pop76408; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop86409; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 655356410; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $3, $pop446411; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 655356412; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $11, $pop436413; NO-SIMD128-FAST-NEXT:    i32.gt_u $push11=, $pop10, $pop96414; NO-SIMD128-FAST-NEXT:    i32.select $push12=, $3, $11, $pop116415; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop126416; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 655356417; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $4, $pop426418; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 655356419; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $12, $pop416420; NO-SIMD128-FAST-NEXT:    i32.gt_u $push15=, $pop14, $pop136421; NO-SIMD128-FAST-NEXT:    i32.select $push16=, $4, $12, $pop156422; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop166423; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 655356424; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $5, $pop406425; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 655356426; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $13, $pop396427; NO-SIMD128-FAST-NEXT:    i32.gt_u $push19=, $pop18, $pop176428; NO-SIMD128-FAST-NEXT:    i32.select $push20=, $5, $13, $pop196429; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop206430; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 655356431; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $6, $pop386432; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 655356433; NO-SIMD128-FAST-NEXT:    i32.and $push21=, $14, $pop376434; NO-SIMD128-FAST-NEXT:    i32.gt_u $push23=, $pop22, $pop216435; NO-SIMD128-FAST-NEXT:    i32.select $push24=, $6, $14, $pop236436; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop246437; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 655356438; NO-SIMD128-FAST-NEXT:    i32.and $push26=, $7, $pop366439; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 655356440; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $15, $pop356441; NO-SIMD128-FAST-NEXT:    i32.gt_u $push27=, $pop26, $pop256442; NO-SIMD128-FAST-NEXT:    i32.select $push28=, $7, $15, $pop276443; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop286444; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 655356445; NO-SIMD128-FAST-NEXT:    i32.and $push30=, $8, $pop346446; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 655356447; NO-SIMD128-FAST-NEXT:    i32.and $push29=, $16, $pop336448; NO-SIMD128-FAST-NEXT:    i32.gt_u $push31=, $pop30, $pop296449; NO-SIMD128-FAST-NEXT:    i32.select $push32=, $8, $16, $pop316450; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop326451; NO-SIMD128-FAST-NEXT:    return6452  %c = icmp ugt <8 x i16> %x, %y6453  %a = select <8 x i1> %c, <8 x i16> %x, <8 x i16> %y6454  ret <8 x i16> %a6455}6456 6457define <8 x i16> @avgr_u_v8i16(<8 x i16> %x, <8 x i16> %y) {6458; SIMD128-LABEL: avgr_u_v8i16:6459; SIMD128:         .functype avgr_u_v8i16 (v128, v128) -> (v128)6460; SIMD128-NEXT:  # %bb.0:6461; SIMD128-NEXT:    i16x8.avgr_u $push0=, $0, $16462; SIMD128-NEXT:    return $pop06463;6464; SIMD128-FAST-LABEL: avgr_u_v8i16:6465; SIMD128-FAST:         .functype avgr_u_v8i16 (v128, v128) -> (v128)6466; SIMD128-FAST-NEXT:  # %bb.0:6467; SIMD128-FAST-NEXT:    i16x8.avgr_u $push0=, $0, $16468; SIMD128-FAST-NEXT:    return $pop06469;6470; NO-SIMD128-LABEL: avgr_u_v8i16:6471; NO-SIMD128:         .functype avgr_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6472; NO-SIMD128-NEXT:  # %bb.0:6473; NO-SIMD128-NEXT:    i32.add $push0=, $8, $166474; NO-SIMD128-NEXT:    i32.const $push1=, 16475; NO-SIMD128-NEXT:    i32.add $push2=, $pop0, $pop16476; NO-SIMD128-NEXT:    i32.const $push3=, 655346477; NO-SIMD128-NEXT:    i32.and $push4=, $pop2, $pop36478; NO-SIMD128-NEXT:    i32.const $push55=, 16479; NO-SIMD128-NEXT:    i32.shr_u $push5=, $pop4, $pop556480; NO-SIMD128-NEXT:    i32.store16 14($0), $pop56481; NO-SIMD128-NEXT:    i32.add $push6=, $7, $156482; NO-SIMD128-NEXT:    i32.const $push54=, 16483; NO-SIMD128-NEXT:    i32.add $push7=, $pop6, $pop546484; NO-SIMD128-NEXT:    i32.const $push53=, 655346485; NO-SIMD128-NEXT:    i32.and $push8=, $pop7, $pop536486; NO-SIMD128-NEXT:    i32.const $push52=, 16487; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop526488; NO-SIMD128-NEXT:    i32.store16 12($0), $pop96489; NO-SIMD128-NEXT:    i32.add $push10=, $6, $146490; NO-SIMD128-NEXT:    i32.const $push51=, 16491; NO-SIMD128-NEXT:    i32.add $push11=, $pop10, $pop516492; NO-SIMD128-NEXT:    i32.const $push50=, 655346493; NO-SIMD128-NEXT:    i32.and $push12=, $pop11, $pop506494; NO-SIMD128-NEXT:    i32.const $push49=, 16495; NO-SIMD128-NEXT:    i32.shr_u $push13=, $pop12, $pop496496; NO-SIMD128-NEXT:    i32.store16 10($0), $pop136497; NO-SIMD128-NEXT:    i32.add $push14=, $5, $136498; NO-SIMD128-NEXT:    i32.const $push48=, 16499; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop486500; NO-SIMD128-NEXT:    i32.const $push47=, 655346501; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $pop476502; NO-SIMD128-NEXT:    i32.const $push46=, 16503; NO-SIMD128-NEXT:    i32.shr_u $push17=, $pop16, $pop466504; NO-SIMD128-NEXT:    i32.store16 8($0), $pop176505; NO-SIMD128-NEXT:    i32.add $push18=, $4, $126506; NO-SIMD128-NEXT:    i32.const $push45=, 16507; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop456508; NO-SIMD128-NEXT:    i32.const $push44=, 655346509; NO-SIMD128-NEXT:    i32.and $push20=, $pop19, $pop446510; NO-SIMD128-NEXT:    i32.const $push43=, 16511; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop436512; NO-SIMD128-NEXT:    i32.store16 6($0), $pop216513; NO-SIMD128-NEXT:    i32.add $push22=, $3, $116514; NO-SIMD128-NEXT:    i32.const $push42=, 16515; NO-SIMD128-NEXT:    i32.add $push23=, $pop22, $pop426516; NO-SIMD128-NEXT:    i32.const $push41=, 655346517; NO-SIMD128-NEXT:    i32.and $push24=, $pop23, $pop416518; NO-SIMD128-NEXT:    i32.const $push40=, 16519; NO-SIMD128-NEXT:    i32.shr_u $push25=, $pop24, $pop406520; NO-SIMD128-NEXT:    i32.store16 4($0), $pop256521; NO-SIMD128-NEXT:    i32.add $push26=, $2, $106522; NO-SIMD128-NEXT:    i32.const $push39=, 16523; NO-SIMD128-NEXT:    i32.add $push27=, $pop26, $pop396524; NO-SIMD128-NEXT:    i32.const $push38=, 655346525; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $pop386526; NO-SIMD128-NEXT:    i32.const $push37=, 16527; NO-SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop376528; NO-SIMD128-NEXT:    i32.store16 2($0), $pop296529; NO-SIMD128-NEXT:    i32.add $push30=, $1, $96530; NO-SIMD128-NEXT:    i32.const $push36=, 16531; NO-SIMD128-NEXT:    i32.add $push31=, $pop30, $pop366532; NO-SIMD128-NEXT:    i32.const $push35=, 655346533; NO-SIMD128-NEXT:    i32.and $push32=, $pop31, $pop356534; NO-SIMD128-NEXT:    i32.const $push34=, 16535; NO-SIMD128-NEXT:    i32.shr_u $push33=, $pop32, $pop346536; NO-SIMD128-NEXT:    i32.store16 0($0), $pop336537; NO-SIMD128-NEXT:    return6538;6539; NO-SIMD128-FAST-LABEL: avgr_u_v8i16:6540; NO-SIMD128-FAST:         .functype avgr_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6541; NO-SIMD128-FAST-NEXT:  # %bb.0:6542; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $96543; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 16544; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $pop0, $pop16545; NO-SIMD128-FAST-NEXT:    i32.const $push3=, 655346546; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop2, $pop36547; NO-SIMD128-FAST-NEXT:    i32.const $push55=, 16548; NO-SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop556549; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop56550; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $2, $106551; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 16552; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $pop6, $pop546553; NO-SIMD128-FAST-NEXT:    i32.const $push53=, 655346554; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $pop7, $pop536555; NO-SIMD128-FAST-NEXT:    i32.const $push52=, 16556; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop526557; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop96558; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $3, $116559; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 16560; NO-SIMD128-FAST-NEXT:    i32.add $push11=, $pop10, $pop516561; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 655346562; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $pop11, $pop506563; NO-SIMD128-FAST-NEXT:    i32.const $push49=, 16564; NO-SIMD128-FAST-NEXT:    i32.shr_u $push13=, $pop12, $pop496565; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop136566; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $4, $126567; NO-SIMD128-FAST-NEXT:    i32.const $push48=, 16568; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop486569; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 655346570; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $pop476571; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 16572; NO-SIMD128-FAST-NEXT:    i32.shr_u $push17=, $pop16, $pop466573; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop176574; NO-SIMD128-FAST-NEXT:    i32.add $push18=, $5, $136575; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 16576; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop456577; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 655346578; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $pop19, $pop446579; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 16580; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop436581; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop216582; NO-SIMD128-FAST-NEXT:    i32.add $push22=, $6, $146583; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 16584; NO-SIMD128-FAST-NEXT:    i32.add $push23=, $pop22, $pop426585; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 655346586; NO-SIMD128-FAST-NEXT:    i32.and $push24=, $pop23, $pop416587; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 16588; NO-SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop406589; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop256590; NO-SIMD128-FAST-NEXT:    i32.add $push26=, $7, $156591; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 16592; NO-SIMD128-FAST-NEXT:    i32.add $push27=, $pop26, $pop396593; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 655346594; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop386595; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 16596; NO-SIMD128-FAST-NEXT:    i32.shr_u $push29=, $pop28, $pop376597; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop296598; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $8, $166599; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 16600; NO-SIMD128-FAST-NEXT:    i32.add $push31=, $pop30, $pop366601; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 655346602; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $pop31, $pop356603; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 16604; NO-SIMD128-FAST-NEXT:    i32.shr_u $push33=, $pop32, $pop346605; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop336606; NO-SIMD128-FAST-NEXT:    return6607  %a = add nuw <8 x i16> %x, %y6608  %b = add nuw <8 x i16> %a, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>6609  %c = udiv <8 x i16> %b, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>6610  ret <8 x i16> %c6611}6612 6613define <8 x i16> @avgr_u_v8i16_wrap(<8 x i16> %x, <8 x i16> %y) {6614; SIMD128-LABEL: avgr_u_v8i16_wrap:6615; SIMD128:         .functype avgr_u_v8i16_wrap (v128, v128) -> (v128)6616; SIMD128-NEXT:  # %bb.0:6617; SIMD128-NEXT:    i16x8.add $push0=, $0, $16618; SIMD128-NEXT:    v128.const $push1=, 1, 1, 1, 1, 1, 1, 1, 16619; SIMD128-NEXT:    i16x8.add $push2=, $pop0, $pop16620; SIMD128-NEXT:    i32.const $push3=, 16621; SIMD128-NEXT:    i16x8.shr_u $push4=, $pop2, $pop36622; SIMD128-NEXT:    return $pop46623;6624; SIMD128-FAST-LABEL: avgr_u_v8i16_wrap:6625; SIMD128-FAST:         .functype avgr_u_v8i16_wrap (v128, v128) -> (v128)6626; SIMD128-FAST-NEXT:  # %bb.0:6627; SIMD128-FAST-NEXT:    i16x8.add $push2=, $0, $16628; SIMD128-FAST-NEXT:    v128.const $push3=, 1, 1, 1, 1, 1, 1, 1, 16629; SIMD128-FAST-NEXT:    i16x8.add $push1=, $pop2, $pop36630; SIMD128-FAST-NEXT:    i32.const $push4=, 16631; SIMD128-FAST-NEXT:    i16x8.shr_u $push0=, $pop1, $pop46632; SIMD128-FAST-NEXT:    return $pop06633;6634; NO-SIMD128-LABEL: avgr_u_v8i16_wrap:6635; NO-SIMD128:         .functype avgr_u_v8i16_wrap (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6636; NO-SIMD128-NEXT:  # %bb.0:6637; NO-SIMD128-NEXT:    i32.add $push0=, $8, $166638; NO-SIMD128-NEXT:    i32.const $push1=, 16639; NO-SIMD128-NEXT:    i32.add $push2=, $pop0, $pop16640; NO-SIMD128-NEXT:    i32.const $push3=, 655346641; NO-SIMD128-NEXT:    i32.and $push4=, $pop2, $pop36642; NO-SIMD128-NEXT:    i32.const $push55=, 16643; NO-SIMD128-NEXT:    i32.shr_u $push5=, $pop4, $pop556644; NO-SIMD128-NEXT:    i32.store16 14($0), $pop56645; NO-SIMD128-NEXT:    i32.add $push6=, $7, $156646; NO-SIMD128-NEXT:    i32.const $push54=, 16647; NO-SIMD128-NEXT:    i32.add $push7=, $pop6, $pop546648; NO-SIMD128-NEXT:    i32.const $push53=, 655346649; NO-SIMD128-NEXT:    i32.and $push8=, $pop7, $pop536650; NO-SIMD128-NEXT:    i32.const $push52=, 16651; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop526652; NO-SIMD128-NEXT:    i32.store16 12($0), $pop96653; NO-SIMD128-NEXT:    i32.add $push10=, $6, $146654; NO-SIMD128-NEXT:    i32.const $push51=, 16655; NO-SIMD128-NEXT:    i32.add $push11=, $pop10, $pop516656; NO-SIMD128-NEXT:    i32.const $push50=, 655346657; NO-SIMD128-NEXT:    i32.and $push12=, $pop11, $pop506658; NO-SIMD128-NEXT:    i32.const $push49=, 16659; NO-SIMD128-NEXT:    i32.shr_u $push13=, $pop12, $pop496660; NO-SIMD128-NEXT:    i32.store16 10($0), $pop136661; NO-SIMD128-NEXT:    i32.add $push14=, $5, $136662; NO-SIMD128-NEXT:    i32.const $push48=, 16663; NO-SIMD128-NEXT:    i32.add $push15=, $pop14, $pop486664; NO-SIMD128-NEXT:    i32.const $push47=, 655346665; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $pop476666; NO-SIMD128-NEXT:    i32.const $push46=, 16667; NO-SIMD128-NEXT:    i32.shr_u $push17=, $pop16, $pop466668; NO-SIMD128-NEXT:    i32.store16 8($0), $pop176669; NO-SIMD128-NEXT:    i32.add $push18=, $4, $126670; NO-SIMD128-NEXT:    i32.const $push45=, 16671; NO-SIMD128-NEXT:    i32.add $push19=, $pop18, $pop456672; NO-SIMD128-NEXT:    i32.const $push44=, 655346673; NO-SIMD128-NEXT:    i32.and $push20=, $pop19, $pop446674; NO-SIMD128-NEXT:    i32.const $push43=, 16675; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop436676; NO-SIMD128-NEXT:    i32.store16 6($0), $pop216677; NO-SIMD128-NEXT:    i32.add $push22=, $3, $116678; NO-SIMD128-NEXT:    i32.const $push42=, 16679; NO-SIMD128-NEXT:    i32.add $push23=, $pop22, $pop426680; NO-SIMD128-NEXT:    i32.const $push41=, 655346681; NO-SIMD128-NEXT:    i32.and $push24=, $pop23, $pop416682; NO-SIMD128-NEXT:    i32.const $push40=, 16683; NO-SIMD128-NEXT:    i32.shr_u $push25=, $pop24, $pop406684; NO-SIMD128-NEXT:    i32.store16 4($0), $pop256685; NO-SIMD128-NEXT:    i32.add $push26=, $2, $106686; NO-SIMD128-NEXT:    i32.const $push39=, 16687; NO-SIMD128-NEXT:    i32.add $push27=, $pop26, $pop396688; NO-SIMD128-NEXT:    i32.const $push38=, 655346689; NO-SIMD128-NEXT:    i32.and $push28=, $pop27, $pop386690; NO-SIMD128-NEXT:    i32.const $push37=, 16691; NO-SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop376692; NO-SIMD128-NEXT:    i32.store16 2($0), $pop296693; NO-SIMD128-NEXT:    i32.add $push30=, $1, $96694; NO-SIMD128-NEXT:    i32.const $push36=, 16695; NO-SIMD128-NEXT:    i32.add $push31=, $pop30, $pop366696; NO-SIMD128-NEXT:    i32.const $push35=, 655346697; NO-SIMD128-NEXT:    i32.and $push32=, $pop31, $pop356698; NO-SIMD128-NEXT:    i32.const $push34=, 16699; NO-SIMD128-NEXT:    i32.shr_u $push33=, $pop32, $pop346700; NO-SIMD128-NEXT:    i32.store16 0($0), $pop336701; NO-SIMD128-NEXT:    return6702;6703; NO-SIMD128-FAST-LABEL: avgr_u_v8i16_wrap:6704; NO-SIMD128-FAST:         .functype avgr_u_v8i16_wrap (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6705; NO-SIMD128-FAST-NEXT:  # %bb.0:6706; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $96707; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 16708; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $pop0, $pop16709; NO-SIMD128-FAST-NEXT:    i32.const $push3=, 655346710; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop2, $pop36711; NO-SIMD128-FAST-NEXT:    i32.const $push55=, 16712; NO-SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop556713; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop56714; NO-SIMD128-FAST-NEXT:    i32.add $push6=, $2, $106715; NO-SIMD128-FAST-NEXT:    i32.const $push54=, 16716; NO-SIMD128-FAST-NEXT:    i32.add $push7=, $pop6, $pop546717; NO-SIMD128-FAST-NEXT:    i32.const $push53=, 655346718; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $pop7, $pop536719; NO-SIMD128-FAST-NEXT:    i32.const $push52=, 16720; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop526721; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop96722; NO-SIMD128-FAST-NEXT:    i32.add $push10=, $3, $116723; NO-SIMD128-FAST-NEXT:    i32.const $push51=, 16724; NO-SIMD128-FAST-NEXT:    i32.add $push11=, $pop10, $pop516725; NO-SIMD128-FAST-NEXT:    i32.const $push50=, 655346726; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $pop11, $pop506727; NO-SIMD128-FAST-NEXT:    i32.const $push49=, 16728; NO-SIMD128-FAST-NEXT:    i32.shr_u $push13=, $pop12, $pop496729; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop136730; NO-SIMD128-FAST-NEXT:    i32.add $push14=, $4, $126731; NO-SIMD128-FAST-NEXT:    i32.const $push48=, 16732; NO-SIMD128-FAST-NEXT:    i32.add $push15=, $pop14, $pop486733; NO-SIMD128-FAST-NEXT:    i32.const $push47=, 655346734; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $pop476735; NO-SIMD128-FAST-NEXT:    i32.const $push46=, 16736; NO-SIMD128-FAST-NEXT:    i32.shr_u $push17=, $pop16, $pop466737; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop176738; NO-SIMD128-FAST-NEXT:    i32.add $push18=, $5, $136739; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 16740; NO-SIMD128-FAST-NEXT:    i32.add $push19=, $pop18, $pop456741; NO-SIMD128-FAST-NEXT:    i32.const $push44=, 655346742; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $pop19, $pop446743; NO-SIMD128-FAST-NEXT:    i32.const $push43=, 16744; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop436745; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop216746; NO-SIMD128-FAST-NEXT:    i32.add $push22=, $6, $146747; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 16748; NO-SIMD128-FAST-NEXT:    i32.add $push23=, $pop22, $pop426749; NO-SIMD128-FAST-NEXT:    i32.const $push41=, 655346750; NO-SIMD128-FAST-NEXT:    i32.and $push24=, $pop23, $pop416751; NO-SIMD128-FAST-NEXT:    i32.const $push40=, 16752; NO-SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop406753; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop256754; NO-SIMD128-FAST-NEXT:    i32.add $push26=, $7, $156755; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 16756; NO-SIMD128-FAST-NEXT:    i32.add $push27=, $pop26, $pop396757; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 655346758; NO-SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop386759; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 16760; NO-SIMD128-FAST-NEXT:    i32.shr_u $push29=, $pop28, $pop376761; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop296762; NO-SIMD128-FAST-NEXT:    i32.add $push30=, $8, $166763; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 16764; NO-SIMD128-FAST-NEXT:    i32.add $push31=, $pop30, $pop366765; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 655346766; NO-SIMD128-FAST-NEXT:    i32.and $push32=, $pop31, $pop356767; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 16768; NO-SIMD128-FAST-NEXT:    i32.shr_u $push33=, $pop32, $pop346769; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop336770; NO-SIMD128-FAST-NEXT:    return6771  %a = add <8 x i16> %x, %y6772  %b = add <8 x i16> %a, <i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1>6773  %c = udiv <8 x i16> %b, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>6774  ret <8 x i16> %c6775}6776 6777define <8 x i16> @abs_v8i16(<8 x i16> %x) {6778; SIMD128-LABEL: abs_v8i16:6779; SIMD128:         .functype abs_v8i16 (v128) -> (v128)6780; SIMD128-NEXT:  # %bb.0:6781; SIMD128-NEXT:    i16x8.abs $push0=, $06782; SIMD128-NEXT:    return $pop06783;6784; SIMD128-FAST-LABEL: abs_v8i16:6785; SIMD128-FAST:         .functype abs_v8i16 (v128) -> (v128)6786; SIMD128-FAST-NEXT:  # %bb.0:6787; SIMD128-FAST-NEXT:    i16x8.abs $push0=, $06788; SIMD128-FAST-NEXT:    return $pop06789;6790; NO-SIMD128-LABEL: abs_v8i16:6791; NO-SIMD128:         .functype abs_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6792; NO-SIMD128-NEXT:  # %bb.0:6793; NO-SIMD128-NEXT:    i32.extend16_s $push0=, $86794; NO-SIMD128-NEXT:    i32.const $push1=, 156795; NO-SIMD128-NEXT:    i32.shr_s $push47=, $pop0, $pop16796; NO-SIMD128-NEXT:    local.tee $push46=, $9=, $pop476797; NO-SIMD128-NEXT:    i32.xor $push2=, $8, $pop466798; NO-SIMD128-NEXT:    i32.sub $push3=, $pop2, $96799; NO-SIMD128-NEXT:    i32.store16 14($0), $pop36800; NO-SIMD128-NEXT:    i32.extend16_s $push4=, $76801; NO-SIMD128-NEXT:    i32.const $push45=, 156802; NO-SIMD128-NEXT:    i32.shr_s $push44=, $pop4, $pop456803; NO-SIMD128-NEXT:    local.tee $push43=, $8=, $pop446804; NO-SIMD128-NEXT:    i32.xor $push5=, $7, $pop436805; NO-SIMD128-NEXT:    i32.sub $push6=, $pop5, $86806; NO-SIMD128-NEXT:    i32.store16 12($0), $pop66807; NO-SIMD128-NEXT:    i32.extend16_s $push7=, $66808; NO-SIMD128-NEXT:    i32.const $push42=, 156809; NO-SIMD128-NEXT:    i32.shr_s $push41=, $pop7, $pop426810; NO-SIMD128-NEXT:    local.tee $push40=, $8=, $pop416811; NO-SIMD128-NEXT:    i32.xor $push8=, $6, $pop406812; NO-SIMD128-NEXT:    i32.sub $push9=, $pop8, $86813; NO-SIMD128-NEXT:    i32.store16 10($0), $pop96814; NO-SIMD128-NEXT:    i32.extend16_s $push10=, $56815; NO-SIMD128-NEXT:    i32.const $push39=, 156816; NO-SIMD128-NEXT:    i32.shr_s $push38=, $pop10, $pop396817; NO-SIMD128-NEXT:    local.tee $push37=, $8=, $pop386818; NO-SIMD128-NEXT:    i32.xor $push11=, $5, $pop376819; NO-SIMD128-NEXT:    i32.sub $push12=, $pop11, $86820; NO-SIMD128-NEXT:    i32.store16 8($0), $pop126821; NO-SIMD128-NEXT:    i32.extend16_s $push13=, $46822; NO-SIMD128-NEXT:    i32.const $push36=, 156823; NO-SIMD128-NEXT:    i32.shr_s $push35=, $pop13, $pop366824; NO-SIMD128-NEXT:    local.tee $push34=, $8=, $pop356825; NO-SIMD128-NEXT:    i32.xor $push14=, $4, $pop346826; NO-SIMD128-NEXT:    i32.sub $push15=, $pop14, $86827; NO-SIMD128-NEXT:    i32.store16 6($0), $pop156828; NO-SIMD128-NEXT:    i32.extend16_s $push16=, $36829; NO-SIMD128-NEXT:    i32.const $push33=, 156830; NO-SIMD128-NEXT:    i32.shr_s $push32=, $pop16, $pop336831; NO-SIMD128-NEXT:    local.tee $push31=, $8=, $pop326832; NO-SIMD128-NEXT:    i32.xor $push17=, $3, $pop316833; NO-SIMD128-NEXT:    i32.sub $push18=, $pop17, $86834; NO-SIMD128-NEXT:    i32.store16 4($0), $pop186835; NO-SIMD128-NEXT:    i32.extend16_s $push19=, $26836; NO-SIMD128-NEXT:    i32.const $push30=, 156837; NO-SIMD128-NEXT:    i32.shr_s $push29=, $pop19, $pop306838; NO-SIMD128-NEXT:    local.tee $push28=, $8=, $pop296839; NO-SIMD128-NEXT:    i32.xor $push20=, $2, $pop286840; NO-SIMD128-NEXT:    i32.sub $push21=, $pop20, $86841; NO-SIMD128-NEXT:    i32.store16 2($0), $pop216842; NO-SIMD128-NEXT:    i32.extend16_s $push22=, $16843; NO-SIMD128-NEXT:    i32.const $push27=, 156844; NO-SIMD128-NEXT:    i32.shr_s $push26=, $pop22, $pop276845; NO-SIMD128-NEXT:    local.tee $push25=, $8=, $pop266846; NO-SIMD128-NEXT:    i32.xor $push23=, $1, $pop256847; NO-SIMD128-NEXT:    i32.sub $push24=, $pop23, $86848; NO-SIMD128-NEXT:    i32.store16 0($0), $pop246849; NO-SIMD128-NEXT:    return6850;6851; NO-SIMD128-FAST-LABEL: abs_v8i16:6852; NO-SIMD128-FAST:         .functype abs_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6853; NO-SIMD128-FAST-NEXT:  # %bb.0:6854; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push0=, $16855; NO-SIMD128-FAST-NEXT:    i32.const $push1=, 156856; NO-SIMD128-FAST-NEXT:    i32.shr_s $push47=, $pop0, $pop16857; NO-SIMD128-FAST-NEXT:    local.tee $push46=, $9=, $pop476858; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $1, $pop466859; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $pop2, $96860; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop36861; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push4=, $26862; NO-SIMD128-FAST-NEXT:    i32.const $push45=, 156863; NO-SIMD128-FAST-NEXT:    i32.shr_s $push44=, $pop4, $pop456864; NO-SIMD128-FAST-NEXT:    local.tee $push43=, $1=, $pop446865; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $2, $pop436866; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $pop5, $16867; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop66868; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push7=, $36869; NO-SIMD128-FAST-NEXT:    i32.const $push42=, 156870; NO-SIMD128-FAST-NEXT:    i32.shr_s $push41=, $pop7, $pop426871; NO-SIMD128-FAST-NEXT:    local.tee $push40=, $2=, $pop416872; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $3, $pop406873; NO-SIMD128-FAST-NEXT:    i32.sub $push9=, $pop8, $26874; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop96875; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push10=, $46876; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 156877; NO-SIMD128-FAST-NEXT:    i32.shr_s $push38=, $pop10, $pop396878; NO-SIMD128-FAST-NEXT:    local.tee $push37=, $3=, $pop386879; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $4, $pop376880; NO-SIMD128-FAST-NEXT:    i32.sub $push12=, $pop11, $36881; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop126882; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push13=, $56883; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 156884; NO-SIMD128-FAST-NEXT:    i32.shr_s $push35=, $pop13, $pop366885; NO-SIMD128-FAST-NEXT:    local.tee $push34=, $4=, $pop356886; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $5, $pop346887; NO-SIMD128-FAST-NEXT:    i32.sub $push15=, $pop14, $46888; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop156889; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push16=, $66890; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 156891; NO-SIMD128-FAST-NEXT:    i32.shr_s $push32=, $pop16, $pop336892; NO-SIMD128-FAST-NEXT:    local.tee $push31=, $5=, $pop326893; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $6, $pop316894; NO-SIMD128-FAST-NEXT:    i32.sub $push18=, $pop17, $56895; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop186896; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push19=, $76897; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 156898; NO-SIMD128-FAST-NEXT:    i32.shr_s $push29=, $pop19, $pop306899; NO-SIMD128-FAST-NEXT:    local.tee $push28=, $6=, $pop296900; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $7, $pop286901; NO-SIMD128-FAST-NEXT:    i32.sub $push21=, $pop20, $66902; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop216903; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push22=, $86904; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 156905; NO-SIMD128-FAST-NEXT:    i32.shr_s $push26=, $pop22, $pop276906; NO-SIMD128-FAST-NEXT:    local.tee $push25=, $7=, $pop266907; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $8, $pop256908; NO-SIMD128-FAST-NEXT:    i32.sub $push24=, $pop23, $76909; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop246910; NO-SIMD128-FAST-NEXT:    return6911  %a = sub <8 x i16> zeroinitializer, %x6912  %b = icmp slt <8 x i16> %x, zeroinitializer6913  %c = select <8 x i1> %b, <8 x i16> %a, <8 x i16> %x6914  ret <8 x i16> %c6915}6916 6917define <8 x i16> @neg_v8i16(<8 x i16> %x) {6918; SIMD128-LABEL: neg_v8i16:6919; SIMD128:         .functype neg_v8i16 (v128) -> (v128)6920; SIMD128-NEXT:  # %bb.0:6921; SIMD128-NEXT:    i16x8.neg $push0=, $06922; SIMD128-NEXT:    return $pop06923;6924; SIMD128-FAST-LABEL: neg_v8i16:6925; SIMD128-FAST:         .functype neg_v8i16 (v128) -> (v128)6926; SIMD128-FAST-NEXT:  # %bb.0:6927; SIMD128-FAST-NEXT:    i16x8.neg $push0=, $06928; SIMD128-FAST-NEXT:    return $pop06929;6930; NO-SIMD128-LABEL: neg_v8i16:6931; NO-SIMD128:         .functype neg_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6932; NO-SIMD128-NEXT:  # %bb.0:6933; NO-SIMD128-NEXT:    i32.const $push0=, 06934; NO-SIMD128-NEXT:    i32.sub $push1=, $pop0, $86935; NO-SIMD128-NEXT:    i32.store16 14($0), $pop16936; NO-SIMD128-NEXT:    i32.const $push15=, 06937; NO-SIMD128-NEXT:    i32.sub $push2=, $pop15, $76938; NO-SIMD128-NEXT:    i32.store16 12($0), $pop26939; NO-SIMD128-NEXT:    i32.const $push14=, 06940; NO-SIMD128-NEXT:    i32.sub $push3=, $pop14, $66941; NO-SIMD128-NEXT:    i32.store16 10($0), $pop36942; NO-SIMD128-NEXT:    i32.const $push13=, 06943; NO-SIMD128-NEXT:    i32.sub $push4=, $pop13, $56944; NO-SIMD128-NEXT:    i32.store16 8($0), $pop46945; NO-SIMD128-NEXT:    i32.const $push12=, 06946; NO-SIMD128-NEXT:    i32.sub $push5=, $pop12, $46947; NO-SIMD128-NEXT:    i32.store16 6($0), $pop56948; NO-SIMD128-NEXT:    i32.const $push11=, 06949; NO-SIMD128-NEXT:    i32.sub $push6=, $pop11, $36950; NO-SIMD128-NEXT:    i32.store16 4($0), $pop66951; NO-SIMD128-NEXT:    i32.const $push10=, 06952; NO-SIMD128-NEXT:    i32.sub $push7=, $pop10, $26953; NO-SIMD128-NEXT:    i32.store16 2($0), $pop76954; NO-SIMD128-NEXT:    i32.const $push9=, 06955; NO-SIMD128-NEXT:    i32.sub $push8=, $pop9, $16956; NO-SIMD128-NEXT:    i32.store16 0($0), $pop86957; NO-SIMD128-NEXT:    return6958;6959; NO-SIMD128-FAST-LABEL: neg_v8i16:6960; NO-SIMD128-FAST:         .functype neg_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()6961; NO-SIMD128-FAST-NEXT:  # %bb.0:6962; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 06963; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $pop0, $16964; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop16965; NO-SIMD128-FAST-NEXT:    i32.const $push15=, 06966; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $pop15, $26967; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop26968; NO-SIMD128-FAST-NEXT:    i32.const $push14=, 06969; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $pop14, $36970; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop36971; NO-SIMD128-FAST-NEXT:    i32.const $push13=, 06972; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $pop13, $46973; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop46974; NO-SIMD128-FAST-NEXT:    i32.const $push12=, 06975; NO-SIMD128-FAST-NEXT:    i32.sub $push5=, $pop12, $56976; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop56977; NO-SIMD128-FAST-NEXT:    i32.const $push11=, 06978; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $pop11, $66979; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop66980; NO-SIMD128-FAST-NEXT:    i32.const $push10=, 06981; NO-SIMD128-FAST-NEXT:    i32.sub $push7=, $pop10, $76982; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop76983; NO-SIMD128-FAST-NEXT:    i32.const $push9=, 06984; NO-SIMD128-FAST-NEXT:    i32.sub $push8=, $pop9, $86985; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop86986; NO-SIMD128-FAST-NEXT:    return6987  %a = sub <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>,6988                     %x6989  ret <8 x i16> %a6990}6991 6992define <8 x i16> @shl_v8i16(<8 x i16> %v, i16 %x) {6993; SIMD128-LABEL: shl_v8i16:6994; SIMD128:         .functype shl_v8i16 (v128, i32) -> (v128)6995; SIMD128-NEXT:  # %bb.0:6996; SIMD128-NEXT:    i16x8.shl $push0=, $0, $16997; SIMD128-NEXT:    return $pop06998;6999; SIMD128-FAST-LABEL: shl_v8i16:7000; SIMD128-FAST:         .functype shl_v8i16 (v128, i32) -> (v128)7001; SIMD128-FAST-NEXT:  # %bb.0:7002; SIMD128-FAST-NEXT:    i16x8.shl $push0=, $0, $17003; SIMD128-FAST-NEXT:    return $pop07004;7005; NO-SIMD128-LABEL: shl_v8i16:7006; NO-SIMD128:         .functype shl_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7007; NO-SIMD128-NEXT:  # %bb.0:7008; NO-SIMD128-NEXT:    i32.const $push0=, 655357009; NO-SIMD128-NEXT:    i32.and $push10=, $9, $pop07010; NO-SIMD128-NEXT:    local.tee $push9=, $9=, $pop107011; NO-SIMD128-NEXT:    i32.shl $push1=, $8, $pop97012; NO-SIMD128-NEXT:    i32.store16 14($0), $pop17013; NO-SIMD128-NEXT:    i32.shl $push2=, $7, $97014; NO-SIMD128-NEXT:    i32.store16 12($0), $pop27015; NO-SIMD128-NEXT:    i32.shl $push3=, $6, $97016; NO-SIMD128-NEXT:    i32.store16 10($0), $pop37017; NO-SIMD128-NEXT:    i32.shl $push4=, $5, $97018; NO-SIMD128-NEXT:    i32.store16 8($0), $pop47019; NO-SIMD128-NEXT:    i32.shl $push5=, $4, $97020; NO-SIMD128-NEXT:    i32.store16 6($0), $pop57021; NO-SIMD128-NEXT:    i32.shl $push6=, $3, $97022; NO-SIMD128-NEXT:    i32.store16 4($0), $pop67023; NO-SIMD128-NEXT:    i32.shl $push7=, $2, $97024; NO-SIMD128-NEXT:    i32.store16 2($0), $pop77025; NO-SIMD128-NEXT:    i32.shl $push8=, $1, $97026; NO-SIMD128-NEXT:    i32.store16 0($0), $pop87027; NO-SIMD128-NEXT:    return7028;7029; NO-SIMD128-FAST-LABEL: shl_v8i16:7030; NO-SIMD128-FAST:         .functype shl_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7031; NO-SIMD128-FAST-NEXT:  # %bb.0:7032; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357033; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $9, $pop07034; NO-SIMD128-FAST-NEXT:    local.tee $push9=, $9=, $pop107035; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $2, $pop97036; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop17037; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $1, $97038; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop27039; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $3, $97040; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop37041; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $4, $97042; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop47043; NO-SIMD128-FAST-NEXT:    i32.shl $push5=, $5, $97044; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop57045; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $6, $97046; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop67047; NO-SIMD128-FAST-NEXT:    i32.shl $push7=, $7, $97048; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop77049; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $8, $97050; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop87051; NO-SIMD128-FAST-NEXT:    return7052  %t = insertelement <8 x i16> undef, i16 %x, i32 07053  %s = shufflevector <8 x i16> %t, <8 x i16> undef,7054    <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>7055  %a = shl <8 x i16> %v, %s7056  ret <8 x i16> %a7057}7058 7059define <8 x i16> @shl_const_v8i16(<8 x i16> %v) {7060; SIMD128-LABEL: shl_const_v8i16:7061; SIMD128:         .functype shl_const_v8i16 (v128) -> (v128)7062; SIMD128-NEXT:  # %bb.0:7063; SIMD128-NEXT:    i32.const $push0=, 57064; SIMD128-NEXT:    i16x8.shl $push1=, $0, $pop07065; SIMD128-NEXT:    return $pop17066;7067; SIMD128-FAST-LABEL: shl_const_v8i16:7068; SIMD128-FAST:         .functype shl_const_v8i16 (v128) -> (v128)7069; SIMD128-FAST-NEXT:  # %bb.0:7070; SIMD128-FAST-NEXT:    i32.const $push1=, 57071; SIMD128-FAST-NEXT:    i16x8.shl $push0=, $0, $pop17072; SIMD128-FAST-NEXT:    return $pop07073;7074; NO-SIMD128-LABEL: shl_const_v8i16:7075; NO-SIMD128:         .functype shl_const_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7076; NO-SIMD128-NEXT:  # %bb.0:7077; NO-SIMD128-NEXT:    i32.const $push0=, 57078; NO-SIMD128-NEXT:    i32.shl $push1=, $8, $pop07079; NO-SIMD128-NEXT:    i32.store16 14($0), $pop17080; NO-SIMD128-NEXT:    i32.const $push15=, 57081; NO-SIMD128-NEXT:    i32.shl $push2=, $7, $pop157082; NO-SIMD128-NEXT:    i32.store16 12($0), $pop27083; NO-SIMD128-NEXT:    i32.const $push14=, 57084; NO-SIMD128-NEXT:    i32.shl $push3=, $6, $pop147085; NO-SIMD128-NEXT:    i32.store16 10($0), $pop37086; NO-SIMD128-NEXT:    i32.const $push13=, 57087; NO-SIMD128-NEXT:    i32.shl $push4=, $5, $pop137088; NO-SIMD128-NEXT:    i32.store16 8($0), $pop47089; NO-SIMD128-NEXT:    i32.const $push12=, 57090; NO-SIMD128-NEXT:    i32.shl $push5=, $4, $pop127091; NO-SIMD128-NEXT:    i32.store16 6($0), $pop57092; NO-SIMD128-NEXT:    i32.const $push11=, 57093; NO-SIMD128-NEXT:    i32.shl $push6=, $3, $pop117094; NO-SIMD128-NEXT:    i32.store16 4($0), $pop67095; NO-SIMD128-NEXT:    i32.const $push10=, 57096; NO-SIMD128-NEXT:    i32.shl $push7=, $2, $pop107097; NO-SIMD128-NEXT:    i32.store16 2($0), $pop77098; NO-SIMD128-NEXT:    i32.const $push9=, 57099; NO-SIMD128-NEXT:    i32.shl $push8=, $1, $pop97100; NO-SIMD128-NEXT:    i32.store16 0($0), $pop87101; NO-SIMD128-NEXT:    return7102;7103; NO-SIMD128-FAST-LABEL: shl_const_v8i16:7104; NO-SIMD128-FAST:         .functype shl_const_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7105; NO-SIMD128-FAST-NEXT:  # %bb.0:7106; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 57107; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $1, $pop07108; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop17109; NO-SIMD128-FAST-NEXT:    i32.const $push15=, 57110; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $2, $pop157111; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop27112; NO-SIMD128-FAST-NEXT:    i32.const $push14=, 57113; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $3, $pop147114; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop37115; NO-SIMD128-FAST-NEXT:    i32.const $push13=, 57116; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $4, $pop137117; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop47118; NO-SIMD128-FAST-NEXT:    i32.const $push12=, 57119; NO-SIMD128-FAST-NEXT:    i32.shl $push5=, $5, $pop127120; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop57121; NO-SIMD128-FAST-NEXT:    i32.const $push11=, 57122; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $6, $pop117123; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop67124; NO-SIMD128-FAST-NEXT:    i32.const $push10=, 57125; NO-SIMD128-FAST-NEXT:    i32.shl $push7=, $7, $pop107126; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop77127; NO-SIMD128-FAST-NEXT:    i32.const $push9=, 57128; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $8, $pop97129; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop87130; NO-SIMD128-FAST-NEXT:    return7131  %a = shl <8 x i16> %v,7132    <i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5, i16 5>7133  ret <8 x i16> %a7134}7135 7136define <8 x i16> @shl_vec_v8i16(<8 x i16> %v, <8 x i16> %x) {7137; SIMD128-LABEL: shl_vec_v8i16:7138; SIMD128:         .functype shl_vec_v8i16 (v128, v128) -> (v128)7139; SIMD128-NEXT:  # %bb.0:7140; SIMD128-NEXT:    i16x8.extract_lane_u $push7=, $0, 07141; SIMD128-NEXT:    i16x8.extract_lane_u $push5=, $1, 07142; SIMD128-NEXT:    i32.const $push1=, 157143; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop17144; SIMD128-NEXT:    i32.shl $push8=, $pop7, $pop67145; SIMD128-NEXT:    i16x8.splat $push9=, $pop87146; SIMD128-NEXT:    i16x8.extract_lane_u $push3=, $0, 17147; SIMD128-NEXT:    i16x8.extract_lane_u $push0=, $1, 17148; SIMD128-NEXT:    i32.const $push47=, 157149; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop477150; SIMD128-NEXT:    i32.shl $push4=, $pop3, $pop27151; SIMD128-NEXT:    i16x8.replace_lane $push10=, $pop9, 1, $pop47152; SIMD128-NEXT:    i16x8.extract_lane_u $push13=, $0, 27153; SIMD128-NEXT:    i16x8.extract_lane_u $push11=, $1, 27154; SIMD128-NEXT:    i32.const $push46=, 157155; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop467156; SIMD128-NEXT:    i32.shl $push14=, $pop13, $pop127157; SIMD128-NEXT:    i16x8.replace_lane $push15=, $pop10, 2, $pop147158; SIMD128-NEXT:    i16x8.extract_lane_u $push18=, $0, 37159; SIMD128-NEXT:    i16x8.extract_lane_u $push16=, $1, 37160; SIMD128-NEXT:    i32.const $push45=, 157161; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop457162; SIMD128-NEXT:    i32.shl $push19=, $pop18, $pop177163; SIMD128-NEXT:    i16x8.replace_lane $push20=, $pop15, 3, $pop197164; SIMD128-NEXT:    i16x8.extract_lane_u $push23=, $0, 47165; SIMD128-NEXT:    i16x8.extract_lane_u $push21=, $1, 47166; SIMD128-NEXT:    i32.const $push44=, 157167; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop447168; SIMD128-NEXT:    i32.shl $push24=, $pop23, $pop227169; SIMD128-NEXT:    i16x8.replace_lane $push25=, $pop20, 4, $pop247170; SIMD128-NEXT:    i16x8.extract_lane_u $push28=, $0, 57171; SIMD128-NEXT:    i16x8.extract_lane_u $push26=, $1, 57172; SIMD128-NEXT:    i32.const $push43=, 157173; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop437174; SIMD128-NEXT:    i32.shl $push29=, $pop28, $pop277175; SIMD128-NEXT:    i16x8.replace_lane $push30=, $pop25, 5, $pop297176; SIMD128-NEXT:    i16x8.extract_lane_u $push33=, $0, 67177; SIMD128-NEXT:    i16x8.extract_lane_u $push31=, $1, 67178; SIMD128-NEXT:    i32.const $push42=, 157179; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop427180; SIMD128-NEXT:    i32.shl $push34=, $pop33, $pop327181; SIMD128-NEXT:    i16x8.replace_lane $push35=, $pop30, 6, $pop347182; SIMD128-NEXT:    i16x8.extract_lane_u $push38=, $0, 77183; SIMD128-NEXT:    i16x8.extract_lane_u $push36=, $1, 77184; SIMD128-NEXT:    i32.const $push41=, 157185; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop417186; SIMD128-NEXT:    i32.shl $push39=, $pop38, $pop377187; SIMD128-NEXT:    i16x8.replace_lane $push40=, $pop35, 7, $pop397188; SIMD128-NEXT:    return $pop407189;7190; SIMD128-FAST-LABEL: shl_vec_v8i16:7191; SIMD128-FAST:         .functype shl_vec_v8i16 (v128, v128) -> (v128)7192; SIMD128-FAST-NEXT:  # %bb.0:7193; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push8=, $0, 07194; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push6=, $1, 07195; SIMD128-FAST-NEXT:    i32.const $push2=, 157196; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop27197; SIMD128-FAST-NEXT:    i32.shl $push9=, $pop8, $pop77198; SIMD128-FAST-NEXT:    i16x8.splat $push10=, $pop97199; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push4=, $0, 17200; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push1=, $1, 17201; SIMD128-FAST-NEXT:    i32.const $push47=, 157202; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop477203; SIMD128-FAST-NEXT:    i32.shl $push5=, $pop4, $pop37204; SIMD128-FAST-NEXT:    i16x8.replace_lane $push11=, $pop10, 1, $pop57205; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push14=, $0, 27206; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push12=, $1, 27207; SIMD128-FAST-NEXT:    i32.const $push46=, 157208; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop467209; SIMD128-FAST-NEXT:    i32.shl $push15=, $pop14, $pop137210; SIMD128-FAST-NEXT:    i16x8.replace_lane $push16=, $pop11, 2, $pop157211; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push19=, $0, 37212; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push17=, $1, 37213; SIMD128-FAST-NEXT:    i32.const $push45=, 157214; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop457215; SIMD128-FAST-NEXT:    i32.shl $push20=, $pop19, $pop187216; SIMD128-FAST-NEXT:    i16x8.replace_lane $push21=, $pop16, 3, $pop207217; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push24=, $0, 47218; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push22=, $1, 47219; SIMD128-FAST-NEXT:    i32.const $push44=, 157220; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop447221; SIMD128-FAST-NEXT:    i32.shl $push25=, $pop24, $pop237222; SIMD128-FAST-NEXT:    i16x8.replace_lane $push26=, $pop21, 4, $pop257223; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push29=, $0, 57224; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push27=, $1, 57225; SIMD128-FAST-NEXT:    i32.const $push43=, 157226; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop437227; SIMD128-FAST-NEXT:    i32.shl $push30=, $pop29, $pop287228; SIMD128-FAST-NEXT:    i16x8.replace_lane $push31=, $pop26, 5, $pop307229; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push34=, $0, 67230; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push32=, $1, 67231; SIMD128-FAST-NEXT:    i32.const $push42=, 157232; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop427233; SIMD128-FAST-NEXT:    i32.shl $push35=, $pop34, $pop337234; SIMD128-FAST-NEXT:    i16x8.replace_lane $push36=, $pop31, 6, $pop357235; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push39=, $0, 77236; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push37=, $1, 77237; SIMD128-FAST-NEXT:    i32.const $push41=, 157238; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop417239; SIMD128-FAST-NEXT:    i32.shl $push40=, $pop39, $pop387240; SIMD128-FAST-NEXT:    i16x8.replace_lane $push0=, $pop36, 7, $pop407241; SIMD128-FAST-NEXT:    return $pop07242;7243; NO-SIMD128-LABEL: shl_vec_v8i16:7244; NO-SIMD128:         .functype shl_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7245; NO-SIMD128-NEXT:  # %bb.0:7246; NO-SIMD128-NEXT:    i32.const $push0=, 655357247; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop07248; NO-SIMD128-NEXT:    i32.shl $push2=, $8, $pop17249; NO-SIMD128-NEXT:    i32.store16 14($0), $pop27250; NO-SIMD128-NEXT:    i32.const $push23=, 655357251; NO-SIMD128-NEXT:    i32.and $push3=, $15, $pop237252; NO-SIMD128-NEXT:    i32.shl $push4=, $7, $pop37253; NO-SIMD128-NEXT:    i32.store16 12($0), $pop47254; NO-SIMD128-NEXT:    i32.const $push22=, 655357255; NO-SIMD128-NEXT:    i32.and $push5=, $14, $pop227256; NO-SIMD128-NEXT:    i32.shl $push6=, $6, $pop57257; NO-SIMD128-NEXT:    i32.store16 10($0), $pop67258; NO-SIMD128-NEXT:    i32.const $push21=, 655357259; NO-SIMD128-NEXT:    i32.and $push7=, $13, $pop217260; NO-SIMD128-NEXT:    i32.shl $push8=, $5, $pop77261; NO-SIMD128-NEXT:    i32.store16 8($0), $pop87262; NO-SIMD128-NEXT:    i32.const $push20=, 655357263; NO-SIMD128-NEXT:    i32.and $push9=, $12, $pop207264; NO-SIMD128-NEXT:    i32.shl $push10=, $4, $pop97265; NO-SIMD128-NEXT:    i32.store16 6($0), $pop107266; NO-SIMD128-NEXT:    i32.const $push19=, 655357267; NO-SIMD128-NEXT:    i32.and $push11=, $11, $pop197268; NO-SIMD128-NEXT:    i32.shl $push12=, $3, $pop117269; NO-SIMD128-NEXT:    i32.store16 4($0), $pop127270; NO-SIMD128-NEXT:    i32.const $push18=, 655357271; NO-SIMD128-NEXT:    i32.and $push13=, $10, $pop187272; NO-SIMD128-NEXT:    i32.shl $push14=, $2, $pop137273; NO-SIMD128-NEXT:    i32.store16 2($0), $pop147274; NO-SIMD128-NEXT:    i32.const $push17=, 655357275; NO-SIMD128-NEXT:    i32.and $push15=, $9, $pop177276; NO-SIMD128-NEXT:    i32.shl $push16=, $1, $pop157277; NO-SIMD128-NEXT:    i32.store16 0($0), $pop167278; NO-SIMD128-NEXT:    return7279;7280; NO-SIMD128-FAST-LABEL: shl_vec_v8i16:7281; NO-SIMD128-FAST:         .functype shl_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7282; NO-SIMD128-FAST-NEXT:  # %bb.0:7283; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357284; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop07285; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $1, $pop17286; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop27287; NO-SIMD128-FAST-NEXT:    i32.const $push23=, 655357288; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $10, $pop237289; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $2, $pop37290; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop47291; NO-SIMD128-FAST-NEXT:    i32.const $push22=, 655357292; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $11, $pop227293; NO-SIMD128-FAST-NEXT:    i32.shl $push6=, $3, $pop57294; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop67295; NO-SIMD128-FAST-NEXT:    i32.const $push21=, 655357296; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $12, $pop217297; NO-SIMD128-FAST-NEXT:    i32.shl $push8=, $4, $pop77298; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop87299; NO-SIMD128-FAST-NEXT:    i32.const $push20=, 655357300; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $13, $pop207301; NO-SIMD128-FAST-NEXT:    i32.shl $push10=, $5, $pop97302; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop107303; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 655357304; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $14, $pop197305; NO-SIMD128-FAST-NEXT:    i32.shl $push12=, $6, $pop117306; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop127307; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 655357308; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $15, $pop187309; NO-SIMD128-FAST-NEXT:    i32.shl $push14=, $7, $pop137310; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop147311; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 655357312; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $16, $pop177313; NO-SIMD128-FAST-NEXT:    i32.shl $push16=, $8, $pop157314; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop167315; NO-SIMD128-FAST-NEXT:    return7316  %a = shl <8 x i16> %v, %x7317  ret <8 x i16> %a7318}7319 7320define <8 x i16> @shr_s_v8i16(<8 x i16> %v, i16 %x) {7321; SIMD128-LABEL: shr_s_v8i16:7322; SIMD128:         .functype shr_s_v8i16 (v128, i32) -> (v128)7323; SIMD128-NEXT:  # %bb.0:7324; SIMD128-NEXT:    i16x8.shr_s $push0=, $0, $17325; SIMD128-NEXT:    return $pop07326;7327; SIMD128-FAST-LABEL: shr_s_v8i16:7328; SIMD128-FAST:         .functype shr_s_v8i16 (v128, i32) -> (v128)7329; SIMD128-FAST-NEXT:  # %bb.0:7330; SIMD128-FAST-NEXT:    i16x8.shr_s $push0=, $0, $17331; SIMD128-FAST-NEXT:    return $pop07332;7333; NO-SIMD128-LABEL: shr_s_v8i16:7334; NO-SIMD128:         .functype shr_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7335; NO-SIMD128-NEXT:  # %bb.0:7336; NO-SIMD128-NEXT:    i32.extend16_s $push1=, $87337; NO-SIMD128-NEXT:    i32.const $push0=, 655357338; NO-SIMD128-NEXT:    i32.and $push18=, $9, $pop07339; NO-SIMD128-NEXT:    local.tee $push17=, $9=, $pop187340; NO-SIMD128-NEXT:    i32.shr_s $push2=, $pop1, $pop177341; NO-SIMD128-NEXT:    i32.store16 14($0), $pop27342; NO-SIMD128-NEXT:    i32.extend16_s $push3=, $77343; NO-SIMD128-NEXT:    i32.shr_s $push4=, $pop3, $97344; NO-SIMD128-NEXT:    i32.store16 12($0), $pop47345; NO-SIMD128-NEXT:    i32.extend16_s $push5=, $67346; NO-SIMD128-NEXT:    i32.shr_s $push6=, $pop5, $97347; NO-SIMD128-NEXT:    i32.store16 10($0), $pop67348; NO-SIMD128-NEXT:    i32.extend16_s $push7=, $57349; NO-SIMD128-NEXT:    i32.shr_s $push8=, $pop7, $97350; NO-SIMD128-NEXT:    i32.store16 8($0), $pop87351; NO-SIMD128-NEXT:    i32.extend16_s $push9=, $47352; NO-SIMD128-NEXT:    i32.shr_s $push10=, $pop9, $97353; NO-SIMD128-NEXT:    i32.store16 6($0), $pop107354; NO-SIMD128-NEXT:    i32.extend16_s $push11=, $37355; NO-SIMD128-NEXT:    i32.shr_s $push12=, $pop11, $97356; NO-SIMD128-NEXT:    i32.store16 4($0), $pop127357; NO-SIMD128-NEXT:    i32.extend16_s $push13=, $27358; NO-SIMD128-NEXT:    i32.shr_s $push14=, $pop13, $97359; NO-SIMD128-NEXT:    i32.store16 2($0), $pop147360; NO-SIMD128-NEXT:    i32.extend16_s $push15=, $17361; NO-SIMD128-NEXT:    i32.shr_s $push16=, $pop15, $97362; NO-SIMD128-NEXT:    i32.store16 0($0), $pop167363; NO-SIMD128-NEXT:    return7364;7365; NO-SIMD128-FAST-LABEL: shr_s_v8i16:7366; NO-SIMD128-FAST:         .functype shr_s_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7367; NO-SIMD128-FAST-NEXT:  # %bb.0:7368; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push1=, $17369; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357370; NO-SIMD128-FAST-NEXT:    i32.and $push18=, $9, $pop07371; NO-SIMD128-FAST-NEXT:    local.tee $push17=, $1=, $pop187372; NO-SIMD128-FAST-NEXT:    i32.shr_s $push2=, $pop1, $pop177373; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop27374; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push3=, $27375; NO-SIMD128-FAST-NEXT:    i32.shr_s $push4=, $pop3, $17376; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop47377; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push5=, $37378; NO-SIMD128-FAST-NEXT:    i32.shr_s $push6=, $pop5, $17379; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop67380; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push7=, $47381; NO-SIMD128-FAST-NEXT:    i32.shr_s $push8=, $pop7, $17382; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop87383; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push9=, $57384; NO-SIMD128-FAST-NEXT:    i32.shr_s $push10=, $pop9, $17385; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop107386; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push11=, $67387; NO-SIMD128-FAST-NEXT:    i32.shr_s $push12=, $pop11, $17388; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop127389; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push13=, $77390; NO-SIMD128-FAST-NEXT:    i32.shr_s $push14=, $pop13, $17391; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop147392; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push15=, $87393; NO-SIMD128-FAST-NEXT:    i32.shr_s $push16=, $pop15, $17394; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop167395; NO-SIMD128-FAST-NEXT:    return7396  %t = insertelement <8 x i16> undef, i16 %x, i32 07397  %s = shufflevector <8 x i16> %t, <8 x i16> undef,7398    <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>7399  %a = ashr <8 x i16> %v, %s7400  ret <8 x i16> %a7401}7402 7403define <8 x i16> @shr_s_vec_v8i16(<8 x i16> %v, <8 x i16> %x) {7404; SIMD128-LABEL: shr_s_vec_v8i16:7405; SIMD128:         .functype shr_s_vec_v8i16 (v128, v128) -> (v128)7406; SIMD128-NEXT:  # %bb.0:7407; SIMD128-NEXT:    i16x8.extract_lane_s $push7=, $0, 07408; SIMD128-NEXT:    i16x8.extract_lane_u $push5=, $1, 07409; SIMD128-NEXT:    i32.const $push1=, 157410; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop17411; SIMD128-NEXT:    i32.shr_s $push8=, $pop7, $pop67412; SIMD128-NEXT:    i16x8.splat $push9=, $pop87413; SIMD128-NEXT:    i16x8.extract_lane_s $push3=, $0, 17414; SIMD128-NEXT:    i16x8.extract_lane_u $push0=, $1, 17415; SIMD128-NEXT:    i32.const $push47=, 157416; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop477417; SIMD128-NEXT:    i32.shr_s $push4=, $pop3, $pop27418; SIMD128-NEXT:    i16x8.replace_lane $push10=, $pop9, 1, $pop47419; SIMD128-NEXT:    i16x8.extract_lane_s $push13=, $0, 27420; SIMD128-NEXT:    i16x8.extract_lane_u $push11=, $1, 27421; SIMD128-NEXT:    i32.const $push46=, 157422; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop467423; SIMD128-NEXT:    i32.shr_s $push14=, $pop13, $pop127424; SIMD128-NEXT:    i16x8.replace_lane $push15=, $pop10, 2, $pop147425; SIMD128-NEXT:    i16x8.extract_lane_s $push18=, $0, 37426; SIMD128-NEXT:    i16x8.extract_lane_u $push16=, $1, 37427; SIMD128-NEXT:    i32.const $push45=, 157428; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop457429; SIMD128-NEXT:    i32.shr_s $push19=, $pop18, $pop177430; SIMD128-NEXT:    i16x8.replace_lane $push20=, $pop15, 3, $pop197431; SIMD128-NEXT:    i16x8.extract_lane_s $push23=, $0, 47432; SIMD128-NEXT:    i16x8.extract_lane_u $push21=, $1, 47433; SIMD128-NEXT:    i32.const $push44=, 157434; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop447435; SIMD128-NEXT:    i32.shr_s $push24=, $pop23, $pop227436; SIMD128-NEXT:    i16x8.replace_lane $push25=, $pop20, 4, $pop247437; SIMD128-NEXT:    i16x8.extract_lane_s $push28=, $0, 57438; SIMD128-NEXT:    i16x8.extract_lane_u $push26=, $1, 57439; SIMD128-NEXT:    i32.const $push43=, 157440; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop437441; SIMD128-NEXT:    i32.shr_s $push29=, $pop28, $pop277442; SIMD128-NEXT:    i16x8.replace_lane $push30=, $pop25, 5, $pop297443; SIMD128-NEXT:    i16x8.extract_lane_s $push33=, $0, 67444; SIMD128-NEXT:    i16x8.extract_lane_u $push31=, $1, 67445; SIMD128-NEXT:    i32.const $push42=, 157446; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop427447; SIMD128-NEXT:    i32.shr_s $push34=, $pop33, $pop327448; SIMD128-NEXT:    i16x8.replace_lane $push35=, $pop30, 6, $pop347449; SIMD128-NEXT:    i16x8.extract_lane_s $push38=, $0, 77450; SIMD128-NEXT:    i16x8.extract_lane_u $push36=, $1, 77451; SIMD128-NEXT:    i32.const $push41=, 157452; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop417453; SIMD128-NEXT:    i32.shr_s $push39=, $pop38, $pop377454; SIMD128-NEXT:    i16x8.replace_lane $push40=, $pop35, 7, $pop397455; SIMD128-NEXT:    return $pop407456;7457; SIMD128-FAST-LABEL: shr_s_vec_v8i16:7458; SIMD128-FAST:         .functype shr_s_vec_v8i16 (v128, v128) -> (v128)7459; SIMD128-FAST-NEXT:  # %bb.0:7460; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push8=, $0, 07461; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push6=, $1, 07462; SIMD128-FAST-NEXT:    i32.const $push2=, 157463; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop27464; SIMD128-FAST-NEXT:    i32.shr_s $push9=, $pop8, $pop77465; SIMD128-FAST-NEXT:    i16x8.splat $push10=, $pop97466; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push4=, $0, 17467; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push1=, $1, 17468; SIMD128-FAST-NEXT:    i32.const $push47=, 157469; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop477470; SIMD128-FAST-NEXT:    i32.shr_s $push5=, $pop4, $pop37471; SIMD128-FAST-NEXT:    i16x8.replace_lane $push11=, $pop10, 1, $pop57472; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push14=, $0, 27473; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push12=, $1, 27474; SIMD128-FAST-NEXT:    i32.const $push46=, 157475; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop467476; SIMD128-FAST-NEXT:    i32.shr_s $push15=, $pop14, $pop137477; SIMD128-FAST-NEXT:    i16x8.replace_lane $push16=, $pop11, 2, $pop157478; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push19=, $0, 37479; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push17=, $1, 37480; SIMD128-FAST-NEXT:    i32.const $push45=, 157481; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop457482; SIMD128-FAST-NEXT:    i32.shr_s $push20=, $pop19, $pop187483; SIMD128-FAST-NEXT:    i16x8.replace_lane $push21=, $pop16, 3, $pop207484; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push24=, $0, 47485; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push22=, $1, 47486; SIMD128-FAST-NEXT:    i32.const $push44=, 157487; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop447488; SIMD128-FAST-NEXT:    i32.shr_s $push25=, $pop24, $pop237489; SIMD128-FAST-NEXT:    i16x8.replace_lane $push26=, $pop21, 4, $pop257490; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push29=, $0, 57491; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push27=, $1, 57492; SIMD128-FAST-NEXT:    i32.const $push43=, 157493; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop437494; SIMD128-FAST-NEXT:    i32.shr_s $push30=, $pop29, $pop287495; SIMD128-FAST-NEXT:    i16x8.replace_lane $push31=, $pop26, 5, $pop307496; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push34=, $0, 67497; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push32=, $1, 67498; SIMD128-FAST-NEXT:    i32.const $push42=, 157499; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop427500; SIMD128-FAST-NEXT:    i32.shr_s $push35=, $pop34, $pop337501; SIMD128-FAST-NEXT:    i16x8.replace_lane $push36=, $pop31, 6, $pop357502; SIMD128-FAST-NEXT:    i16x8.extract_lane_s $push39=, $0, 77503; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push37=, $1, 77504; SIMD128-FAST-NEXT:    i32.const $push41=, 157505; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop417506; SIMD128-FAST-NEXT:    i32.shr_s $push40=, $pop39, $pop387507; SIMD128-FAST-NEXT:    i16x8.replace_lane $push0=, $pop36, 7, $pop407508; SIMD128-FAST-NEXT:    return $pop07509;7510; NO-SIMD128-LABEL: shr_s_vec_v8i16:7511; NO-SIMD128:         .functype shr_s_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7512; NO-SIMD128-NEXT:  # %bb.0:7513; NO-SIMD128-NEXT:    i32.extend16_s $push2=, $87514; NO-SIMD128-NEXT:    i32.const $push0=, 655357515; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop07516; NO-SIMD128-NEXT:    i32.shr_s $push3=, $pop2, $pop17517; NO-SIMD128-NEXT:    i32.store16 14($0), $pop37518; NO-SIMD128-NEXT:    i32.extend16_s $push5=, $77519; NO-SIMD128-NEXT:    i32.const $push31=, 655357520; NO-SIMD128-NEXT:    i32.and $push4=, $15, $pop317521; NO-SIMD128-NEXT:    i32.shr_s $push6=, $pop5, $pop47522; NO-SIMD128-NEXT:    i32.store16 12($0), $pop67523; NO-SIMD128-NEXT:    i32.extend16_s $push8=, $67524; NO-SIMD128-NEXT:    i32.const $push30=, 655357525; NO-SIMD128-NEXT:    i32.and $push7=, $14, $pop307526; NO-SIMD128-NEXT:    i32.shr_s $push9=, $pop8, $pop77527; NO-SIMD128-NEXT:    i32.store16 10($0), $pop97528; NO-SIMD128-NEXT:    i32.extend16_s $push11=, $57529; NO-SIMD128-NEXT:    i32.const $push29=, 655357530; NO-SIMD128-NEXT:    i32.and $push10=, $13, $pop297531; NO-SIMD128-NEXT:    i32.shr_s $push12=, $pop11, $pop107532; NO-SIMD128-NEXT:    i32.store16 8($0), $pop127533; NO-SIMD128-NEXT:    i32.extend16_s $push14=, $47534; NO-SIMD128-NEXT:    i32.const $push28=, 655357535; NO-SIMD128-NEXT:    i32.and $push13=, $12, $pop287536; NO-SIMD128-NEXT:    i32.shr_s $push15=, $pop14, $pop137537; NO-SIMD128-NEXT:    i32.store16 6($0), $pop157538; NO-SIMD128-NEXT:    i32.extend16_s $push17=, $37539; NO-SIMD128-NEXT:    i32.const $push27=, 655357540; NO-SIMD128-NEXT:    i32.and $push16=, $11, $pop277541; NO-SIMD128-NEXT:    i32.shr_s $push18=, $pop17, $pop167542; NO-SIMD128-NEXT:    i32.store16 4($0), $pop187543; NO-SIMD128-NEXT:    i32.extend16_s $push20=, $27544; NO-SIMD128-NEXT:    i32.const $push26=, 655357545; NO-SIMD128-NEXT:    i32.and $push19=, $10, $pop267546; NO-SIMD128-NEXT:    i32.shr_s $push21=, $pop20, $pop197547; NO-SIMD128-NEXT:    i32.store16 2($0), $pop217548; NO-SIMD128-NEXT:    i32.extend16_s $push23=, $17549; NO-SIMD128-NEXT:    i32.const $push25=, 655357550; NO-SIMD128-NEXT:    i32.and $push22=, $9, $pop257551; NO-SIMD128-NEXT:    i32.shr_s $push24=, $pop23, $pop227552; NO-SIMD128-NEXT:    i32.store16 0($0), $pop247553; NO-SIMD128-NEXT:    return7554;7555; NO-SIMD128-FAST-LABEL: shr_s_vec_v8i16:7556; NO-SIMD128-FAST:         .functype shr_s_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7557; NO-SIMD128-FAST-NEXT:  # %bb.0:7558; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push2=, $17559; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357560; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop07561; NO-SIMD128-FAST-NEXT:    i32.shr_s $push3=, $pop2, $pop17562; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop37563; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push5=, $27564; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 655357565; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $10, $pop317566; NO-SIMD128-FAST-NEXT:    i32.shr_s $push6=, $pop5, $pop47567; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop67568; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push8=, $37569; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 655357570; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $11, $pop307571; NO-SIMD128-FAST-NEXT:    i32.shr_s $push9=, $pop8, $pop77572; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop97573; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push11=, $47574; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 655357575; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $12, $pop297576; NO-SIMD128-FAST-NEXT:    i32.shr_s $push12=, $pop11, $pop107577; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop127578; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push14=, $57579; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 655357580; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $13, $pop287581; NO-SIMD128-FAST-NEXT:    i32.shr_s $push15=, $pop14, $pop137582; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop157583; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push17=, $67584; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 655357585; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $14, $pop277586; NO-SIMD128-FAST-NEXT:    i32.shr_s $push18=, $pop17, $pop167587; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop187588; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push20=, $77589; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 655357590; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $15, $pop267591; NO-SIMD128-FAST-NEXT:    i32.shr_s $push21=, $pop20, $pop197592; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop217593; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push23=, $87594; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 655357595; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $16, $pop257596; NO-SIMD128-FAST-NEXT:    i32.shr_s $push24=, $pop23, $pop227597; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop247598; NO-SIMD128-FAST-NEXT:    return7599  %a = ashr <8 x i16> %v, %x7600  ret <8 x i16> %a7601}7602 7603define <8 x i16> @shr_u_v8i16(<8 x i16> %v, i16 %x) {7604; SIMD128-LABEL: shr_u_v8i16:7605; SIMD128:         .functype shr_u_v8i16 (v128, i32) -> (v128)7606; SIMD128-NEXT:  # %bb.0:7607; SIMD128-NEXT:    i16x8.shr_u $push0=, $0, $17608; SIMD128-NEXT:    return $pop07609;7610; SIMD128-FAST-LABEL: shr_u_v8i16:7611; SIMD128-FAST:         .functype shr_u_v8i16 (v128, i32) -> (v128)7612; SIMD128-FAST-NEXT:  # %bb.0:7613; SIMD128-FAST-NEXT:    i16x8.shr_u $push0=, $0, $17614; SIMD128-FAST-NEXT:    return $pop07615;7616; NO-SIMD128-LABEL: shr_u_v8i16:7617; NO-SIMD128:         .functype shr_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7618; NO-SIMD128-NEXT:  # %bb.0:7619; NO-SIMD128-NEXT:    i32.const $push0=, 655357620; NO-SIMD128-NEXT:    i32.and $push1=, $8, $pop07621; NO-SIMD128-NEXT:    i32.const $push26=, 655357622; NO-SIMD128-NEXT:    i32.and $push25=, $9, $pop267623; NO-SIMD128-NEXT:    local.tee $push24=, $9=, $pop257624; NO-SIMD128-NEXT:    i32.shr_u $push2=, $pop1, $pop247625; NO-SIMD128-NEXT:    i32.store16 14($0), $pop27626; NO-SIMD128-NEXT:    i32.const $push23=, 655357627; NO-SIMD128-NEXT:    i32.and $push3=, $7, $pop237628; NO-SIMD128-NEXT:    i32.shr_u $push4=, $pop3, $97629; NO-SIMD128-NEXT:    i32.store16 12($0), $pop47630; NO-SIMD128-NEXT:    i32.const $push22=, 655357631; NO-SIMD128-NEXT:    i32.and $push5=, $6, $pop227632; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $97633; NO-SIMD128-NEXT:    i32.store16 10($0), $pop67634; NO-SIMD128-NEXT:    i32.const $push21=, 655357635; NO-SIMD128-NEXT:    i32.and $push7=, $5, $pop217636; NO-SIMD128-NEXT:    i32.shr_u $push8=, $pop7, $97637; NO-SIMD128-NEXT:    i32.store16 8($0), $pop87638; NO-SIMD128-NEXT:    i32.const $push20=, 655357639; NO-SIMD128-NEXT:    i32.and $push9=, $4, $pop207640; NO-SIMD128-NEXT:    i32.shr_u $push10=, $pop9, $97641; NO-SIMD128-NEXT:    i32.store16 6($0), $pop107642; NO-SIMD128-NEXT:    i32.const $push19=, 655357643; NO-SIMD128-NEXT:    i32.and $push11=, $3, $pop197644; NO-SIMD128-NEXT:    i32.shr_u $push12=, $pop11, $97645; NO-SIMD128-NEXT:    i32.store16 4($0), $pop127646; NO-SIMD128-NEXT:    i32.const $push18=, 655357647; NO-SIMD128-NEXT:    i32.and $push13=, $2, $pop187648; NO-SIMD128-NEXT:    i32.shr_u $push14=, $pop13, $97649; NO-SIMD128-NEXT:    i32.store16 2($0), $pop147650; NO-SIMD128-NEXT:    i32.const $push17=, 655357651; NO-SIMD128-NEXT:    i32.and $push15=, $1, $pop177652; NO-SIMD128-NEXT:    i32.shr_u $push16=, $pop15, $97653; NO-SIMD128-NEXT:    i32.store16 0($0), $pop167654; NO-SIMD128-NEXT:    return7655;7656; NO-SIMD128-FAST-LABEL: shr_u_v8i16:7657; NO-SIMD128-FAST:         .functype shr_u_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7658; NO-SIMD128-FAST-NEXT:  # %bb.0:7659; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357660; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $1, $pop07661; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 655357662; NO-SIMD128-FAST-NEXT:    i32.and $push25=, $9, $pop267663; NO-SIMD128-FAST-NEXT:    local.tee $push24=, $1=, $pop257664; NO-SIMD128-FAST-NEXT:    i32.shr_u $push2=, $pop1, $pop247665; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop27666; NO-SIMD128-FAST-NEXT:    i32.const $push23=, 655357667; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $2, $pop237668; NO-SIMD128-FAST-NEXT:    i32.shr_u $push4=, $pop3, $17669; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop47670; NO-SIMD128-FAST-NEXT:    i32.const $push22=, 655357671; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $3, $pop227672; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $17673; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop67674; NO-SIMD128-FAST-NEXT:    i32.const $push21=, 655357675; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $4, $pop217676; NO-SIMD128-FAST-NEXT:    i32.shr_u $push8=, $pop7, $17677; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop87678; NO-SIMD128-FAST-NEXT:    i32.const $push20=, 655357679; NO-SIMD128-FAST-NEXT:    i32.and $push9=, $5, $pop207680; NO-SIMD128-FAST-NEXT:    i32.shr_u $push10=, $pop9, $17681; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop107682; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 655357683; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $6, $pop197684; NO-SIMD128-FAST-NEXT:    i32.shr_u $push12=, $pop11, $17685; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop127686; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 655357687; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $7, $pop187688; NO-SIMD128-FAST-NEXT:    i32.shr_u $push14=, $pop13, $17689; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop147690; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 655357691; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $8, $pop177692; NO-SIMD128-FAST-NEXT:    i32.shr_u $push16=, $pop15, $17693; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop167694; NO-SIMD128-FAST-NEXT:    return7695  %t = insertelement <8 x i16> undef, i16 %x, i32 07696  %s = shufflevector <8 x i16> %t, <8 x i16> undef,7697    <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>7698  %a = lshr <8 x i16> %v, %s7699  ret <8 x i16> %a7700}7701 7702define <8 x i16> @shr_u_vec_v8i16(<8 x i16> %v, <8 x i16> %x) {7703; SIMD128-LABEL: shr_u_vec_v8i16:7704; SIMD128:         .functype shr_u_vec_v8i16 (v128, v128) -> (v128)7705; SIMD128-NEXT:  # %bb.0:7706; SIMD128-NEXT:    i16x8.extract_lane_u $push7=, $0, 07707; SIMD128-NEXT:    i16x8.extract_lane_u $push5=, $1, 07708; SIMD128-NEXT:    i32.const $push1=, 157709; SIMD128-NEXT:    i32.and $push6=, $pop5, $pop17710; SIMD128-NEXT:    i32.shr_u $push8=, $pop7, $pop67711; SIMD128-NEXT:    i16x8.splat $push9=, $pop87712; SIMD128-NEXT:    i16x8.extract_lane_u $push3=, $0, 17713; SIMD128-NEXT:    i16x8.extract_lane_u $push0=, $1, 17714; SIMD128-NEXT:    i32.const $push47=, 157715; SIMD128-NEXT:    i32.and $push2=, $pop0, $pop477716; SIMD128-NEXT:    i32.shr_u $push4=, $pop3, $pop27717; SIMD128-NEXT:    i16x8.replace_lane $push10=, $pop9, 1, $pop47718; SIMD128-NEXT:    i16x8.extract_lane_u $push13=, $0, 27719; SIMD128-NEXT:    i16x8.extract_lane_u $push11=, $1, 27720; SIMD128-NEXT:    i32.const $push46=, 157721; SIMD128-NEXT:    i32.and $push12=, $pop11, $pop467722; SIMD128-NEXT:    i32.shr_u $push14=, $pop13, $pop127723; SIMD128-NEXT:    i16x8.replace_lane $push15=, $pop10, 2, $pop147724; SIMD128-NEXT:    i16x8.extract_lane_u $push18=, $0, 37725; SIMD128-NEXT:    i16x8.extract_lane_u $push16=, $1, 37726; SIMD128-NEXT:    i32.const $push45=, 157727; SIMD128-NEXT:    i32.and $push17=, $pop16, $pop457728; SIMD128-NEXT:    i32.shr_u $push19=, $pop18, $pop177729; SIMD128-NEXT:    i16x8.replace_lane $push20=, $pop15, 3, $pop197730; SIMD128-NEXT:    i16x8.extract_lane_u $push23=, $0, 47731; SIMD128-NEXT:    i16x8.extract_lane_u $push21=, $1, 47732; SIMD128-NEXT:    i32.const $push44=, 157733; SIMD128-NEXT:    i32.and $push22=, $pop21, $pop447734; SIMD128-NEXT:    i32.shr_u $push24=, $pop23, $pop227735; SIMD128-NEXT:    i16x8.replace_lane $push25=, $pop20, 4, $pop247736; SIMD128-NEXT:    i16x8.extract_lane_u $push28=, $0, 57737; SIMD128-NEXT:    i16x8.extract_lane_u $push26=, $1, 57738; SIMD128-NEXT:    i32.const $push43=, 157739; SIMD128-NEXT:    i32.and $push27=, $pop26, $pop437740; SIMD128-NEXT:    i32.shr_u $push29=, $pop28, $pop277741; SIMD128-NEXT:    i16x8.replace_lane $push30=, $pop25, 5, $pop297742; SIMD128-NEXT:    i16x8.extract_lane_u $push33=, $0, 67743; SIMD128-NEXT:    i16x8.extract_lane_u $push31=, $1, 67744; SIMD128-NEXT:    i32.const $push42=, 157745; SIMD128-NEXT:    i32.and $push32=, $pop31, $pop427746; SIMD128-NEXT:    i32.shr_u $push34=, $pop33, $pop327747; SIMD128-NEXT:    i16x8.replace_lane $push35=, $pop30, 6, $pop347748; SIMD128-NEXT:    i16x8.extract_lane_u $push38=, $0, 77749; SIMD128-NEXT:    i16x8.extract_lane_u $push36=, $1, 77750; SIMD128-NEXT:    i32.const $push41=, 157751; SIMD128-NEXT:    i32.and $push37=, $pop36, $pop417752; SIMD128-NEXT:    i32.shr_u $push39=, $pop38, $pop377753; SIMD128-NEXT:    i16x8.replace_lane $push40=, $pop35, 7, $pop397754; SIMD128-NEXT:    return $pop407755;7756; SIMD128-FAST-LABEL: shr_u_vec_v8i16:7757; SIMD128-FAST:         .functype shr_u_vec_v8i16 (v128, v128) -> (v128)7758; SIMD128-FAST-NEXT:  # %bb.0:7759; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push8=, $0, 07760; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push6=, $1, 07761; SIMD128-FAST-NEXT:    i32.const $push2=, 157762; SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop27763; SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop77764; SIMD128-FAST-NEXT:    i16x8.splat $push10=, $pop97765; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push4=, $0, 17766; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push1=, $1, 17767; SIMD128-FAST-NEXT:    i32.const $push47=, 157768; SIMD128-FAST-NEXT:    i32.and $push3=, $pop1, $pop477769; SIMD128-FAST-NEXT:    i32.shr_u $push5=, $pop4, $pop37770; SIMD128-FAST-NEXT:    i16x8.replace_lane $push11=, $pop10, 1, $pop57771; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push14=, $0, 27772; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push12=, $1, 27773; SIMD128-FAST-NEXT:    i32.const $push46=, 157774; SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $pop467775; SIMD128-FAST-NEXT:    i32.shr_u $push15=, $pop14, $pop137776; SIMD128-FAST-NEXT:    i16x8.replace_lane $push16=, $pop11, 2, $pop157777; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push19=, $0, 37778; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push17=, $1, 37779; SIMD128-FAST-NEXT:    i32.const $push45=, 157780; SIMD128-FAST-NEXT:    i32.and $push18=, $pop17, $pop457781; SIMD128-FAST-NEXT:    i32.shr_u $push20=, $pop19, $pop187782; SIMD128-FAST-NEXT:    i16x8.replace_lane $push21=, $pop16, 3, $pop207783; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push24=, $0, 47784; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push22=, $1, 47785; SIMD128-FAST-NEXT:    i32.const $push44=, 157786; SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop447787; SIMD128-FAST-NEXT:    i32.shr_u $push25=, $pop24, $pop237788; SIMD128-FAST-NEXT:    i16x8.replace_lane $push26=, $pop21, 4, $pop257789; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push29=, $0, 57790; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push27=, $1, 57791; SIMD128-FAST-NEXT:    i32.const $push43=, 157792; SIMD128-FAST-NEXT:    i32.and $push28=, $pop27, $pop437793; SIMD128-FAST-NEXT:    i32.shr_u $push30=, $pop29, $pop287794; SIMD128-FAST-NEXT:    i16x8.replace_lane $push31=, $pop26, 5, $pop307795; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push34=, $0, 67796; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push32=, $1, 67797; SIMD128-FAST-NEXT:    i32.const $push42=, 157798; SIMD128-FAST-NEXT:    i32.and $push33=, $pop32, $pop427799; SIMD128-FAST-NEXT:    i32.shr_u $push35=, $pop34, $pop337800; SIMD128-FAST-NEXT:    i16x8.replace_lane $push36=, $pop31, 6, $pop357801; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push39=, $0, 77802; SIMD128-FAST-NEXT:    i16x8.extract_lane_u $push37=, $1, 77803; SIMD128-FAST-NEXT:    i32.const $push41=, 157804; SIMD128-FAST-NEXT:    i32.and $push38=, $pop37, $pop417805; SIMD128-FAST-NEXT:    i32.shr_u $push40=, $pop39, $pop387806; SIMD128-FAST-NEXT:    i16x8.replace_lane $push0=, $pop36, 7, $pop407807; SIMD128-FAST-NEXT:    return $pop07808;7809; NO-SIMD128-LABEL: shr_u_vec_v8i16:7810; NO-SIMD128:         .functype shr_u_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7811; NO-SIMD128-NEXT:  # %bb.0:7812; NO-SIMD128-NEXT:    i32.const $push0=, 655357813; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop07814; NO-SIMD128-NEXT:    i32.const $push39=, 655357815; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop397816; NO-SIMD128-NEXT:    i32.shr_u $push3=, $pop2, $pop17817; NO-SIMD128-NEXT:    i32.store16 14($0), $pop37818; NO-SIMD128-NEXT:    i32.const $push38=, 655357819; NO-SIMD128-NEXT:    i32.and $push5=, $7, $pop387820; NO-SIMD128-NEXT:    i32.const $push37=, 655357821; NO-SIMD128-NEXT:    i32.and $push4=, $15, $pop377822; NO-SIMD128-NEXT:    i32.shr_u $push6=, $pop5, $pop47823; NO-SIMD128-NEXT:    i32.store16 12($0), $pop67824; NO-SIMD128-NEXT:    i32.const $push36=, 655357825; NO-SIMD128-NEXT:    i32.and $push8=, $6, $pop367826; NO-SIMD128-NEXT:    i32.const $push35=, 655357827; NO-SIMD128-NEXT:    i32.and $push7=, $14, $pop357828; NO-SIMD128-NEXT:    i32.shr_u $push9=, $pop8, $pop77829; NO-SIMD128-NEXT:    i32.store16 10($0), $pop97830; NO-SIMD128-NEXT:    i32.const $push34=, 655357831; NO-SIMD128-NEXT:    i32.and $push11=, $5, $pop347832; NO-SIMD128-NEXT:    i32.const $push33=, 655357833; NO-SIMD128-NEXT:    i32.and $push10=, $13, $pop337834; NO-SIMD128-NEXT:    i32.shr_u $push12=, $pop11, $pop107835; NO-SIMD128-NEXT:    i32.store16 8($0), $pop127836; NO-SIMD128-NEXT:    i32.const $push32=, 655357837; NO-SIMD128-NEXT:    i32.and $push14=, $4, $pop327838; NO-SIMD128-NEXT:    i32.const $push31=, 655357839; NO-SIMD128-NEXT:    i32.and $push13=, $12, $pop317840; NO-SIMD128-NEXT:    i32.shr_u $push15=, $pop14, $pop137841; NO-SIMD128-NEXT:    i32.store16 6($0), $pop157842; NO-SIMD128-NEXT:    i32.const $push30=, 655357843; NO-SIMD128-NEXT:    i32.and $push17=, $3, $pop307844; NO-SIMD128-NEXT:    i32.const $push29=, 655357845; NO-SIMD128-NEXT:    i32.and $push16=, $11, $pop297846; NO-SIMD128-NEXT:    i32.shr_u $push18=, $pop17, $pop167847; NO-SIMD128-NEXT:    i32.store16 4($0), $pop187848; NO-SIMD128-NEXT:    i32.const $push28=, 655357849; NO-SIMD128-NEXT:    i32.and $push20=, $2, $pop287850; NO-SIMD128-NEXT:    i32.const $push27=, 655357851; NO-SIMD128-NEXT:    i32.and $push19=, $10, $pop277852; NO-SIMD128-NEXT:    i32.shr_u $push21=, $pop20, $pop197853; NO-SIMD128-NEXT:    i32.store16 2($0), $pop217854; NO-SIMD128-NEXT:    i32.const $push26=, 655357855; NO-SIMD128-NEXT:    i32.and $push23=, $1, $pop267856; NO-SIMD128-NEXT:    i32.const $push25=, 655357857; NO-SIMD128-NEXT:    i32.and $push22=, $9, $pop257858; NO-SIMD128-NEXT:    i32.shr_u $push24=, $pop23, $pop227859; NO-SIMD128-NEXT:    i32.store16 0($0), $pop247860; NO-SIMD128-NEXT:    return7861;7862; NO-SIMD128-FAST-LABEL: shr_u_vec_v8i16:7863; NO-SIMD128-FAST:         .functype shr_u_vec_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7864; NO-SIMD128-FAST-NEXT:  # %bb.0:7865; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 655357866; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop07867; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 655357868; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop397869; NO-SIMD128-FAST-NEXT:    i32.shr_u $push3=, $pop2, $pop17870; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop37871; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 655357872; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $2, $pop387873; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 655357874; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $10, $pop377875; NO-SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop47876; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop67877; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 655357878; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $3, $pop367879; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 655357880; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $11, $pop357881; NO-SIMD128-FAST-NEXT:    i32.shr_u $push9=, $pop8, $pop77882; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop97883; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 655357884; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $4, $pop347885; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 655357886; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $12, $pop337887; NO-SIMD128-FAST-NEXT:    i32.shr_u $push12=, $pop11, $pop107888; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop127889; NO-SIMD128-FAST-NEXT:    i32.const $push32=, 655357890; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $5, $pop327891; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 655357892; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $13, $pop317893; NO-SIMD128-FAST-NEXT:    i32.shr_u $push15=, $pop14, $pop137894; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop157895; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 655357896; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $6, $pop307897; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 655357898; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $14, $pop297899; NO-SIMD128-FAST-NEXT:    i32.shr_u $push18=, $pop17, $pop167900; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop187901; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 655357902; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $7, $pop287903; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 655357904; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $15, $pop277905; NO-SIMD128-FAST-NEXT:    i32.shr_u $push21=, $pop20, $pop197906; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop217907; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 655357908; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $8, $pop267909; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 655357910; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $16, $pop257911; NO-SIMD128-FAST-NEXT:    i32.shr_u $push24=, $pop23, $pop227912; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop247913; NO-SIMD128-FAST-NEXT:    return7914  %a = lshr <8 x i16> %v, %x7915  ret <8 x i16> %a7916}7917 7918define <8 x i16> @and_v8i16(<8 x i16> %x, <8 x i16> %y) {7919; SIMD128-LABEL: and_v8i16:7920; SIMD128:         .functype and_v8i16 (v128, v128) -> (v128)7921; SIMD128-NEXT:  # %bb.0:7922; SIMD128-NEXT:    v128.and $push0=, $0, $17923; SIMD128-NEXT:    return $pop07924;7925; SIMD128-FAST-LABEL: and_v8i16:7926; SIMD128-FAST:         .functype and_v8i16 (v128, v128) -> (v128)7927; SIMD128-FAST-NEXT:  # %bb.0:7928; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $17929; SIMD128-FAST-NEXT:    return $pop07930;7931; NO-SIMD128-LABEL: and_v8i16:7932; NO-SIMD128:         .functype and_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7933; NO-SIMD128-NEXT:  # %bb.0:7934; NO-SIMD128-NEXT:    i32.and $push0=, $8, $167935; NO-SIMD128-NEXT:    i32.store16 14($0), $pop07936; NO-SIMD128-NEXT:    i32.and $push1=, $7, $157937; NO-SIMD128-NEXT:    i32.store16 12($0), $pop17938; NO-SIMD128-NEXT:    i32.and $push2=, $6, $147939; NO-SIMD128-NEXT:    i32.store16 10($0), $pop27940; NO-SIMD128-NEXT:    i32.and $push3=, $5, $137941; NO-SIMD128-NEXT:    i32.store16 8($0), $pop37942; NO-SIMD128-NEXT:    i32.and $push4=, $4, $127943; NO-SIMD128-NEXT:    i32.store16 6($0), $pop47944; NO-SIMD128-NEXT:    i32.and $push5=, $3, $117945; NO-SIMD128-NEXT:    i32.store16 4($0), $pop57946; NO-SIMD128-NEXT:    i32.and $push6=, $2, $107947; NO-SIMD128-NEXT:    i32.store16 2($0), $pop67948; NO-SIMD128-NEXT:    i32.and $push7=, $1, $97949; NO-SIMD128-NEXT:    i32.store16 0($0), $pop77950; NO-SIMD128-NEXT:    return7951;7952; NO-SIMD128-FAST-LABEL: and_v8i16:7953; NO-SIMD128-FAST:         .functype and_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7954; NO-SIMD128-FAST-NEXT:  # %bb.0:7955; NO-SIMD128-FAST-NEXT:    i32.and $push0=, $1, $97956; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop07957; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $2, $107958; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop17959; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $3, $117960; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop27961; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $4, $127962; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop37963; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $5, $137964; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop47965; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $6, $147966; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop57967; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $7, $157968; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop67969; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $8, $167970; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop77971; NO-SIMD128-FAST-NEXT:    return7972  %a = and <8 x i16> %x, %y7973  ret <8 x i16> %a7974}7975 7976define <8 x i16> @or_v8i16(<8 x i16> %x, <8 x i16> %y) {7977; SIMD128-LABEL: or_v8i16:7978; SIMD128:         .functype or_v8i16 (v128, v128) -> (v128)7979; SIMD128-NEXT:  # %bb.0:7980; SIMD128-NEXT:    v128.or $push0=, $0, $17981; SIMD128-NEXT:    return $pop07982;7983; SIMD128-FAST-LABEL: or_v8i16:7984; SIMD128-FAST:         .functype or_v8i16 (v128, v128) -> (v128)7985; SIMD128-FAST-NEXT:  # %bb.0:7986; SIMD128-FAST-NEXT:    v128.or $push0=, $0, $17987; SIMD128-FAST-NEXT:    return $pop07988;7989; NO-SIMD128-LABEL: or_v8i16:7990; NO-SIMD128:         .functype or_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()7991; NO-SIMD128-NEXT:  # %bb.0:7992; NO-SIMD128-NEXT:    i32.or $push0=, $8, $167993; NO-SIMD128-NEXT:    i32.store16 14($0), $pop07994; NO-SIMD128-NEXT:    i32.or $push1=, $7, $157995; NO-SIMD128-NEXT:    i32.store16 12($0), $pop17996; NO-SIMD128-NEXT:    i32.or $push2=, $6, $147997; NO-SIMD128-NEXT:    i32.store16 10($0), $pop27998; NO-SIMD128-NEXT:    i32.or $push3=, $5, $137999; NO-SIMD128-NEXT:    i32.store16 8($0), $pop38000; NO-SIMD128-NEXT:    i32.or $push4=, $4, $128001; NO-SIMD128-NEXT:    i32.store16 6($0), $pop48002; NO-SIMD128-NEXT:    i32.or $push5=, $3, $118003; NO-SIMD128-NEXT:    i32.store16 4($0), $pop58004; NO-SIMD128-NEXT:    i32.or $push6=, $2, $108005; NO-SIMD128-NEXT:    i32.store16 2($0), $pop68006; NO-SIMD128-NEXT:    i32.or $push7=, $1, $98007; NO-SIMD128-NEXT:    i32.store16 0($0), $pop78008; NO-SIMD128-NEXT:    return8009;8010; NO-SIMD128-FAST-LABEL: or_v8i16:8011; NO-SIMD128-FAST:         .functype or_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8012; NO-SIMD128-FAST-NEXT:  # %bb.0:8013; NO-SIMD128-FAST-NEXT:    i32.or $push0=, $1, $98014; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop08015; NO-SIMD128-FAST-NEXT:    i32.or $push1=, $2, $108016; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop18017; NO-SIMD128-FAST-NEXT:    i32.or $push2=, $3, $118018; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop28019; NO-SIMD128-FAST-NEXT:    i32.or $push3=, $4, $128020; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop38021; NO-SIMD128-FAST-NEXT:    i32.or $push4=, $5, $138022; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop48023; NO-SIMD128-FAST-NEXT:    i32.or $push5=, $6, $148024; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop58025; NO-SIMD128-FAST-NEXT:    i32.or $push6=, $7, $158026; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop68027; NO-SIMD128-FAST-NEXT:    i32.or $push7=, $8, $168028; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop78029; NO-SIMD128-FAST-NEXT:    return8030  %a = or <8 x i16> %x, %y8031  ret <8 x i16> %a8032}8033 8034define <8 x i16> @xor_v8i16(<8 x i16> %x, <8 x i16> %y) {8035; SIMD128-LABEL: xor_v8i16:8036; SIMD128:         .functype xor_v8i16 (v128, v128) -> (v128)8037; SIMD128-NEXT:  # %bb.0:8038; SIMD128-NEXT:    v128.xor $push0=, $0, $18039; SIMD128-NEXT:    return $pop08040;8041; SIMD128-FAST-LABEL: xor_v8i16:8042; SIMD128-FAST:         .functype xor_v8i16 (v128, v128) -> (v128)8043; SIMD128-FAST-NEXT:  # %bb.0:8044; SIMD128-FAST-NEXT:    v128.xor $push0=, $0, $18045; SIMD128-FAST-NEXT:    return $pop08046;8047; NO-SIMD128-LABEL: xor_v8i16:8048; NO-SIMD128:         .functype xor_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8049; NO-SIMD128-NEXT:  # %bb.0:8050; NO-SIMD128-NEXT:    i32.xor $push0=, $8, $168051; NO-SIMD128-NEXT:    i32.store16 14($0), $pop08052; NO-SIMD128-NEXT:    i32.xor $push1=, $7, $158053; NO-SIMD128-NEXT:    i32.store16 12($0), $pop18054; NO-SIMD128-NEXT:    i32.xor $push2=, $6, $148055; NO-SIMD128-NEXT:    i32.store16 10($0), $pop28056; NO-SIMD128-NEXT:    i32.xor $push3=, $5, $138057; NO-SIMD128-NEXT:    i32.store16 8($0), $pop38058; NO-SIMD128-NEXT:    i32.xor $push4=, $4, $128059; NO-SIMD128-NEXT:    i32.store16 6($0), $pop48060; NO-SIMD128-NEXT:    i32.xor $push5=, $3, $118061; NO-SIMD128-NEXT:    i32.store16 4($0), $pop58062; NO-SIMD128-NEXT:    i32.xor $push6=, $2, $108063; NO-SIMD128-NEXT:    i32.store16 2($0), $pop68064; NO-SIMD128-NEXT:    i32.xor $push7=, $1, $98065; NO-SIMD128-NEXT:    i32.store16 0($0), $pop78066; NO-SIMD128-NEXT:    return8067;8068; NO-SIMD128-FAST-LABEL: xor_v8i16:8069; NO-SIMD128-FAST:         .functype xor_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8070; NO-SIMD128-FAST-NEXT:  # %bb.0:8071; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $1, $98072; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop08073; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $2, $108074; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop18075; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $3, $118076; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop28077; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $4, $128078; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop38079; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $5, $138080; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop48081; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $6, $148082; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop58083; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $7, $158084; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop68085; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $8, $168086; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop78087; NO-SIMD128-FAST-NEXT:    return8088  %a = xor <8 x i16> %x, %y8089  ret <8 x i16> %a8090}8091 8092define <8 x i16> @not_v8i16(<8 x i16> %x) {8093; SIMD128-LABEL: not_v8i16:8094; SIMD128:         .functype not_v8i16 (v128) -> (v128)8095; SIMD128-NEXT:  # %bb.0:8096; SIMD128-NEXT:    v128.not $push0=, $08097; SIMD128-NEXT:    return $pop08098;8099; SIMD128-FAST-LABEL: not_v8i16:8100; SIMD128-FAST:         .functype not_v8i16 (v128) -> (v128)8101; SIMD128-FAST-NEXT:  # %bb.0:8102; SIMD128-FAST-NEXT:    v128.not $push0=, $08103; SIMD128-FAST-NEXT:    return $pop08104;8105; NO-SIMD128-LABEL: not_v8i16:8106; NO-SIMD128:         .functype not_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8107; NO-SIMD128-NEXT:  # %bb.0:8108; NO-SIMD128-NEXT:    i32.const $push0=, -18109; NO-SIMD128-NEXT:    i32.xor $push1=, $8, $pop08110; NO-SIMD128-NEXT:    i32.store16 14($0), $pop18111; NO-SIMD128-NEXT:    i32.const $push15=, -18112; NO-SIMD128-NEXT:    i32.xor $push2=, $7, $pop158113; NO-SIMD128-NEXT:    i32.store16 12($0), $pop28114; NO-SIMD128-NEXT:    i32.const $push14=, -18115; NO-SIMD128-NEXT:    i32.xor $push3=, $6, $pop148116; NO-SIMD128-NEXT:    i32.store16 10($0), $pop38117; NO-SIMD128-NEXT:    i32.const $push13=, -18118; NO-SIMD128-NEXT:    i32.xor $push4=, $5, $pop138119; NO-SIMD128-NEXT:    i32.store16 8($0), $pop48120; NO-SIMD128-NEXT:    i32.const $push12=, -18121; NO-SIMD128-NEXT:    i32.xor $push5=, $4, $pop128122; NO-SIMD128-NEXT:    i32.store16 6($0), $pop58123; NO-SIMD128-NEXT:    i32.const $push11=, -18124; NO-SIMD128-NEXT:    i32.xor $push6=, $3, $pop118125; NO-SIMD128-NEXT:    i32.store16 4($0), $pop68126; NO-SIMD128-NEXT:    i32.const $push10=, -18127; NO-SIMD128-NEXT:    i32.xor $push7=, $2, $pop108128; NO-SIMD128-NEXT:    i32.store16 2($0), $pop78129; NO-SIMD128-NEXT:    i32.const $push9=, -18130; NO-SIMD128-NEXT:    i32.xor $push8=, $1, $pop98131; NO-SIMD128-NEXT:    i32.store16 0($0), $pop88132; NO-SIMD128-NEXT:    return8133;8134; NO-SIMD128-FAST-LABEL: not_v8i16:8135; NO-SIMD128-FAST:         .functype not_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8136; NO-SIMD128-FAST-NEXT:  # %bb.0:8137; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -18138; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop08139; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop18140; NO-SIMD128-FAST-NEXT:    i32.const $push15=, -18141; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $2, $pop158142; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop28143; NO-SIMD128-FAST-NEXT:    i32.const $push14=, -18144; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $3, $pop148145; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop38146; NO-SIMD128-FAST-NEXT:    i32.const $push13=, -18147; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $4, $pop138148; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop48149; NO-SIMD128-FAST-NEXT:    i32.const $push12=, -18150; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $5, $pop128151; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop58152; NO-SIMD128-FAST-NEXT:    i32.const $push11=, -18153; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $6, $pop118154; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop68155; NO-SIMD128-FAST-NEXT:    i32.const $push10=, -18156; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $7, $pop108157; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop78158; NO-SIMD128-FAST-NEXT:    i32.const $push9=, -18159; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $8, $pop98160; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop88161; NO-SIMD128-FAST-NEXT:    return8162  %a = xor <8 x i16> %x, <i16 -1, i16 -1, i16 -1, i16 -1,8163                          i16 -1, i16 -1, i16 -1, i16 -1>8164  ret <8 x i16> %a8165}8166 8167define <8 x i16> @andnot_v8i16(<8 x i16> %x, <8 x i16> %y) {8168; SIMD128-LABEL: andnot_v8i16:8169; SIMD128:         .functype andnot_v8i16 (v128, v128) -> (v128)8170; SIMD128-NEXT:  # %bb.0:8171; SIMD128-NEXT:    v128.andnot $push0=, $0, $18172; SIMD128-NEXT:    return $pop08173;8174; SIMD128-FAST-LABEL: andnot_v8i16:8175; SIMD128-FAST:         .functype andnot_v8i16 (v128, v128) -> (v128)8176; SIMD128-FAST-NEXT:  # %bb.0:8177; SIMD128-FAST-NEXT:    v128.not $push0=, $18178; SIMD128-FAST-NEXT:    v128.and $push1=, $0, $pop08179; SIMD128-FAST-NEXT:    return $pop18180;8181; NO-SIMD128-LABEL: andnot_v8i16:8182; NO-SIMD128:         .functype andnot_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8183; NO-SIMD128-NEXT:  # %bb.0:8184; NO-SIMD128-NEXT:    i32.const $push0=, -18185; NO-SIMD128-NEXT:    i32.xor $push1=, $16, $pop08186; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop18187; NO-SIMD128-NEXT:    i32.store16 14($0), $pop28188; NO-SIMD128-NEXT:    i32.const $push23=, -18189; NO-SIMD128-NEXT:    i32.xor $push3=, $15, $pop238190; NO-SIMD128-NEXT:    i32.and $push4=, $7, $pop38191; NO-SIMD128-NEXT:    i32.store16 12($0), $pop48192; NO-SIMD128-NEXT:    i32.const $push22=, -18193; NO-SIMD128-NEXT:    i32.xor $push5=, $14, $pop228194; NO-SIMD128-NEXT:    i32.and $push6=, $6, $pop58195; NO-SIMD128-NEXT:    i32.store16 10($0), $pop68196; NO-SIMD128-NEXT:    i32.const $push21=, -18197; NO-SIMD128-NEXT:    i32.xor $push7=, $13, $pop218198; NO-SIMD128-NEXT:    i32.and $push8=, $5, $pop78199; NO-SIMD128-NEXT:    i32.store16 8($0), $pop88200; NO-SIMD128-NEXT:    i32.const $push20=, -18201; NO-SIMD128-NEXT:    i32.xor $push9=, $12, $pop208202; NO-SIMD128-NEXT:    i32.and $push10=, $4, $pop98203; NO-SIMD128-NEXT:    i32.store16 6($0), $pop108204; NO-SIMD128-NEXT:    i32.const $push19=, -18205; NO-SIMD128-NEXT:    i32.xor $push11=, $11, $pop198206; NO-SIMD128-NEXT:    i32.and $push12=, $3, $pop118207; NO-SIMD128-NEXT:    i32.store16 4($0), $pop128208; NO-SIMD128-NEXT:    i32.const $push18=, -18209; NO-SIMD128-NEXT:    i32.xor $push13=, $10, $pop188210; NO-SIMD128-NEXT:    i32.and $push14=, $2, $pop138211; NO-SIMD128-NEXT:    i32.store16 2($0), $pop148212; NO-SIMD128-NEXT:    i32.const $push17=, -18213; NO-SIMD128-NEXT:    i32.xor $push15=, $9, $pop178214; NO-SIMD128-NEXT:    i32.and $push16=, $1, $pop158215; NO-SIMD128-NEXT:    i32.store16 0($0), $pop168216; NO-SIMD128-NEXT:    return8217;8218; NO-SIMD128-FAST-LABEL: andnot_v8i16:8219; NO-SIMD128-FAST:         .functype andnot_v8i16 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()8220; NO-SIMD128-FAST-NEXT:  # %bb.0:8221; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -18222; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $9, $pop08223; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop18224; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop28225; NO-SIMD128-FAST-NEXT:    i32.const $push23=, -18226; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $10, $pop238227; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $2, $pop38228; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop48229; NO-SIMD128-FAST-NEXT:    i32.const $push22=, -18230; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $11, $pop228231; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $3, $pop58232; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop68233; NO-SIMD128-FAST-NEXT:    i32.const $push21=, -18234; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $12, $pop218235; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $4, $pop78236; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop88237; NO-SIMD128-FAST-NEXT:    i32.const $push20=, -18238; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $13, $pop208239; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $5, $pop98240; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop108241; NO-SIMD128-FAST-NEXT:    i32.const $push19=, -18242; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $14, $pop198243; NO-SIMD128-FAST-NEXT:    i32.and $push12=, $6, $pop118244; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop128245; NO-SIMD128-FAST-NEXT:    i32.const $push18=, -18246; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $15, $pop188247; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $7, $pop138248; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop148249; NO-SIMD128-FAST-NEXT:    i32.const $push17=, -18250; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $16, $pop178251; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $8, $pop158252; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop168253; NO-SIMD128-FAST-NEXT:    return8254 %inv_y = xor <8 x i16> %y,8255   <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>8256 %a = and <8 x i16> %x, %inv_y8257 ret <8 x i16> %a8258}8259 8260define <8 x i16> @bitselect_v8i16(<8 x i16> %c, <8 x i16> %v1, <8 x i16> %v2) {8261; SIMD128-LABEL: bitselect_v8i16:8262; SIMD128:         .functype bitselect_v8i16 (v128, v128, v128) -> (v128)8263; SIMD128-NEXT:  # %bb.0:8264; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $08265; SIMD128-NEXT:    return $pop08266;8267; SIMD128-FAST-LABEL: bitselect_v8i16:8268; SIMD128-FAST:         .functype bitselect_v8i16 (v128, v128, v128) -> (v128)8269; SIMD128-FAST-NEXT:  # %bb.0:8270; SIMD128-FAST-NEXT:    v128.and $push0=, $1, $08271; SIMD128-FAST-NEXT:    v128.not $push2=, $08272; SIMD128-FAST-NEXT:    v128.and $push3=, $2, $pop28273; SIMD128-FAST-NEXT:    v128.or $push1=, $pop0, $pop38274; SIMD128-FAST-NEXT:    return $pop18275;8276; NO-SIMD128-LABEL: bitselect_v8i16:8277; NO-SIMD128:         .functype bitselect_v8i16 (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) -> ()8278; NO-SIMD128-NEXT:  # %bb.0:8279; NO-SIMD128-NEXT:    i32.xor $push0=, $16, $248280; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $88281; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $248282; NO-SIMD128-NEXT:    i32.store16 14($0), $pop28283; NO-SIMD128-NEXT:    i32.xor $push3=, $15, $238284; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $78285; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $238286; NO-SIMD128-NEXT:    i32.store16 12($0), $pop58287; NO-SIMD128-NEXT:    i32.xor $push6=, $14, $228288; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $68289; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $228290; NO-SIMD128-NEXT:    i32.store16 10($0), $pop88291; NO-SIMD128-NEXT:    i32.xor $push9=, $13, $218292; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $58293; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $218294; NO-SIMD128-NEXT:    i32.store16 8($0), $pop118295; NO-SIMD128-NEXT:    i32.xor $push12=, $12, $208296; NO-SIMD128-NEXT:    i32.and $push13=, $pop12, $48297; NO-SIMD128-NEXT:    i32.xor $push14=, $pop13, $208298; NO-SIMD128-NEXT:    i32.store16 6($0), $pop148299; NO-SIMD128-NEXT:    i32.xor $push15=, $11, $198300; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $38301; NO-SIMD128-NEXT:    i32.xor $push17=, $pop16, $198302; NO-SIMD128-NEXT:    i32.store16 4($0), $pop178303; NO-SIMD128-NEXT:    i32.xor $push18=, $10, $188304; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $28305; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $188306; NO-SIMD128-NEXT:    i32.store16 2($0), $pop208307; NO-SIMD128-NEXT:    i32.xor $push21=, $9, $178308; NO-SIMD128-NEXT:    i32.and $push22=, $pop21, $18309; NO-SIMD128-NEXT:    i32.xor $push23=, $pop22, $178310; NO-SIMD128-NEXT:    i32.store16 0($0), $pop238311; NO-SIMD128-NEXT:    return8312;8313; NO-SIMD128-FAST-LABEL: bitselect_v8i16:8314; NO-SIMD128-FAST:         .functype bitselect_v8i16 (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) -> ()8315; NO-SIMD128-FAST-NEXT:  # %bb.0:8316; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $9, $178317; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $18318; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $178319; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop28320; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $10, $188321; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $28322; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $188323; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop58324; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $11, $198325; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $38326; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $198327; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop88328; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $12, $208329; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $48330; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $208331; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop118332; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $13, $218333; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $58334; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $pop13, $218335; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop148336; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $14, $228337; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $68338; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $pop16, $228339; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop178340; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $15, $238341; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $78342; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $238343; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop208344; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $16, $248345; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $pop21, $88346; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $pop22, $248347; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop238348; NO-SIMD128-FAST-NEXT:    return8349  %masked_v1 = and <8 x i16> %v1, %c8350  %inv_mask = xor <8 x i16>8351    <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>,8352    %c8353  %masked_v2 = and <8 x i16> %v2, %inv_mask8354  %a = or <8 x i16> %masked_v1, %masked_v28355  ret <8 x i16> %a8356}8357 8358define <8 x i16> @bitselect_xor_v8i16(<8 x i16> %c, <8 x i16> %v1, <8 x i16> %v2) {8359; SIMD128-LABEL: bitselect_xor_v8i16:8360; SIMD128:         .functype bitselect_xor_v8i16 (v128, v128, v128) -> (v128)8361; SIMD128-NEXT:  # %bb.0:8362; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $08363; SIMD128-NEXT:    return $pop08364;8365; SIMD128-FAST-LABEL: bitselect_xor_v8i16:8366; SIMD128-FAST:         .functype bitselect_xor_v8i16 (v128, v128, v128) -> (v128)8367; SIMD128-FAST-NEXT:  # %bb.0:8368; SIMD128-FAST-NEXT:    v128.xor $push2=, $1, $28369; SIMD128-FAST-NEXT:    v128.and $push1=, $pop2, $08370; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop1, $28371; SIMD128-FAST-NEXT:    return $pop08372;8373; NO-SIMD128-LABEL: bitselect_xor_v8i16:8374; NO-SIMD128:         .functype bitselect_xor_v8i16 (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) -> ()8375; NO-SIMD128-NEXT:  # %bb.0:8376; NO-SIMD128-NEXT:    i32.xor $push0=, $16, $248377; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $88378; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $248379; NO-SIMD128-NEXT:    i32.store16 14($0), $pop28380; NO-SIMD128-NEXT:    i32.xor $push3=, $15, $238381; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $78382; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $238383; NO-SIMD128-NEXT:    i32.store16 12($0), $pop58384; NO-SIMD128-NEXT:    i32.xor $push6=, $14, $228385; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $68386; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $228387; NO-SIMD128-NEXT:    i32.store16 10($0), $pop88388; NO-SIMD128-NEXT:    i32.xor $push9=, $13, $218389; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $58390; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $218391; NO-SIMD128-NEXT:    i32.store16 8($0), $pop118392; NO-SIMD128-NEXT:    i32.xor $push12=, $12, $208393; NO-SIMD128-NEXT:    i32.and $push13=, $pop12, $48394; NO-SIMD128-NEXT:    i32.xor $push14=, $pop13, $208395; NO-SIMD128-NEXT:    i32.store16 6($0), $pop148396; NO-SIMD128-NEXT:    i32.xor $push15=, $11, $198397; NO-SIMD128-NEXT:    i32.and $push16=, $pop15, $38398; NO-SIMD128-NEXT:    i32.xor $push17=, $pop16, $198399; NO-SIMD128-NEXT:    i32.store16 4($0), $pop178400; NO-SIMD128-NEXT:    i32.xor $push18=, $10, $188401; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $28402; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $188403; NO-SIMD128-NEXT:    i32.store16 2($0), $pop208404; NO-SIMD128-NEXT:    i32.xor $push21=, $9, $178405; NO-SIMD128-NEXT:    i32.and $push22=, $pop21, $18406; NO-SIMD128-NEXT:    i32.xor $push23=, $pop22, $178407; NO-SIMD128-NEXT:    i32.store16 0($0), $pop238408; NO-SIMD128-NEXT:    return8409;8410; NO-SIMD128-FAST-LABEL: bitselect_xor_v8i16:8411; NO-SIMD128-FAST:         .functype bitselect_xor_v8i16 (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) -> ()8412; NO-SIMD128-FAST-NEXT:  # %bb.0:8413; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $9, $178414; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $18415; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $178416; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop28417; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $10, $188418; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $28419; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $188420; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop58421; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $11, $198422; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $38423; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $198424; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop88425; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $12, $208426; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $48427; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $208428; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop118429; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $13, $218430; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $pop12, $58431; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $pop13, $218432; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop148433; NO-SIMD128-FAST-NEXT:    i32.xor $push15=, $14, $228434; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $pop15, $68435; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $pop16, $228436; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop178437; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $15, $238438; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $78439; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $238440; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop208441; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $16, $248442; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $pop21, $88443; NO-SIMD128-FAST-NEXT:    i32.xor $push23=, $pop22, $248444; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop238445; NO-SIMD128-FAST-NEXT:    return8446 %xor1 = xor <8 x i16> %v1, %v28447 %and = and <8 x i16> %xor1, %c8448 %a = xor <8 x i16> %and, %v28449 ret <8 x i16> %a8450}8451 8452define <8 x i16> @bitselect_xor_reversed_v8i16(<8 x i16> %c, <8 x i16> %v1, <8 x i16> %v2) {8453; SIMD128-LABEL: bitselect_xor_reversed_v8i16:8454; SIMD128:         .functype bitselect_xor_reversed_v8i16 (v128, v128, v128) -> (v128)8455; SIMD128-NEXT:  # %bb.0:8456; SIMD128-NEXT:    v128.bitselect $push0=, $2, $1, $08457; SIMD128-NEXT:    return $pop08458;8459; SIMD128-FAST-LABEL: bitselect_xor_reversed_v8i16:8460; SIMD128-FAST:         .functype bitselect_xor_reversed_v8i16 (v128, v128, v128) -> (v128)8461; SIMD128-FAST-NEXT:  # %bb.0:8462; SIMD128-FAST-NEXT:    v128.xor $push1=, $1, $28463; SIMD128-FAST-NEXT:    v128.not $push2=, $08464; SIMD128-FAST-NEXT:    v128.and $push3=, $pop1, $pop28465; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop3, $28466; SIMD128-FAST-NEXT:    return $pop08467;8468; NO-SIMD128-LABEL: bitselect_xor_reversed_v8i16:8469; NO-SIMD128:         .functype bitselect_xor_reversed_v8i16 (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) -> ()8470; NO-SIMD128-NEXT:  # %bb.0:8471; NO-SIMD128-NEXT:    i32.xor $push2=, $16, $248472; NO-SIMD128-NEXT:    i32.const $push0=, -18473; NO-SIMD128-NEXT:    i32.xor $push1=, $8, $pop08474; NO-SIMD128-NEXT:    i32.and $push3=, $pop2, $pop18475; NO-SIMD128-NEXT:    i32.xor $push4=, $pop3, $248476; NO-SIMD128-NEXT:    i32.store16 14($0), $pop48477; NO-SIMD128-NEXT:    i32.xor $push6=, $15, $238478; NO-SIMD128-NEXT:    i32.const $push39=, -18479; NO-SIMD128-NEXT:    i32.xor $push5=, $7, $pop398480; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $pop58481; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $238482; NO-SIMD128-NEXT:    i32.store16 12($0), $pop88483; NO-SIMD128-NEXT:    i32.xor $push10=, $14, $228484; NO-SIMD128-NEXT:    i32.const $push38=, -18485; NO-SIMD128-NEXT:    i32.xor $push9=, $6, $pop388486; NO-SIMD128-NEXT:    i32.and $push11=, $pop10, $pop98487; NO-SIMD128-NEXT:    i32.xor $push12=, $pop11, $228488; NO-SIMD128-NEXT:    i32.store16 10($0), $pop128489; NO-SIMD128-NEXT:    i32.xor $push14=, $13, $218490; NO-SIMD128-NEXT:    i32.const $push37=, -18491; NO-SIMD128-NEXT:    i32.xor $push13=, $5, $pop378492; NO-SIMD128-NEXT:    i32.and $push15=, $pop14, $pop138493; NO-SIMD128-NEXT:    i32.xor $push16=, $pop15, $218494; NO-SIMD128-NEXT:    i32.store16 8($0), $pop168495; NO-SIMD128-NEXT:    i32.xor $push18=, $12, $208496; NO-SIMD128-NEXT:    i32.const $push36=, -18497; NO-SIMD128-NEXT:    i32.xor $push17=, $4, $pop368498; NO-SIMD128-NEXT:    i32.and $push19=, $pop18, $pop178499; NO-SIMD128-NEXT:    i32.xor $push20=, $pop19, $208500; NO-SIMD128-NEXT:    i32.store16 6($0), $pop208501; NO-SIMD128-NEXT:    i32.xor $push22=, $11, $198502; NO-SIMD128-NEXT:    i32.const $push35=, -18503; NO-SIMD128-NEXT:    i32.xor $push21=, $3, $pop358504; NO-SIMD128-NEXT:    i32.and $push23=, $pop22, $pop218505; NO-SIMD128-NEXT:    i32.xor $push24=, $pop23, $198506; NO-SIMD128-NEXT:    i32.store16 4($0), $pop248507; NO-SIMD128-NEXT:    i32.xor $push26=, $10, $188508; NO-SIMD128-NEXT:    i32.const $push34=, -18509; NO-SIMD128-NEXT:    i32.xor $push25=, $2, $pop348510; NO-SIMD128-NEXT:    i32.and $push27=, $pop26, $pop258511; NO-SIMD128-NEXT:    i32.xor $push28=, $pop27, $188512; NO-SIMD128-NEXT:    i32.store16 2($0), $pop288513; NO-SIMD128-NEXT:    i32.xor $push30=, $9, $178514; NO-SIMD128-NEXT:    i32.const $push33=, -18515; NO-SIMD128-NEXT:    i32.xor $push29=, $1, $pop338516; NO-SIMD128-NEXT:    i32.and $push31=, $pop30, $pop298517; NO-SIMD128-NEXT:    i32.xor $push32=, $pop31, $178518; NO-SIMD128-NEXT:    i32.store16 0($0), $pop328519; NO-SIMD128-NEXT:    return8520;8521; NO-SIMD128-FAST-LABEL: bitselect_xor_reversed_v8i16:8522; NO-SIMD128-FAST:         .functype bitselect_xor_reversed_v8i16 (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) -> ()8523; NO-SIMD128-FAST-NEXT:  # %bb.0:8524; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $9, $178525; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -18526; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop08527; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $pop2, $pop18528; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $pop3, $178529; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop48530; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $10, $188531; NO-SIMD128-FAST-NEXT:    i32.const $push39=, -18532; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $2, $pop398533; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop58534; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $188535; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop88536; NO-SIMD128-FAST-NEXT:    i32.xor $push10=, $11, $198537; NO-SIMD128-FAST-NEXT:    i32.const $push38=, -18538; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $3, $pop388539; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $pop10, $pop98540; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $pop11, $198541; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop128542; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $12, $208543; NO-SIMD128-FAST-NEXT:    i32.const $push37=, -18544; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $4, $pop378545; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $pop14, $pop138546; NO-SIMD128-FAST-NEXT:    i32.xor $push16=, $pop15, $208547; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop168548; NO-SIMD128-FAST-NEXT:    i32.xor $push18=, $13, $218549; NO-SIMD128-FAST-NEXT:    i32.const $push36=, -18550; NO-SIMD128-FAST-NEXT:    i32.xor $push17=, $5, $pop368551; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $pop18, $pop178552; NO-SIMD128-FAST-NEXT:    i32.xor $push20=, $pop19, $218553; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop208554; NO-SIMD128-FAST-NEXT:    i32.xor $push22=, $14, $228555; NO-SIMD128-FAST-NEXT:    i32.const $push35=, -18556; NO-SIMD128-FAST-NEXT:    i32.xor $push21=, $6, $pop358557; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $pop22, $pop218558; NO-SIMD128-FAST-NEXT:    i32.xor $push24=, $pop23, $228559; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop248560; NO-SIMD128-FAST-NEXT:    i32.xor $push26=, $15, $238561; NO-SIMD128-FAST-NEXT:    i32.const $push34=, -18562; NO-SIMD128-FAST-NEXT:    i32.xor $push25=, $7, $pop348563; NO-SIMD128-FAST-NEXT:    i32.and $push27=, $pop26, $pop258564; NO-SIMD128-FAST-NEXT:    i32.xor $push28=, $pop27, $238565; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop288566; NO-SIMD128-FAST-NEXT:    i32.xor $push30=, $16, $248567; NO-SIMD128-FAST-NEXT:    i32.const $push33=, -18568; NO-SIMD128-FAST-NEXT:    i32.xor $push29=, $8, $pop338569; NO-SIMD128-FAST-NEXT:    i32.and $push31=, $pop30, $pop298570; NO-SIMD128-FAST-NEXT:    i32.xor $push32=, $pop31, $248571; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop328572; NO-SIMD128-FAST-NEXT:    return8573 %xor1 = xor <8 x i16> %v1, %v28574 %notc = xor <8 x i16> %c, <i16 -1, i16 -1, i16 -1, i16 -1,8575                            i16 -1, i16 -1, i16 -1, i16 -1>8576 %and = and <8 x i16> %xor1, %notc8577 %a = xor <8 x i16> %and, %v28578 ret <8 x i16> %a8579}8580 8581define <8 x i16> @extmul_low_s_v8i16(<16 x i8> %v1, <16 x i8> %v2) {8582; SIMD128-LABEL: extmul_low_s_v8i16:8583; SIMD128:         .functype extmul_low_s_v8i16 (v128, v128) -> (v128)8584; SIMD128-NEXT:  # %bb.0:8585; SIMD128-NEXT:    i16x8.extmul_low_i8x16_s $push0=, $0, $18586; SIMD128-NEXT:    return $pop08587;8588; SIMD128-FAST-LABEL: extmul_low_s_v8i16:8589; SIMD128-FAST:         .functype extmul_low_s_v8i16 (v128, v128) -> (v128)8590; SIMD128-FAST-NEXT:  # %bb.0:8591; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_s $push0=, $08592; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_s $push1=, $18593; SIMD128-FAST-NEXT:    i16x8.mul $push2=, $pop0, $pop18594; SIMD128-FAST-NEXT:    return $pop28595;8596; NO-SIMD128-LABEL: extmul_low_s_v8i16:8597; NO-SIMD128:         .functype extmul_low_s_v8i16 (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) -> ()8598; NO-SIMD128-NEXT:  # %bb.0:8599; NO-SIMD128-NEXT:    i32.extend8_s $push1=, $88600; NO-SIMD128-NEXT:    i32.extend8_s $push0=, $248601; NO-SIMD128-NEXT:    i32.mul $push2=, $pop1, $pop08602; NO-SIMD128-NEXT:    i32.store16 14($0), $pop28603; NO-SIMD128-NEXT:    i32.extend8_s $push4=, $78604; NO-SIMD128-NEXT:    i32.extend8_s $push3=, $238605; NO-SIMD128-NEXT:    i32.mul $push5=, $pop4, $pop38606; NO-SIMD128-NEXT:    i32.store16 12($0), $pop58607; NO-SIMD128-NEXT:    i32.extend8_s $push7=, $68608; NO-SIMD128-NEXT:    i32.extend8_s $push6=, $228609; NO-SIMD128-NEXT:    i32.mul $push8=, $pop7, $pop68610; NO-SIMD128-NEXT:    i32.store16 10($0), $pop88611; NO-SIMD128-NEXT:    i32.extend8_s $push10=, $58612; NO-SIMD128-NEXT:    i32.extend8_s $push9=, $218613; NO-SIMD128-NEXT:    i32.mul $push11=, $pop10, $pop98614; NO-SIMD128-NEXT:    i32.store16 8($0), $pop118615; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $48616; NO-SIMD128-NEXT:    i32.extend8_s $push12=, $208617; NO-SIMD128-NEXT:    i32.mul $push14=, $pop13, $pop128618; NO-SIMD128-NEXT:    i32.store16 6($0), $pop148619; NO-SIMD128-NEXT:    i32.extend8_s $push16=, $38620; NO-SIMD128-NEXT:    i32.extend8_s $push15=, $198621; NO-SIMD128-NEXT:    i32.mul $push17=, $pop16, $pop158622; NO-SIMD128-NEXT:    i32.store16 4($0), $pop178623; NO-SIMD128-NEXT:    i32.extend8_s $push19=, $28624; NO-SIMD128-NEXT:    i32.extend8_s $push18=, $188625; NO-SIMD128-NEXT:    i32.mul $push20=, $pop19, $pop188626; NO-SIMD128-NEXT:    i32.store16 2($0), $pop208627; NO-SIMD128-NEXT:    i32.extend8_s $push22=, $18628; NO-SIMD128-NEXT:    i32.extend8_s $push21=, $178629; NO-SIMD128-NEXT:    i32.mul $push23=, $pop22, $pop218630; NO-SIMD128-NEXT:    i32.store16 0($0), $pop238631; NO-SIMD128-NEXT:    return8632;8633; NO-SIMD128-FAST-LABEL: extmul_low_s_v8i16:8634; NO-SIMD128-FAST:         .functype extmul_low_s_v8i16 (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) -> ()8635; NO-SIMD128-FAST-NEXT:  # %bb.0:8636; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push1=, $18637; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push0=, $178638; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $pop1, $pop08639; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop28640; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push4=, $28641; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push3=, $188642; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $pop4, $pop38643; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop58644; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push7=, $38645; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push6=, $198646; NO-SIMD128-FAST-NEXT:    i32.mul $push8=, $pop7, $pop68647; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop88648; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push10=, $48649; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push9=, $208650; NO-SIMD128-FAST-NEXT:    i32.mul $push11=, $pop10, $pop98651; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop118652; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $58653; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push12=, $218654; NO-SIMD128-FAST-NEXT:    i32.mul $push14=, $pop13, $pop128655; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop148656; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push16=, $68657; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push15=, $228658; NO-SIMD128-FAST-NEXT:    i32.mul $push17=, $pop16, $pop158659; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop178660; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push19=, $78661; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push18=, $238662; NO-SIMD128-FAST-NEXT:    i32.mul $push20=, $pop19, $pop188663; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop208664; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push22=, $88665; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push21=, $248666; NO-SIMD128-FAST-NEXT:    i32.mul $push23=, $pop22, $pop218667; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop238668; NO-SIMD128-FAST-NEXT:    return8669  %low1 = shufflevector <16 x i8> %v1, <16 x i8> undef,8670           <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>8671  %low2 = shufflevector <16 x i8> %v2, <16 x i8> undef,8672           <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>8673  %extended1 = sext <8 x i8> %low1 to <8 x i16>8674  %extended2 = sext <8 x i8> %low2 to <8 x i16>8675  %a = mul <8 x i16> %extended1, %extended28676  ret <8 x i16> %a8677}8678 8679define <8 x i16> @extmul_high_s_v8i16(<16 x i8> %v1, <16 x i8> %v2) {8680; SIMD128-LABEL: extmul_high_s_v8i16:8681; SIMD128:         .functype extmul_high_s_v8i16 (v128, v128) -> (v128)8682; SIMD128-NEXT:  # %bb.0:8683; SIMD128-NEXT:    i16x8.extmul_high_i8x16_s $push0=, $0, $18684; SIMD128-NEXT:    return $pop08685;8686; SIMD128-FAST-LABEL: extmul_high_s_v8i16:8687; SIMD128-FAST:         .functype extmul_high_s_v8i16 (v128, v128) -> (v128)8688; SIMD128-FAST-NEXT:  # %bb.0:8689; SIMD128-FAST-NEXT:    i16x8.extend_high_i8x16_s $push0=, $08690; SIMD128-FAST-NEXT:    i16x8.extend_high_i8x16_s $push1=, $18691; SIMD128-FAST-NEXT:    i16x8.mul $push2=, $pop0, $pop18692; SIMD128-FAST-NEXT:    return $pop28693;8694; NO-SIMD128-LABEL: extmul_high_s_v8i16:8695; NO-SIMD128:         .functype extmul_high_s_v8i16 (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) -> ()8696; NO-SIMD128-NEXT:  # %bb.0:8697; NO-SIMD128-NEXT:    i32.extend8_s $push1=, $168698; NO-SIMD128-NEXT:    i32.extend8_s $push0=, $328699; NO-SIMD128-NEXT:    i32.mul $push2=, $pop1, $pop08700; NO-SIMD128-NEXT:    i32.store16 14($0), $pop28701; NO-SIMD128-NEXT:    i32.extend8_s $push4=, $158702; NO-SIMD128-NEXT:    i32.extend8_s $push3=, $318703; NO-SIMD128-NEXT:    i32.mul $push5=, $pop4, $pop38704; NO-SIMD128-NEXT:    i32.store16 12($0), $pop58705; NO-SIMD128-NEXT:    i32.extend8_s $push7=, $148706; NO-SIMD128-NEXT:    i32.extend8_s $push6=, $308707; NO-SIMD128-NEXT:    i32.mul $push8=, $pop7, $pop68708; NO-SIMD128-NEXT:    i32.store16 10($0), $pop88709; NO-SIMD128-NEXT:    i32.extend8_s $push10=, $138710; NO-SIMD128-NEXT:    i32.extend8_s $push9=, $298711; NO-SIMD128-NEXT:    i32.mul $push11=, $pop10, $pop98712; NO-SIMD128-NEXT:    i32.store16 8($0), $pop118713; NO-SIMD128-NEXT:    i32.extend8_s $push13=, $128714; NO-SIMD128-NEXT:    i32.extend8_s $push12=, $288715; NO-SIMD128-NEXT:    i32.mul $push14=, $pop13, $pop128716; NO-SIMD128-NEXT:    i32.store16 6($0), $pop148717; NO-SIMD128-NEXT:    i32.extend8_s $push16=, $118718; NO-SIMD128-NEXT:    i32.extend8_s $push15=, $278719; NO-SIMD128-NEXT:    i32.mul $push17=, $pop16, $pop158720; NO-SIMD128-NEXT:    i32.store16 4($0), $pop178721; NO-SIMD128-NEXT:    i32.extend8_s $push19=, $108722; NO-SIMD128-NEXT:    i32.extend8_s $push18=, $268723; NO-SIMD128-NEXT:    i32.mul $push20=, $pop19, $pop188724; NO-SIMD128-NEXT:    i32.store16 2($0), $pop208725; NO-SIMD128-NEXT:    i32.extend8_s $push22=, $98726; NO-SIMD128-NEXT:    i32.extend8_s $push21=, $258727; NO-SIMD128-NEXT:    i32.mul $push23=, $pop22, $pop218728; NO-SIMD128-NEXT:    i32.store16 0($0), $pop238729; NO-SIMD128-NEXT:    return8730;8731; NO-SIMD128-FAST-LABEL: extmul_high_s_v8i16:8732; NO-SIMD128-FAST:         .functype extmul_high_s_v8i16 (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) -> ()8733; NO-SIMD128-FAST-NEXT:  # %bb.0:8734; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push1=, $98735; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push0=, $258736; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $pop1, $pop08737; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop28738; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push4=, $108739; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push3=, $268740; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $pop4, $pop38741; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop58742; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push7=, $118743; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push6=, $278744; NO-SIMD128-FAST-NEXT:    i32.mul $push8=, $pop7, $pop68745; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop88746; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push10=, $128747; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push9=, $288748; NO-SIMD128-FAST-NEXT:    i32.mul $push11=, $pop10, $pop98749; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop118750; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push13=, $138751; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push12=, $298752; NO-SIMD128-FAST-NEXT:    i32.mul $push14=, $pop13, $pop128753; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop148754; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push16=, $148755; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push15=, $308756; NO-SIMD128-FAST-NEXT:    i32.mul $push17=, $pop16, $pop158757; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop178758; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push19=, $158759; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push18=, $318760; NO-SIMD128-FAST-NEXT:    i32.mul $push20=, $pop19, $pop188761; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop208762; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push22=, $168763; NO-SIMD128-FAST-NEXT:    i32.extend8_s $push21=, $328764; NO-SIMD128-FAST-NEXT:    i32.mul $push23=, $pop22, $pop218765; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop238766; NO-SIMD128-FAST-NEXT:    return8767  %high1 = shufflevector <16 x i8> %v1, <16 x i8> undef,8768           <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>8769  %high2 = shufflevector <16 x i8> %v2, <16 x i8> undef,8770           <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>8771  %extended1 = sext <8 x i8> %high1 to <8 x i16>8772  %extended2 = sext <8 x i8> %high2 to <8 x i16>8773  %a = mul <8 x i16> %extended1, %extended28774  ret <8 x i16> %a8775}8776 8777define <8 x i16> @extmul_low_u_v8i16(<16 x i8> %v1, <16 x i8> %v2) {8778; SIMD128-LABEL: extmul_low_u_v8i16:8779; SIMD128:         .functype extmul_low_u_v8i16 (v128, v128) -> (v128)8780; SIMD128-NEXT:  # %bb.0:8781; SIMD128-NEXT:    i16x8.extmul_low_i8x16_u $push0=, $0, $18782; SIMD128-NEXT:    return $pop08783;8784; SIMD128-FAST-LABEL: extmul_low_u_v8i16:8785; SIMD128-FAST:         .functype extmul_low_u_v8i16 (v128, v128) -> (v128)8786; SIMD128-FAST-NEXT:  # %bb.0:8787; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_u $push0=, $08788; SIMD128-FAST-NEXT:    i16x8.extend_low_i8x16_u $push1=, $18789; SIMD128-FAST-NEXT:    i16x8.mul $push2=, $pop0, $pop18790; SIMD128-FAST-NEXT:    return $pop28791;8792; NO-SIMD128-LABEL: extmul_low_u_v8i16:8793; NO-SIMD128:         .functype extmul_low_u_v8i16 (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) -> ()8794; NO-SIMD128-NEXT:  # %bb.0:8795; NO-SIMD128-NEXT:    i32.const $push0=, 2558796; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop08797; NO-SIMD128-NEXT:    i32.const $push39=, 2558798; NO-SIMD128-NEXT:    i32.and $push1=, $24, $pop398799; NO-SIMD128-NEXT:    i32.mul $push3=, $pop2, $pop18800; NO-SIMD128-NEXT:    i32.store16 14($0), $pop38801; NO-SIMD128-NEXT:    i32.const $push38=, 2558802; NO-SIMD128-NEXT:    i32.and $push5=, $7, $pop388803; NO-SIMD128-NEXT:    i32.const $push37=, 2558804; NO-SIMD128-NEXT:    i32.and $push4=, $23, $pop378805; NO-SIMD128-NEXT:    i32.mul $push6=, $pop5, $pop48806; NO-SIMD128-NEXT:    i32.store16 12($0), $pop68807; NO-SIMD128-NEXT:    i32.const $push36=, 2558808; NO-SIMD128-NEXT:    i32.and $push8=, $6, $pop368809; NO-SIMD128-NEXT:    i32.const $push35=, 2558810; NO-SIMD128-NEXT:    i32.and $push7=, $22, $pop358811; NO-SIMD128-NEXT:    i32.mul $push9=, $pop8, $pop78812; NO-SIMD128-NEXT:    i32.store16 10($0), $pop98813; NO-SIMD128-NEXT:    i32.const $push34=, 2558814; NO-SIMD128-NEXT:    i32.and $push11=, $5, $pop348815; NO-SIMD128-NEXT:    i32.const $push33=, 2558816; NO-SIMD128-NEXT:    i32.and $push10=, $21, $pop338817; NO-SIMD128-NEXT:    i32.mul $push12=, $pop11, $pop108818; NO-SIMD128-NEXT:    i32.store16 8($0), $pop128819; NO-SIMD128-NEXT:    i32.const $push32=, 2558820; NO-SIMD128-NEXT:    i32.and $push14=, $4, $pop328821; NO-SIMD128-NEXT:    i32.const $push31=, 2558822; NO-SIMD128-NEXT:    i32.and $push13=, $20, $pop318823; NO-SIMD128-NEXT:    i32.mul $push15=, $pop14, $pop138824; NO-SIMD128-NEXT:    i32.store16 6($0), $pop158825; NO-SIMD128-NEXT:    i32.const $push30=, 2558826; NO-SIMD128-NEXT:    i32.and $push17=, $3, $pop308827; NO-SIMD128-NEXT:    i32.const $push29=, 2558828; NO-SIMD128-NEXT:    i32.and $push16=, $19, $pop298829; NO-SIMD128-NEXT:    i32.mul $push18=, $pop17, $pop168830; NO-SIMD128-NEXT:    i32.store16 4($0), $pop188831; NO-SIMD128-NEXT:    i32.const $push28=, 2558832; NO-SIMD128-NEXT:    i32.and $push20=, $2, $pop288833; NO-SIMD128-NEXT:    i32.const $push27=, 2558834; NO-SIMD128-NEXT:    i32.and $push19=, $18, $pop278835; NO-SIMD128-NEXT:    i32.mul $push21=, $pop20, $pop198836; NO-SIMD128-NEXT:    i32.store16 2($0), $pop218837; NO-SIMD128-NEXT:    i32.const $push26=, 2558838; NO-SIMD128-NEXT:    i32.and $push23=, $1, $pop268839; NO-SIMD128-NEXT:    i32.const $push25=, 2558840; NO-SIMD128-NEXT:    i32.and $push22=, $17, $pop258841; NO-SIMD128-NEXT:    i32.mul $push24=, $pop23, $pop228842; NO-SIMD128-NEXT:    i32.store16 0($0), $pop248843; NO-SIMD128-NEXT:    return8844;8845; NO-SIMD128-FAST-LABEL: extmul_low_u_v8i16:8846; NO-SIMD128-FAST:         .functype extmul_low_u_v8i16 (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) -> ()8847; NO-SIMD128-FAST-NEXT:  # %bb.0:8848; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2558849; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop08850; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 2558851; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $17, $pop398852; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $pop2, $pop18853; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop38854; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 2558855; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $2, $pop388856; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 2558857; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $18, $pop378858; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $pop5, $pop48859; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop68860; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 2558861; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $3, $pop368862; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 2558863; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $19, $pop358864; NO-SIMD128-FAST-NEXT:    i32.mul $push9=, $pop8, $pop78865; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop98866; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 2558867; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $4, $pop348868; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 2558869; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $20, $pop338870; NO-SIMD128-FAST-NEXT:    i32.mul $push12=, $pop11, $pop108871; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop128872; NO-SIMD128-FAST-NEXT:    i32.const $push32=, 2558873; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $5, $pop328874; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 2558875; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $21, $pop318876; NO-SIMD128-FAST-NEXT:    i32.mul $push15=, $pop14, $pop138877; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop158878; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 2558879; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $6, $pop308880; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 2558881; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $22, $pop298882; NO-SIMD128-FAST-NEXT:    i32.mul $push18=, $pop17, $pop168883; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop188884; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 2558885; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $7, $pop288886; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 2558887; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $23, $pop278888; NO-SIMD128-FAST-NEXT:    i32.mul $push21=, $pop20, $pop198889; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop218890; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 2558891; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $8, $pop268892; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 2558893; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $24, $pop258894; NO-SIMD128-FAST-NEXT:    i32.mul $push24=, $pop23, $pop228895; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop248896; NO-SIMD128-FAST-NEXT:    return8897  %low1 = shufflevector <16 x i8> %v1, <16 x i8> undef,8898           <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>8899  %low2 = shufflevector <16 x i8> %v2, <16 x i8> undef,8900           <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>8901  %extended1 = zext <8 x i8> %low1 to <8 x i16>8902  %extended2 = zext <8 x i8> %low2 to <8 x i16>8903  %a = mul <8 x i16> %extended1, %extended28904  ret <8 x i16> %a8905}8906 8907define <8 x i16> @extmul_high_u_v8i16(<16 x i8> %v1, <16 x i8> %v2) {8908; SIMD128-LABEL: extmul_high_u_v8i16:8909; SIMD128:         .functype extmul_high_u_v8i16 (v128, v128) -> (v128)8910; SIMD128-NEXT:  # %bb.0:8911; SIMD128-NEXT:    i16x8.extmul_high_i8x16_u $push0=, $0, $18912; SIMD128-NEXT:    return $pop08913;8914; SIMD128-FAST-LABEL: extmul_high_u_v8i16:8915; SIMD128-FAST:         .functype extmul_high_u_v8i16 (v128, v128) -> (v128)8916; SIMD128-FAST-NEXT:  # %bb.0:8917; SIMD128-FAST-NEXT:    i16x8.extend_high_i8x16_u $push0=, $08918; SIMD128-FAST-NEXT:    i16x8.extend_high_i8x16_u $push1=, $18919; SIMD128-FAST-NEXT:    i16x8.mul $push2=, $pop0, $pop18920; SIMD128-FAST-NEXT:    return $pop28921;8922; NO-SIMD128-LABEL: extmul_high_u_v8i16:8923; NO-SIMD128:         .functype extmul_high_u_v8i16 (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) -> ()8924; NO-SIMD128-NEXT:  # %bb.0:8925; NO-SIMD128-NEXT:    i32.const $push0=, 2558926; NO-SIMD128-NEXT:    i32.and $push2=, $16, $pop08927; NO-SIMD128-NEXT:    i32.const $push39=, 2558928; NO-SIMD128-NEXT:    i32.and $push1=, $32, $pop398929; NO-SIMD128-NEXT:    i32.mul $push3=, $pop2, $pop18930; NO-SIMD128-NEXT:    i32.store16 14($0), $pop38931; NO-SIMD128-NEXT:    i32.const $push38=, 2558932; NO-SIMD128-NEXT:    i32.and $push5=, $15, $pop388933; NO-SIMD128-NEXT:    i32.const $push37=, 2558934; NO-SIMD128-NEXT:    i32.and $push4=, $31, $pop378935; NO-SIMD128-NEXT:    i32.mul $push6=, $pop5, $pop48936; NO-SIMD128-NEXT:    i32.store16 12($0), $pop68937; NO-SIMD128-NEXT:    i32.const $push36=, 2558938; NO-SIMD128-NEXT:    i32.and $push8=, $14, $pop368939; NO-SIMD128-NEXT:    i32.const $push35=, 2558940; NO-SIMD128-NEXT:    i32.and $push7=, $30, $pop358941; NO-SIMD128-NEXT:    i32.mul $push9=, $pop8, $pop78942; NO-SIMD128-NEXT:    i32.store16 10($0), $pop98943; NO-SIMD128-NEXT:    i32.const $push34=, 2558944; NO-SIMD128-NEXT:    i32.and $push11=, $13, $pop348945; NO-SIMD128-NEXT:    i32.const $push33=, 2558946; NO-SIMD128-NEXT:    i32.and $push10=, $29, $pop338947; NO-SIMD128-NEXT:    i32.mul $push12=, $pop11, $pop108948; NO-SIMD128-NEXT:    i32.store16 8($0), $pop128949; NO-SIMD128-NEXT:    i32.const $push32=, 2558950; NO-SIMD128-NEXT:    i32.and $push14=, $12, $pop328951; NO-SIMD128-NEXT:    i32.const $push31=, 2558952; NO-SIMD128-NEXT:    i32.and $push13=, $28, $pop318953; NO-SIMD128-NEXT:    i32.mul $push15=, $pop14, $pop138954; NO-SIMD128-NEXT:    i32.store16 6($0), $pop158955; NO-SIMD128-NEXT:    i32.const $push30=, 2558956; NO-SIMD128-NEXT:    i32.and $push17=, $11, $pop308957; NO-SIMD128-NEXT:    i32.const $push29=, 2558958; NO-SIMD128-NEXT:    i32.and $push16=, $27, $pop298959; NO-SIMD128-NEXT:    i32.mul $push18=, $pop17, $pop168960; NO-SIMD128-NEXT:    i32.store16 4($0), $pop188961; NO-SIMD128-NEXT:    i32.const $push28=, 2558962; NO-SIMD128-NEXT:    i32.and $push20=, $10, $pop288963; NO-SIMD128-NEXT:    i32.const $push27=, 2558964; NO-SIMD128-NEXT:    i32.and $push19=, $26, $pop278965; NO-SIMD128-NEXT:    i32.mul $push21=, $pop20, $pop198966; NO-SIMD128-NEXT:    i32.store16 2($0), $pop218967; NO-SIMD128-NEXT:    i32.const $push26=, 2558968; NO-SIMD128-NEXT:    i32.and $push23=, $9, $pop268969; NO-SIMD128-NEXT:    i32.const $push25=, 2558970; NO-SIMD128-NEXT:    i32.and $push22=, $25, $pop258971; NO-SIMD128-NEXT:    i32.mul $push24=, $pop23, $pop228972; NO-SIMD128-NEXT:    i32.store16 0($0), $pop248973; NO-SIMD128-NEXT:    return8974;8975; NO-SIMD128-FAST-LABEL: extmul_high_u_v8i16:8976; NO-SIMD128-FAST:         .functype extmul_high_u_v8i16 (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) -> ()8977; NO-SIMD128-FAST-NEXT:  # %bb.0:8978; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 2558979; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $9, $pop08980; NO-SIMD128-FAST-NEXT:    i32.const $push39=, 2558981; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $25, $pop398982; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $pop2, $pop18983; NO-SIMD128-FAST-NEXT:    i32.store16 0($0), $pop38984; NO-SIMD128-FAST-NEXT:    i32.const $push38=, 2558985; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $10, $pop388986; NO-SIMD128-FAST-NEXT:    i32.const $push37=, 2558987; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $26, $pop378988; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $pop5, $pop48989; NO-SIMD128-FAST-NEXT:    i32.store16 2($0), $pop68990; NO-SIMD128-FAST-NEXT:    i32.const $push36=, 2558991; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $11, $pop368992; NO-SIMD128-FAST-NEXT:    i32.const $push35=, 2558993; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $27, $pop358994; NO-SIMD128-FAST-NEXT:    i32.mul $push9=, $pop8, $pop78995; NO-SIMD128-FAST-NEXT:    i32.store16 4($0), $pop98996; NO-SIMD128-FAST-NEXT:    i32.const $push34=, 2558997; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $12, $pop348998; NO-SIMD128-FAST-NEXT:    i32.const $push33=, 2558999; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $28, $pop339000; NO-SIMD128-FAST-NEXT:    i32.mul $push12=, $pop11, $pop109001; NO-SIMD128-FAST-NEXT:    i32.store16 6($0), $pop129002; NO-SIMD128-FAST-NEXT:    i32.const $push32=, 2559003; NO-SIMD128-FAST-NEXT:    i32.and $push14=, $13, $pop329004; NO-SIMD128-FAST-NEXT:    i32.const $push31=, 2559005; NO-SIMD128-FAST-NEXT:    i32.and $push13=, $29, $pop319006; NO-SIMD128-FAST-NEXT:    i32.mul $push15=, $pop14, $pop139007; NO-SIMD128-FAST-NEXT:    i32.store16 8($0), $pop159008; NO-SIMD128-FAST-NEXT:    i32.const $push30=, 2559009; NO-SIMD128-FAST-NEXT:    i32.and $push17=, $14, $pop309010; NO-SIMD128-FAST-NEXT:    i32.const $push29=, 2559011; NO-SIMD128-FAST-NEXT:    i32.and $push16=, $30, $pop299012; NO-SIMD128-FAST-NEXT:    i32.mul $push18=, $pop17, $pop169013; NO-SIMD128-FAST-NEXT:    i32.store16 10($0), $pop189014; NO-SIMD128-FAST-NEXT:    i32.const $push28=, 2559015; NO-SIMD128-FAST-NEXT:    i32.and $push20=, $15, $pop289016; NO-SIMD128-FAST-NEXT:    i32.const $push27=, 2559017; NO-SIMD128-FAST-NEXT:    i32.and $push19=, $31, $pop279018; NO-SIMD128-FAST-NEXT:    i32.mul $push21=, $pop20, $pop199019; NO-SIMD128-FAST-NEXT:    i32.store16 12($0), $pop219020; NO-SIMD128-FAST-NEXT:    i32.const $push26=, 2559021; NO-SIMD128-FAST-NEXT:    i32.and $push23=, $16, $pop269022; NO-SIMD128-FAST-NEXT:    i32.const $push25=, 2559023; NO-SIMD128-FAST-NEXT:    i32.and $push22=, $32, $pop259024; NO-SIMD128-FAST-NEXT:    i32.mul $push24=, $pop23, $pop229025; NO-SIMD128-FAST-NEXT:    i32.store16 14($0), $pop249026; NO-SIMD128-FAST-NEXT:    return9027  %high1 = shufflevector <16 x i8> %v1, <16 x i8> undef,9028           <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>9029  %high2 = shufflevector <16 x i8> %v2, <16 x i8> undef,9030           <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>9031  %extended1 = zext <8 x i8> %high1 to <8 x i16>9032  %extended2 = zext <8 x i8> %high2 to <8 x i16>9033  %a = mul <8 x i16> %extended1, %extended29034  ret <8 x i16> %a9035}9036 9037; ==============================================================================9038; 4 x i329039; ==============================================================================9040define <4 x i32> @add_v4i32(<4 x i32> %x, <4 x i32> %y) {9041; SIMD128-LABEL: add_v4i32:9042; SIMD128:         .functype add_v4i32 (v128, v128) -> (v128)9043; SIMD128-NEXT:  # %bb.0:9044; SIMD128-NEXT:    i32x4.add $push0=, $0, $19045; SIMD128-NEXT:    return $pop09046;9047; SIMD128-FAST-LABEL: add_v4i32:9048; SIMD128-FAST:         .functype add_v4i32 (v128, v128) -> (v128)9049; SIMD128-FAST-NEXT:  # %bb.0:9050; SIMD128-FAST-NEXT:    i32x4.add $push0=, $0, $19051; SIMD128-FAST-NEXT:    return $pop09052;9053; NO-SIMD128-LABEL: add_v4i32:9054; NO-SIMD128:         .functype add_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9055; NO-SIMD128-NEXT:  # %bb.0:9056; NO-SIMD128-NEXT:    i32.add $push0=, $4, $89057; NO-SIMD128-NEXT:    i32.store 12($0), $pop09058; NO-SIMD128-NEXT:    i32.add $push1=, $3, $79059; NO-SIMD128-NEXT:    i32.store 8($0), $pop19060; NO-SIMD128-NEXT:    i32.add $push2=, $2, $69061; NO-SIMD128-NEXT:    i32.store 4($0), $pop29062; NO-SIMD128-NEXT:    i32.add $push3=, $1, $59063; NO-SIMD128-NEXT:    i32.store 0($0), $pop39064; NO-SIMD128-NEXT:    return9065;9066; NO-SIMD128-FAST-LABEL: add_v4i32:9067; NO-SIMD128-FAST:         .functype add_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9068; NO-SIMD128-FAST-NEXT:  # %bb.0:9069; NO-SIMD128-FAST-NEXT:    i32.add $push0=, $1, $59070; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09071; NO-SIMD128-FAST-NEXT:    i32.add $push1=, $2, $69072; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19073; NO-SIMD128-FAST-NEXT:    i32.add $push2=, $3, $79074; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29075; NO-SIMD128-FAST-NEXT:    i32.add $push3=, $4, $89076; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39077; NO-SIMD128-FAST-NEXT:    return9078  %a = add <4 x i32> %x, %y9079  ret <4 x i32> %a9080}9081 9082define <4 x i32> @sub_v4i32(<4 x i32> %x, <4 x i32> %y) {9083; SIMD128-LABEL: sub_v4i32:9084; SIMD128:         .functype sub_v4i32 (v128, v128) -> (v128)9085; SIMD128-NEXT:  # %bb.0:9086; SIMD128-NEXT:    i32x4.sub $push0=, $0, $19087; SIMD128-NEXT:    return $pop09088;9089; SIMD128-FAST-LABEL: sub_v4i32:9090; SIMD128-FAST:         .functype sub_v4i32 (v128, v128) -> (v128)9091; SIMD128-FAST-NEXT:  # %bb.0:9092; SIMD128-FAST-NEXT:    i32x4.sub $push0=, $0, $19093; SIMD128-FAST-NEXT:    return $pop09094;9095; NO-SIMD128-LABEL: sub_v4i32:9096; NO-SIMD128:         .functype sub_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9097; NO-SIMD128-NEXT:  # %bb.0:9098; NO-SIMD128-NEXT:    i32.sub $push0=, $4, $89099; NO-SIMD128-NEXT:    i32.store 12($0), $pop09100; NO-SIMD128-NEXT:    i32.sub $push1=, $3, $79101; NO-SIMD128-NEXT:    i32.store 8($0), $pop19102; NO-SIMD128-NEXT:    i32.sub $push2=, $2, $69103; NO-SIMD128-NEXT:    i32.store 4($0), $pop29104; NO-SIMD128-NEXT:    i32.sub $push3=, $1, $59105; NO-SIMD128-NEXT:    i32.store 0($0), $pop39106; NO-SIMD128-NEXT:    return9107;9108; NO-SIMD128-FAST-LABEL: sub_v4i32:9109; NO-SIMD128-FAST:         .functype sub_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9110; NO-SIMD128-FAST-NEXT:  # %bb.0:9111; NO-SIMD128-FAST-NEXT:    i32.sub $push0=, $1, $59112; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09113; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $2, $69114; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19115; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $3, $79116; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29117; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $4, $89118; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39119; NO-SIMD128-FAST-NEXT:    return9120  %a = sub <4 x i32> %x, %y9121  ret <4 x i32> %a9122}9123 9124define <4 x i32> @mul_v4i32(<4 x i32> %x, <4 x i32> %y) {9125; SIMD128-LABEL: mul_v4i32:9126; SIMD128:         .functype mul_v4i32 (v128, v128) -> (v128)9127; SIMD128-NEXT:  # %bb.0:9128; SIMD128-NEXT:    i32x4.mul $push0=, $0, $19129; SIMD128-NEXT:    return $pop09130;9131; SIMD128-FAST-LABEL: mul_v4i32:9132; SIMD128-FAST:         .functype mul_v4i32 (v128, v128) -> (v128)9133; SIMD128-FAST-NEXT:  # %bb.0:9134; SIMD128-FAST-NEXT:    i32x4.mul $push0=, $0, $19135; SIMD128-FAST-NEXT:    return $pop09136;9137; NO-SIMD128-LABEL: mul_v4i32:9138; NO-SIMD128:         .functype mul_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9139; NO-SIMD128-NEXT:  # %bb.0:9140; NO-SIMD128-NEXT:    i32.mul $push0=, $4, $89141; NO-SIMD128-NEXT:    i32.store 12($0), $pop09142; NO-SIMD128-NEXT:    i32.mul $push1=, $3, $79143; NO-SIMD128-NEXT:    i32.store 8($0), $pop19144; NO-SIMD128-NEXT:    i32.mul $push2=, $2, $69145; NO-SIMD128-NEXT:    i32.store 4($0), $pop29146; NO-SIMD128-NEXT:    i32.mul $push3=, $1, $59147; NO-SIMD128-NEXT:    i32.store 0($0), $pop39148; NO-SIMD128-NEXT:    return9149;9150; NO-SIMD128-FAST-LABEL: mul_v4i32:9151; NO-SIMD128-FAST:         .functype mul_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9152; NO-SIMD128-FAST-NEXT:  # %bb.0:9153; NO-SIMD128-FAST-NEXT:    i32.mul $push0=, $1, $59154; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09155; NO-SIMD128-FAST-NEXT:    i32.mul $push1=, $2, $69156; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19157; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $3, $79158; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29159; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $4, $89160; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39161; NO-SIMD128-FAST-NEXT:    return9162  %a = mul <4 x i32> %x, %y9163  ret <4 x i32> %a9164}9165 9166define <4 x i32> @min_s_v4i32(<4 x i32> %x, <4 x i32> %y) {9167; SIMD128-LABEL: min_s_v4i32:9168; SIMD128:         .functype min_s_v4i32 (v128, v128) -> (v128)9169; SIMD128-NEXT:  # %bb.0:9170; SIMD128-NEXT:    i32x4.min_s $push0=, $0, $19171; SIMD128-NEXT:    return $pop09172;9173; SIMD128-FAST-LABEL: min_s_v4i32:9174; SIMD128-FAST:         .functype min_s_v4i32 (v128, v128) -> (v128)9175; SIMD128-FAST-NEXT:  # %bb.0:9176; SIMD128-FAST-NEXT:    i32x4.min_s $push0=, $0, $19177; SIMD128-FAST-NEXT:    return $pop09178;9179; NO-SIMD128-LABEL: min_s_v4i32:9180; NO-SIMD128:         .functype min_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9181; NO-SIMD128-NEXT:  # %bb.0:9182; NO-SIMD128-NEXT:    i32.lt_s $push0=, $4, $89183; NO-SIMD128-NEXT:    i32.select $push1=, $4, $8, $pop09184; NO-SIMD128-NEXT:    i32.store 12($0), $pop19185; NO-SIMD128-NEXT:    i32.lt_s $push2=, $3, $79186; NO-SIMD128-NEXT:    i32.select $push3=, $3, $7, $pop29187; NO-SIMD128-NEXT:    i32.store 8($0), $pop39188; NO-SIMD128-NEXT:    i32.lt_s $push4=, $2, $69189; NO-SIMD128-NEXT:    i32.select $push5=, $2, $6, $pop49190; NO-SIMD128-NEXT:    i32.store 4($0), $pop59191; NO-SIMD128-NEXT:    i32.lt_s $push6=, $1, $59192; NO-SIMD128-NEXT:    i32.select $push7=, $1, $5, $pop69193; NO-SIMD128-NEXT:    i32.store 0($0), $pop79194; NO-SIMD128-NEXT:    return9195;9196; NO-SIMD128-FAST-LABEL: min_s_v4i32:9197; NO-SIMD128-FAST:         .functype min_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9198; NO-SIMD128-FAST-NEXT:  # %bb.0:9199; NO-SIMD128-FAST-NEXT:    i32.lt_s $push0=, $1, $59200; NO-SIMD128-FAST-NEXT:    i32.select $push1=, $1, $5, $pop09201; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19202; NO-SIMD128-FAST-NEXT:    i32.lt_s $push2=, $2, $69203; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $2, $6, $pop29204; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop39205; NO-SIMD128-FAST-NEXT:    i32.lt_s $push4=, $3, $79206; NO-SIMD128-FAST-NEXT:    i32.select $push5=, $3, $7, $pop49207; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop59208; NO-SIMD128-FAST-NEXT:    i32.lt_s $push6=, $4, $89209; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $4, $8, $pop69210; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop79211; NO-SIMD128-FAST-NEXT:    return9212  %c = icmp slt <4 x i32> %x, %y9213  %a = select <4 x i1> %c, <4 x i32> %x, <4 x i32> %y9214  ret <4 x i32> %a9215}9216 9217define <4 x i32> @min_u_v4i32(<4 x i32> %x, <4 x i32> %y) {9218; SIMD128-LABEL: min_u_v4i32:9219; SIMD128:         .functype min_u_v4i32 (v128, v128) -> (v128)9220; SIMD128-NEXT:  # %bb.0:9221; SIMD128-NEXT:    i32x4.min_u $push0=, $0, $19222; SIMD128-NEXT:    return $pop09223;9224; SIMD128-FAST-LABEL: min_u_v4i32:9225; SIMD128-FAST:         .functype min_u_v4i32 (v128, v128) -> (v128)9226; SIMD128-FAST-NEXT:  # %bb.0:9227; SIMD128-FAST-NEXT:    i32x4.min_u $push0=, $0, $19228; SIMD128-FAST-NEXT:    return $pop09229;9230; NO-SIMD128-LABEL: min_u_v4i32:9231; NO-SIMD128:         .functype min_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9232; NO-SIMD128-NEXT:  # %bb.0:9233; NO-SIMD128-NEXT:    i32.lt_u $push0=, $4, $89234; NO-SIMD128-NEXT:    i32.select $push1=, $4, $8, $pop09235; NO-SIMD128-NEXT:    i32.store 12($0), $pop19236; NO-SIMD128-NEXT:    i32.lt_u $push2=, $3, $79237; NO-SIMD128-NEXT:    i32.select $push3=, $3, $7, $pop29238; NO-SIMD128-NEXT:    i32.store 8($0), $pop39239; NO-SIMD128-NEXT:    i32.lt_u $push4=, $2, $69240; NO-SIMD128-NEXT:    i32.select $push5=, $2, $6, $pop49241; NO-SIMD128-NEXT:    i32.store 4($0), $pop59242; NO-SIMD128-NEXT:    i32.lt_u $push6=, $1, $59243; NO-SIMD128-NEXT:    i32.select $push7=, $1, $5, $pop69244; NO-SIMD128-NEXT:    i32.store 0($0), $pop79245; NO-SIMD128-NEXT:    return9246;9247; NO-SIMD128-FAST-LABEL: min_u_v4i32:9248; NO-SIMD128-FAST:         .functype min_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9249; NO-SIMD128-FAST-NEXT:  # %bb.0:9250; NO-SIMD128-FAST-NEXT:    i32.lt_u $push0=, $1, $59251; NO-SIMD128-FAST-NEXT:    i32.select $push1=, $1, $5, $pop09252; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19253; NO-SIMD128-FAST-NEXT:    i32.lt_u $push2=, $2, $69254; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $2, $6, $pop29255; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop39256; NO-SIMD128-FAST-NEXT:    i32.lt_u $push4=, $3, $79257; NO-SIMD128-FAST-NEXT:    i32.select $push5=, $3, $7, $pop49258; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop59259; NO-SIMD128-FAST-NEXT:    i32.lt_u $push6=, $4, $89260; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $4, $8, $pop69261; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop79262; NO-SIMD128-FAST-NEXT:    return9263  %c = icmp ult <4 x i32> %x, %y9264  %a = select <4 x i1> %c, <4 x i32> %x, <4 x i32> %y9265  ret <4 x i32> %a9266}9267 9268define <4 x i32> @max_s_v4i32(<4 x i32> %x, <4 x i32> %y) {9269; SIMD128-LABEL: max_s_v4i32:9270; SIMD128:         .functype max_s_v4i32 (v128, v128) -> (v128)9271; SIMD128-NEXT:  # %bb.0:9272; SIMD128-NEXT:    i32x4.max_s $push0=, $0, $19273; SIMD128-NEXT:    return $pop09274;9275; SIMD128-FAST-LABEL: max_s_v4i32:9276; SIMD128-FAST:         .functype max_s_v4i32 (v128, v128) -> (v128)9277; SIMD128-FAST-NEXT:  # %bb.0:9278; SIMD128-FAST-NEXT:    i32x4.max_s $push0=, $0, $19279; SIMD128-FAST-NEXT:    return $pop09280;9281; NO-SIMD128-LABEL: max_s_v4i32:9282; NO-SIMD128:         .functype max_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9283; NO-SIMD128-NEXT:  # %bb.0:9284; NO-SIMD128-NEXT:    i32.gt_s $push0=, $4, $89285; NO-SIMD128-NEXT:    i32.select $push1=, $4, $8, $pop09286; NO-SIMD128-NEXT:    i32.store 12($0), $pop19287; NO-SIMD128-NEXT:    i32.gt_s $push2=, $3, $79288; NO-SIMD128-NEXT:    i32.select $push3=, $3, $7, $pop29289; NO-SIMD128-NEXT:    i32.store 8($0), $pop39290; NO-SIMD128-NEXT:    i32.gt_s $push4=, $2, $69291; NO-SIMD128-NEXT:    i32.select $push5=, $2, $6, $pop49292; NO-SIMD128-NEXT:    i32.store 4($0), $pop59293; NO-SIMD128-NEXT:    i32.gt_s $push6=, $1, $59294; NO-SIMD128-NEXT:    i32.select $push7=, $1, $5, $pop69295; NO-SIMD128-NEXT:    i32.store 0($0), $pop79296; NO-SIMD128-NEXT:    return9297;9298; NO-SIMD128-FAST-LABEL: max_s_v4i32:9299; NO-SIMD128-FAST:         .functype max_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9300; NO-SIMD128-FAST-NEXT:  # %bb.0:9301; NO-SIMD128-FAST-NEXT:    i32.gt_s $push0=, $1, $59302; NO-SIMD128-FAST-NEXT:    i32.select $push1=, $1, $5, $pop09303; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19304; NO-SIMD128-FAST-NEXT:    i32.gt_s $push2=, $2, $69305; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $2, $6, $pop29306; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop39307; NO-SIMD128-FAST-NEXT:    i32.gt_s $push4=, $3, $79308; NO-SIMD128-FAST-NEXT:    i32.select $push5=, $3, $7, $pop49309; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop59310; NO-SIMD128-FAST-NEXT:    i32.gt_s $push6=, $4, $89311; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $4, $8, $pop69312; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop79313; NO-SIMD128-FAST-NEXT:    return9314  %c = icmp sgt <4 x i32> %x, %y9315  %a = select <4 x i1> %c, <4 x i32> %x, <4 x i32> %y9316  ret <4 x i32> %a9317}9318 9319define <4 x i32> @max_u_v4i32(<4 x i32> %x, <4 x i32> %y) {9320; SIMD128-LABEL: max_u_v4i32:9321; SIMD128:         .functype max_u_v4i32 (v128, v128) -> (v128)9322; SIMD128-NEXT:  # %bb.0:9323; SIMD128-NEXT:    i32x4.max_u $push0=, $0, $19324; SIMD128-NEXT:    return $pop09325;9326; SIMD128-FAST-LABEL: max_u_v4i32:9327; SIMD128-FAST:         .functype max_u_v4i32 (v128, v128) -> (v128)9328; SIMD128-FAST-NEXT:  # %bb.0:9329; SIMD128-FAST-NEXT:    i32x4.max_u $push0=, $0, $19330; SIMD128-FAST-NEXT:    return $pop09331;9332; NO-SIMD128-LABEL: max_u_v4i32:9333; NO-SIMD128:         .functype max_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9334; NO-SIMD128-NEXT:  # %bb.0:9335; NO-SIMD128-NEXT:    i32.gt_u $push0=, $4, $89336; NO-SIMD128-NEXT:    i32.select $push1=, $4, $8, $pop09337; NO-SIMD128-NEXT:    i32.store 12($0), $pop19338; NO-SIMD128-NEXT:    i32.gt_u $push2=, $3, $79339; NO-SIMD128-NEXT:    i32.select $push3=, $3, $7, $pop29340; NO-SIMD128-NEXT:    i32.store 8($0), $pop39341; NO-SIMD128-NEXT:    i32.gt_u $push4=, $2, $69342; NO-SIMD128-NEXT:    i32.select $push5=, $2, $6, $pop49343; NO-SIMD128-NEXT:    i32.store 4($0), $pop59344; NO-SIMD128-NEXT:    i32.gt_u $push6=, $1, $59345; NO-SIMD128-NEXT:    i32.select $push7=, $1, $5, $pop69346; NO-SIMD128-NEXT:    i32.store 0($0), $pop79347; NO-SIMD128-NEXT:    return9348;9349; NO-SIMD128-FAST-LABEL: max_u_v4i32:9350; NO-SIMD128-FAST:         .functype max_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9351; NO-SIMD128-FAST-NEXT:  # %bb.0:9352; NO-SIMD128-FAST-NEXT:    i32.gt_u $push0=, $1, $59353; NO-SIMD128-FAST-NEXT:    i32.select $push1=, $1, $5, $pop09354; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19355; NO-SIMD128-FAST-NEXT:    i32.gt_u $push2=, $2, $69356; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $2, $6, $pop29357; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop39358; NO-SIMD128-FAST-NEXT:    i32.gt_u $push4=, $3, $79359; NO-SIMD128-FAST-NEXT:    i32.select $push5=, $3, $7, $pop49360; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop59361; NO-SIMD128-FAST-NEXT:    i32.gt_u $push6=, $4, $89362; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $4, $8, $pop69363; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop79364; NO-SIMD128-FAST-NEXT:    return9365  %c = icmp ugt <4 x i32> %x, %y9366  %a = select <4 x i1> %c, <4 x i32> %x, <4 x i32> %y9367  ret <4 x i32> %a9368}9369 9370define <4 x i32> @abs_v4i32(<4 x i32> %x) {9371; SIMD128-LABEL: abs_v4i32:9372; SIMD128:         .functype abs_v4i32 (v128) -> (v128)9373; SIMD128-NEXT:  # %bb.0:9374; SIMD128-NEXT:    i32x4.abs $push0=, $09375; SIMD128-NEXT:    return $pop09376;9377; SIMD128-FAST-LABEL: abs_v4i32:9378; SIMD128-FAST:         .functype abs_v4i32 (v128) -> (v128)9379; SIMD128-FAST-NEXT:  # %bb.0:9380; SIMD128-FAST-NEXT:    i32x4.abs $push0=, $09381; SIMD128-FAST-NEXT:    return $pop09382;9383; NO-SIMD128-LABEL: abs_v4i32:9384; NO-SIMD128:         .functype abs_v4i32 (i32, i32, i32, i32, i32) -> ()9385; NO-SIMD128-NEXT:  # %bb.0:9386; NO-SIMD128-NEXT:    i32.const $push0=, 319387; NO-SIMD128-NEXT:    i32.shr_s $push19=, $4, $pop09388; NO-SIMD128-NEXT:    local.tee $push18=, $5=, $pop199389; NO-SIMD128-NEXT:    i32.xor $push1=, $4, $pop189390; NO-SIMD128-NEXT:    i32.sub $push2=, $pop1, $59391; NO-SIMD128-NEXT:    i32.store 12($0), $pop29392; NO-SIMD128-NEXT:    i32.const $push17=, 319393; NO-SIMD128-NEXT:    i32.shr_s $push16=, $3, $pop179394; NO-SIMD128-NEXT:    local.tee $push15=, $4=, $pop169395; NO-SIMD128-NEXT:    i32.xor $push3=, $3, $pop159396; NO-SIMD128-NEXT:    i32.sub $push4=, $pop3, $49397; NO-SIMD128-NEXT:    i32.store 8($0), $pop49398; NO-SIMD128-NEXT:    i32.const $push14=, 319399; NO-SIMD128-NEXT:    i32.shr_s $push13=, $2, $pop149400; NO-SIMD128-NEXT:    local.tee $push12=, $4=, $pop139401; NO-SIMD128-NEXT:    i32.xor $push5=, $2, $pop129402; NO-SIMD128-NEXT:    i32.sub $push6=, $pop5, $49403; NO-SIMD128-NEXT:    i32.store 4($0), $pop69404; NO-SIMD128-NEXT:    i32.const $push11=, 319405; NO-SIMD128-NEXT:    i32.shr_s $push10=, $1, $pop119406; NO-SIMD128-NEXT:    local.tee $push9=, $4=, $pop109407; NO-SIMD128-NEXT:    i32.xor $push7=, $1, $pop99408; NO-SIMD128-NEXT:    i32.sub $push8=, $pop7, $49409; NO-SIMD128-NEXT:    i32.store 0($0), $pop89410; NO-SIMD128-NEXT:    return9411;9412; NO-SIMD128-FAST-LABEL: abs_v4i32:9413; NO-SIMD128-FAST:         .functype abs_v4i32 (i32, i32, i32, i32, i32) -> ()9414; NO-SIMD128-FAST-NEXT:  # %bb.0:9415; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 319416; NO-SIMD128-FAST-NEXT:    i32.shr_s $push19=, $1, $pop09417; NO-SIMD128-FAST-NEXT:    local.tee $push18=, $5=, $pop199418; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop189419; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $pop1, $59420; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop29421; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 319422; NO-SIMD128-FAST-NEXT:    i32.shr_s $push16=, $2, $pop179423; NO-SIMD128-FAST-NEXT:    local.tee $push15=, $1=, $pop169424; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $2, $pop159425; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $pop3, $19426; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop49427; NO-SIMD128-FAST-NEXT:    i32.const $push14=, 319428; NO-SIMD128-FAST-NEXT:    i32.shr_s $push13=, $3, $pop149429; NO-SIMD128-FAST-NEXT:    local.tee $push12=, $2=, $pop139430; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $3, $pop129431; NO-SIMD128-FAST-NEXT:    i32.sub $push6=, $pop5, $29432; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop69433; NO-SIMD128-FAST-NEXT:    i32.const $push11=, 319434; NO-SIMD128-FAST-NEXT:    i32.shr_s $push10=, $4, $pop119435; NO-SIMD128-FAST-NEXT:    local.tee $push9=, $3=, $pop109436; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $4, $pop99437; NO-SIMD128-FAST-NEXT:    i32.sub $push8=, $pop7, $39438; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop89439; NO-SIMD128-FAST-NEXT:    return9440  %a = sub <4 x i32> zeroinitializer, %x9441  %b = icmp slt <4 x i32> %x, zeroinitializer9442  %c = select <4 x i1> %b, <4 x i32> %a, <4 x i32> %x9443  ret <4 x i32> %c9444}9445 9446define <4 x i32> @neg_v4i32(<4 x i32> %x) {9447; SIMD128-LABEL: neg_v4i32:9448; SIMD128:         .functype neg_v4i32 (v128) -> (v128)9449; SIMD128-NEXT:  # %bb.0:9450; SIMD128-NEXT:    i32x4.neg $push0=, $09451; SIMD128-NEXT:    return $pop09452;9453; SIMD128-FAST-LABEL: neg_v4i32:9454; SIMD128-FAST:         .functype neg_v4i32 (v128) -> (v128)9455; SIMD128-FAST-NEXT:  # %bb.0:9456; SIMD128-FAST-NEXT:    i32x4.neg $push0=, $09457; SIMD128-FAST-NEXT:    return $pop09458;9459; NO-SIMD128-LABEL: neg_v4i32:9460; NO-SIMD128:         .functype neg_v4i32 (i32, i32, i32, i32, i32) -> ()9461; NO-SIMD128-NEXT:  # %bb.0:9462; NO-SIMD128-NEXT:    i32.const $push0=, 09463; NO-SIMD128-NEXT:    i32.sub $push1=, $pop0, $49464; NO-SIMD128-NEXT:    i32.store 12($0), $pop19465; NO-SIMD128-NEXT:    i32.const $push7=, 09466; NO-SIMD128-NEXT:    i32.sub $push2=, $pop7, $39467; NO-SIMD128-NEXT:    i32.store 8($0), $pop29468; NO-SIMD128-NEXT:    i32.const $push6=, 09469; NO-SIMD128-NEXT:    i32.sub $push3=, $pop6, $29470; NO-SIMD128-NEXT:    i32.store 4($0), $pop39471; NO-SIMD128-NEXT:    i32.const $push5=, 09472; NO-SIMD128-NEXT:    i32.sub $push4=, $pop5, $19473; NO-SIMD128-NEXT:    i32.store 0($0), $pop49474; NO-SIMD128-NEXT:    return9475;9476; NO-SIMD128-FAST-LABEL: neg_v4i32:9477; NO-SIMD128-FAST:         .functype neg_v4i32 (i32, i32, i32, i32, i32) -> ()9478; NO-SIMD128-FAST-NEXT:  # %bb.0:9479; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 09480; NO-SIMD128-FAST-NEXT:    i32.sub $push1=, $pop0, $19481; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19482; NO-SIMD128-FAST-NEXT:    i32.const $push7=, 09483; NO-SIMD128-FAST-NEXT:    i32.sub $push2=, $pop7, $29484; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop29485; NO-SIMD128-FAST-NEXT:    i32.const $push6=, 09486; NO-SIMD128-FAST-NEXT:    i32.sub $push3=, $pop6, $39487; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop39488; NO-SIMD128-FAST-NEXT:    i32.const $push5=, 09489; NO-SIMD128-FAST-NEXT:    i32.sub $push4=, $pop5, $49490; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop49491; NO-SIMD128-FAST-NEXT:    return9492  %a = sub <4 x i32> <i32 0, i32 0, i32 0, i32 0>, %x9493  ret <4 x i32> %a9494}9495 9496define <4 x i32> @shl_v4i32(<4 x i32> %v, i32 %x) {9497; SIMD128-LABEL: shl_v4i32:9498; SIMD128:         .functype shl_v4i32 (v128, i32) -> (v128)9499; SIMD128-NEXT:  # %bb.0:9500; SIMD128-NEXT:    i32x4.shl $push0=, $0, $19501; SIMD128-NEXT:    return $pop09502;9503; SIMD128-FAST-LABEL: shl_v4i32:9504; SIMD128-FAST:         .functype shl_v4i32 (v128, i32) -> (v128)9505; SIMD128-FAST-NEXT:  # %bb.0:9506; SIMD128-FAST-NEXT:    i32x4.shl $push0=, $0, $19507; SIMD128-FAST-NEXT:    return $pop09508;9509; NO-SIMD128-LABEL: shl_v4i32:9510; NO-SIMD128:         .functype shl_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9511; NO-SIMD128-NEXT:  # %bb.0:9512; NO-SIMD128-NEXT:    i32.shl $push0=, $4, $59513; NO-SIMD128-NEXT:    i32.store 12($0), $pop09514; NO-SIMD128-NEXT:    i32.shl $push1=, $3, $59515; NO-SIMD128-NEXT:    i32.store 8($0), $pop19516; NO-SIMD128-NEXT:    i32.shl $push2=, $2, $59517; NO-SIMD128-NEXT:    i32.store 4($0), $pop29518; NO-SIMD128-NEXT:    i32.shl $push3=, $1, $59519; NO-SIMD128-NEXT:    i32.store 0($0), $pop39520; NO-SIMD128-NEXT:    return9521;9522; NO-SIMD128-FAST-LABEL: shl_v4i32:9523; NO-SIMD128-FAST:         .functype shl_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9524; NO-SIMD128-FAST-NEXT:  # %bb.0:9525; NO-SIMD128-FAST-NEXT:    i32.shl $push0=, $1, $59526; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09527; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $2, $59528; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19529; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $3, $59530; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29531; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $4, $59532; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39533; NO-SIMD128-FAST-NEXT:    return9534  %t = insertelement <4 x i32> undef, i32 %x, i32 09535  %s = shufflevector <4 x i32> %t, <4 x i32> undef,9536    <4 x i32> <i32 0, i32 0, i32 0, i32 0>9537  %a = shl <4 x i32> %v, %s9538  ret <4 x i32> %a9539}9540 9541define <4 x i32> @shl_const_v4i32(<4 x i32> %v) {9542; SIMD128-LABEL: shl_const_v4i32:9543; SIMD128:         .functype shl_const_v4i32 (v128) -> (v128)9544; SIMD128-NEXT:  # %bb.0:9545; SIMD128-NEXT:    i32.const $push0=, 59546; SIMD128-NEXT:    i32x4.shl $push1=, $0, $pop09547; SIMD128-NEXT:    return $pop19548;9549; SIMD128-FAST-LABEL: shl_const_v4i32:9550; SIMD128-FAST:         .functype shl_const_v4i32 (v128) -> (v128)9551; SIMD128-FAST-NEXT:  # %bb.0:9552; SIMD128-FAST-NEXT:    i32.const $push1=, 59553; SIMD128-FAST-NEXT:    i32x4.shl $push0=, $0, $pop19554; SIMD128-FAST-NEXT:    return $pop09555;9556; NO-SIMD128-LABEL: shl_const_v4i32:9557; NO-SIMD128:         .functype shl_const_v4i32 (i32, i32, i32, i32, i32) -> ()9558; NO-SIMD128-NEXT:  # %bb.0:9559; NO-SIMD128-NEXT:    i32.const $push0=, 59560; NO-SIMD128-NEXT:    i32.shl $push1=, $4, $pop09561; NO-SIMD128-NEXT:    i32.store 12($0), $pop19562; NO-SIMD128-NEXT:    i32.const $push7=, 59563; NO-SIMD128-NEXT:    i32.shl $push2=, $3, $pop79564; NO-SIMD128-NEXT:    i32.store 8($0), $pop29565; NO-SIMD128-NEXT:    i32.const $push6=, 59566; NO-SIMD128-NEXT:    i32.shl $push3=, $2, $pop69567; NO-SIMD128-NEXT:    i32.store 4($0), $pop39568; NO-SIMD128-NEXT:    i32.const $push5=, 59569; NO-SIMD128-NEXT:    i32.shl $push4=, $1, $pop59570; NO-SIMD128-NEXT:    i32.store 0($0), $pop49571; NO-SIMD128-NEXT:    return9572;9573; NO-SIMD128-FAST-LABEL: shl_const_v4i32:9574; NO-SIMD128-FAST:         .functype shl_const_v4i32 (i32, i32, i32, i32, i32) -> ()9575; NO-SIMD128-FAST-NEXT:  # %bb.0:9576; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 59577; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $1, $pop09578; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop19579; NO-SIMD128-FAST-NEXT:    i32.const $push7=, 59580; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $2, $pop79581; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop29582; NO-SIMD128-FAST-NEXT:    i32.const $push6=, 59583; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $3, $pop69584; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop39585; NO-SIMD128-FAST-NEXT:    i32.const $push5=, 59586; NO-SIMD128-FAST-NEXT:    i32.shl $push4=, $4, $pop59587; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop49588; NO-SIMD128-FAST-NEXT:    return9589  %a = shl <4 x i32> %v, <i32 5, i32 5, i32 5, i32 5>9590  ret <4 x i32> %a9591}9592 9593define <4 x i32> @shl_vec_v4i32(<4 x i32> %v, <4 x i32> %x) {9594; SIMD128-LABEL: shl_vec_v4i32:9595; SIMD128:         .functype shl_vec_v4i32 (v128, v128) -> (v128)9596; SIMD128-NEXT:  # %bb.0:9597; SIMD128-NEXT:    i32x4.extract_lane $push4=, $0, 09598; SIMD128-NEXT:    i32x4.extract_lane $push3=, $1, 09599; SIMD128-NEXT:    i32.shl $push5=, $pop4, $pop39600; SIMD128-NEXT:    i32x4.splat $push6=, $pop59601; SIMD128-NEXT:    i32x4.extract_lane $push1=, $0, 19602; SIMD128-NEXT:    i32x4.extract_lane $push0=, $1, 19603; SIMD128-NEXT:    i32.shl $push2=, $pop1, $pop09604; SIMD128-NEXT:    i32x4.replace_lane $push7=, $pop6, 1, $pop29605; SIMD128-NEXT:    i32x4.extract_lane $push9=, $0, 29606; SIMD128-NEXT:    i32x4.extract_lane $push8=, $1, 29607; SIMD128-NEXT:    i32.shl $push10=, $pop9, $pop89608; SIMD128-NEXT:    i32x4.replace_lane $push11=, $pop7, 2, $pop109609; SIMD128-NEXT:    i32x4.extract_lane $push13=, $0, 39610; SIMD128-NEXT:    i32x4.extract_lane $push12=, $1, 39611; SIMD128-NEXT:    i32.shl $push14=, $pop13, $pop129612; SIMD128-NEXT:    i32x4.replace_lane $push15=, $pop11, 3, $pop149613; SIMD128-NEXT:    return $pop159614;9615; SIMD128-FAST-LABEL: shl_vec_v4i32:9616; SIMD128-FAST:         .functype shl_vec_v4i32 (v128, v128) -> (v128)9617; SIMD128-FAST-NEXT:  # %bb.0:9618; SIMD128-FAST-NEXT:    i32x4.extract_lane $push5=, $0, 09619; SIMD128-FAST-NEXT:    i32x4.extract_lane $push4=, $1, 09620; SIMD128-FAST-NEXT:    i32.shl $push6=, $pop5, $pop49621; SIMD128-FAST-NEXT:    i32x4.splat $push7=, $pop69622; SIMD128-FAST-NEXT:    i32x4.extract_lane $push2=, $0, 19623; SIMD128-FAST-NEXT:    i32x4.extract_lane $push1=, $1, 19624; SIMD128-FAST-NEXT:    i32.shl $push3=, $pop2, $pop19625; SIMD128-FAST-NEXT:    i32x4.replace_lane $push8=, $pop7, 1, $pop39626; SIMD128-FAST-NEXT:    i32x4.extract_lane $push10=, $0, 29627; SIMD128-FAST-NEXT:    i32x4.extract_lane $push9=, $1, 29628; SIMD128-FAST-NEXT:    i32.shl $push11=, $pop10, $pop99629; SIMD128-FAST-NEXT:    i32x4.replace_lane $push12=, $pop8, 2, $pop119630; SIMD128-FAST-NEXT:    i32x4.extract_lane $push14=, $0, 39631; SIMD128-FAST-NEXT:    i32x4.extract_lane $push13=, $1, 39632; SIMD128-FAST-NEXT:    i32.shl $push15=, $pop14, $pop139633; SIMD128-FAST-NEXT:    i32x4.replace_lane $push0=, $pop12, 3, $pop159634; SIMD128-FAST-NEXT:    return $pop09635;9636; NO-SIMD128-LABEL: shl_vec_v4i32:9637; NO-SIMD128:         .functype shl_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9638; NO-SIMD128-NEXT:  # %bb.0:9639; NO-SIMD128-NEXT:    i32.shl $push0=, $4, $89640; NO-SIMD128-NEXT:    i32.store 12($0), $pop09641; NO-SIMD128-NEXT:    i32.shl $push1=, $3, $79642; NO-SIMD128-NEXT:    i32.store 8($0), $pop19643; NO-SIMD128-NEXT:    i32.shl $push2=, $2, $69644; NO-SIMD128-NEXT:    i32.store 4($0), $pop29645; NO-SIMD128-NEXT:    i32.shl $push3=, $1, $59646; NO-SIMD128-NEXT:    i32.store 0($0), $pop39647; NO-SIMD128-NEXT:    return9648;9649; NO-SIMD128-FAST-LABEL: shl_vec_v4i32:9650; NO-SIMD128-FAST:         .functype shl_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9651; NO-SIMD128-FAST-NEXT:  # %bb.0:9652; NO-SIMD128-FAST-NEXT:    i32.shl $push0=, $1, $59653; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09654; NO-SIMD128-FAST-NEXT:    i32.shl $push1=, $2, $69655; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19656; NO-SIMD128-FAST-NEXT:    i32.shl $push2=, $3, $79657; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29658; NO-SIMD128-FAST-NEXT:    i32.shl $push3=, $4, $89659; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39660; NO-SIMD128-FAST-NEXT:    return9661  %a = shl <4 x i32> %v, %x9662  ret <4 x i32> %a9663}9664 9665define <4 x i32> @shr_s_v4i32(<4 x i32> %v, i32 %x) {9666; SIMD128-LABEL: shr_s_v4i32:9667; SIMD128:         .functype shr_s_v4i32 (v128, i32) -> (v128)9668; SIMD128-NEXT:  # %bb.0:9669; SIMD128-NEXT:    i32x4.shr_s $push0=, $0, $19670; SIMD128-NEXT:    return $pop09671;9672; SIMD128-FAST-LABEL: shr_s_v4i32:9673; SIMD128-FAST:         .functype shr_s_v4i32 (v128, i32) -> (v128)9674; SIMD128-FAST-NEXT:  # %bb.0:9675; SIMD128-FAST-NEXT:    i32x4.shr_s $push0=, $0, $19676; SIMD128-FAST-NEXT:    return $pop09677;9678; NO-SIMD128-LABEL: shr_s_v4i32:9679; NO-SIMD128:         .functype shr_s_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9680; NO-SIMD128-NEXT:  # %bb.0:9681; NO-SIMD128-NEXT:    i32.shr_s $push0=, $4, $59682; NO-SIMD128-NEXT:    i32.store 12($0), $pop09683; NO-SIMD128-NEXT:    i32.shr_s $push1=, $3, $59684; NO-SIMD128-NEXT:    i32.store 8($0), $pop19685; NO-SIMD128-NEXT:    i32.shr_s $push2=, $2, $59686; NO-SIMD128-NEXT:    i32.store 4($0), $pop29687; NO-SIMD128-NEXT:    i32.shr_s $push3=, $1, $59688; NO-SIMD128-NEXT:    i32.store 0($0), $pop39689; NO-SIMD128-NEXT:    return9690;9691; NO-SIMD128-FAST-LABEL: shr_s_v4i32:9692; NO-SIMD128-FAST:         .functype shr_s_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9693; NO-SIMD128-FAST-NEXT:  # %bb.0:9694; NO-SIMD128-FAST-NEXT:    i32.shr_s $push0=, $1, $59695; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09696; NO-SIMD128-FAST-NEXT:    i32.shr_s $push1=, $2, $59697; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19698; NO-SIMD128-FAST-NEXT:    i32.shr_s $push2=, $3, $59699; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29700; NO-SIMD128-FAST-NEXT:    i32.shr_s $push3=, $4, $59701; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39702; NO-SIMD128-FAST-NEXT:    return9703  %t = insertelement <4 x i32> undef, i32 %x, i32 09704  %s = shufflevector <4 x i32> %t, <4 x i32> undef,9705    <4 x i32> <i32 0, i32 0, i32 0, i32 0>9706  %a = ashr <4 x i32> %v, %s9707  ret <4 x i32> %a9708}9709 9710define <4 x i32> @shr_s_vec_v4i32(<4 x i32> %v, <4 x i32> %x) {9711; SIMD128-LABEL: shr_s_vec_v4i32:9712; SIMD128:         .functype shr_s_vec_v4i32 (v128, v128) -> (v128)9713; SIMD128-NEXT:  # %bb.0:9714; SIMD128-NEXT:    i32x4.extract_lane $push4=, $0, 09715; SIMD128-NEXT:    i32x4.extract_lane $push3=, $1, 09716; SIMD128-NEXT:    i32.shr_s $push5=, $pop4, $pop39717; SIMD128-NEXT:    i32x4.splat $push6=, $pop59718; SIMD128-NEXT:    i32x4.extract_lane $push1=, $0, 19719; SIMD128-NEXT:    i32x4.extract_lane $push0=, $1, 19720; SIMD128-NEXT:    i32.shr_s $push2=, $pop1, $pop09721; SIMD128-NEXT:    i32x4.replace_lane $push7=, $pop6, 1, $pop29722; SIMD128-NEXT:    i32x4.extract_lane $push9=, $0, 29723; SIMD128-NEXT:    i32x4.extract_lane $push8=, $1, 29724; SIMD128-NEXT:    i32.shr_s $push10=, $pop9, $pop89725; SIMD128-NEXT:    i32x4.replace_lane $push11=, $pop7, 2, $pop109726; SIMD128-NEXT:    i32x4.extract_lane $push13=, $0, 39727; SIMD128-NEXT:    i32x4.extract_lane $push12=, $1, 39728; SIMD128-NEXT:    i32.shr_s $push14=, $pop13, $pop129729; SIMD128-NEXT:    i32x4.replace_lane $push15=, $pop11, 3, $pop149730; SIMD128-NEXT:    return $pop159731;9732; SIMD128-FAST-LABEL: shr_s_vec_v4i32:9733; SIMD128-FAST:         .functype shr_s_vec_v4i32 (v128, v128) -> (v128)9734; SIMD128-FAST-NEXT:  # %bb.0:9735; SIMD128-FAST-NEXT:    i32x4.extract_lane $push5=, $0, 09736; SIMD128-FAST-NEXT:    i32x4.extract_lane $push4=, $1, 09737; SIMD128-FAST-NEXT:    i32.shr_s $push6=, $pop5, $pop49738; SIMD128-FAST-NEXT:    i32x4.splat $push7=, $pop69739; SIMD128-FAST-NEXT:    i32x4.extract_lane $push2=, $0, 19740; SIMD128-FAST-NEXT:    i32x4.extract_lane $push1=, $1, 19741; SIMD128-FAST-NEXT:    i32.shr_s $push3=, $pop2, $pop19742; SIMD128-FAST-NEXT:    i32x4.replace_lane $push8=, $pop7, 1, $pop39743; SIMD128-FAST-NEXT:    i32x4.extract_lane $push10=, $0, 29744; SIMD128-FAST-NEXT:    i32x4.extract_lane $push9=, $1, 29745; SIMD128-FAST-NEXT:    i32.shr_s $push11=, $pop10, $pop99746; SIMD128-FAST-NEXT:    i32x4.replace_lane $push12=, $pop8, 2, $pop119747; SIMD128-FAST-NEXT:    i32x4.extract_lane $push14=, $0, 39748; SIMD128-FAST-NEXT:    i32x4.extract_lane $push13=, $1, 39749; SIMD128-FAST-NEXT:    i32.shr_s $push15=, $pop14, $pop139750; SIMD128-FAST-NEXT:    i32x4.replace_lane $push0=, $pop12, 3, $pop159751; SIMD128-FAST-NEXT:    return $pop09752;9753; NO-SIMD128-LABEL: shr_s_vec_v4i32:9754; NO-SIMD128:         .functype shr_s_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9755; NO-SIMD128-NEXT:  # %bb.0:9756; NO-SIMD128-NEXT:    i32.shr_s $push0=, $4, $89757; NO-SIMD128-NEXT:    i32.store 12($0), $pop09758; NO-SIMD128-NEXT:    i32.shr_s $push1=, $3, $79759; NO-SIMD128-NEXT:    i32.store 8($0), $pop19760; NO-SIMD128-NEXT:    i32.shr_s $push2=, $2, $69761; NO-SIMD128-NEXT:    i32.store 4($0), $pop29762; NO-SIMD128-NEXT:    i32.shr_s $push3=, $1, $59763; NO-SIMD128-NEXT:    i32.store 0($0), $pop39764; NO-SIMD128-NEXT:    return9765;9766; NO-SIMD128-FAST-LABEL: shr_s_vec_v4i32:9767; NO-SIMD128-FAST:         .functype shr_s_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9768; NO-SIMD128-FAST-NEXT:  # %bb.0:9769; NO-SIMD128-FAST-NEXT:    i32.shr_s $push0=, $1, $59770; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09771; NO-SIMD128-FAST-NEXT:    i32.shr_s $push1=, $2, $69772; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19773; NO-SIMD128-FAST-NEXT:    i32.shr_s $push2=, $3, $79774; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29775; NO-SIMD128-FAST-NEXT:    i32.shr_s $push3=, $4, $89776; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39777; NO-SIMD128-FAST-NEXT:    return9778  %a = ashr <4 x i32> %v, %x9779  ret <4 x i32> %a9780}9781 9782define <4 x i32> @shr_u_v4i32(<4 x i32> %v, i32 %x) {9783; SIMD128-LABEL: shr_u_v4i32:9784; SIMD128:         .functype shr_u_v4i32 (v128, i32) -> (v128)9785; SIMD128-NEXT:  # %bb.0:9786; SIMD128-NEXT:    i32x4.shr_u $push0=, $0, $19787; SIMD128-NEXT:    return $pop09788;9789; SIMD128-FAST-LABEL: shr_u_v4i32:9790; SIMD128-FAST:         .functype shr_u_v4i32 (v128, i32) -> (v128)9791; SIMD128-FAST-NEXT:  # %bb.0:9792; SIMD128-FAST-NEXT:    i32x4.shr_u $push0=, $0, $19793; SIMD128-FAST-NEXT:    return $pop09794;9795; NO-SIMD128-LABEL: shr_u_v4i32:9796; NO-SIMD128:         .functype shr_u_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9797; NO-SIMD128-NEXT:  # %bb.0:9798; NO-SIMD128-NEXT:    i32.shr_u $push0=, $4, $59799; NO-SIMD128-NEXT:    i32.store 12($0), $pop09800; NO-SIMD128-NEXT:    i32.shr_u $push1=, $3, $59801; NO-SIMD128-NEXT:    i32.store 8($0), $pop19802; NO-SIMD128-NEXT:    i32.shr_u $push2=, $2, $59803; NO-SIMD128-NEXT:    i32.store 4($0), $pop29804; NO-SIMD128-NEXT:    i32.shr_u $push3=, $1, $59805; NO-SIMD128-NEXT:    i32.store 0($0), $pop39806; NO-SIMD128-NEXT:    return9807;9808; NO-SIMD128-FAST-LABEL: shr_u_v4i32:9809; NO-SIMD128-FAST:         .functype shr_u_v4i32 (i32, i32, i32, i32, i32, i32) -> ()9810; NO-SIMD128-FAST-NEXT:  # %bb.0:9811; NO-SIMD128-FAST-NEXT:    i32.shr_u $push0=, $1, $59812; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09813; NO-SIMD128-FAST-NEXT:    i32.shr_u $push1=, $2, $59814; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19815; NO-SIMD128-FAST-NEXT:    i32.shr_u $push2=, $3, $59816; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29817; NO-SIMD128-FAST-NEXT:    i32.shr_u $push3=, $4, $59818; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39819; NO-SIMD128-FAST-NEXT:    return9820  %t = insertelement <4 x i32> undef, i32 %x, i32 09821  %s = shufflevector <4 x i32> %t, <4 x i32> undef,9822    <4 x i32> <i32 0, i32 0, i32 0, i32 0>9823  %a = lshr <4 x i32> %v, %s9824  ret <4 x i32> %a9825}9826 9827define <4 x i32> @shr_u_vec_v4i32(<4 x i32> %v, <4 x i32> %x) {9828; SIMD128-LABEL: shr_u_vec_v4i32:9829; SIMD128:         .functype shr_u_vec_v4i32 (v128, v128) -> (v128)9830; SIMD128-NEXT:  # %bb.0:9831; SIMD128-NEXT:    i32x4.extract_lane $push4=, $0, 09832; SIMD128-NEXT:    i32x4.extract_lane $push3=, $1, 09833; SIMD128-NEXT:    i32.shr_u $push5=, $pop4, $pop39834; SIMD128-NEXT:    i32x4.splat $push6=, $pop59835; SIMD128-NEXT:    i32x4.extract_lane $push1=, $0, 19836; SIMD128-NEXT:    i32x4.extract_lane $push0=, $1, 19837; SIMD128-NEXT:    i32.shr_u $push2=, $pop1, $pop09838; SIMD128-NEXT:    i32x4.replace_lane $push7=, $pop6, 1, $pop29839; SIMD128-NEXT:    i32x4.extract_lane $push9=, $0, 29840; SIMD128-NEXT:    i32x4.extract_lane $push8=, $1, 29841; SIMD128-NEXT:    i32.shr_u $push10=, $pop9, $pop89842; SIMD128-NEXT:    i32x4.replace_lane $push11=, $pop7, 2, $pop109843; SIMD128-NEXT:    i32x4.extract_lane $push13=, $0, 39844; SIMD128-NEXT:    i32x4.extract_lane $push12=, $1, 39845; SIMD128-NEXT:    i32.shr_u $push14=, $pop13, $pop129846; SIMD128-NEXT:    i32x4.replace_lane $push15=, $pop11, 3, $pop149847; SIMD128-NEXT:    return $pop159848;9849; SIMD128-FAST-LABEL: shr_u_vec_v4i32:9850; SIMD128-FAST:         .functype shr_u_vec_v4i32 (v128, v128) -> (v128)9851; SIMD128-FAST-NEXT:  # %bb.0:9852; SIMD128-FAST-NEXT:    i32x4.extract_lane $push5=, $0, 09853; SIMD128-FAST-NEXT:    i32x4.extract_lane $push4=, $1, 09854; SIMD128-FAST-NEXT:    i32.shr_u $push6=, $pop5, $pop49855; SIMD128-FAST-NEXT:    i32x4.splat $push7=, $pop69856; SIMD128-FAST-NEXT:    i32x4.extract_lane $push2=, $0, 19857; SIMD128-FAST-NEXT:    i32x4.extract_lane $push1=, $1, 19858; SIMD128-FAST-NEXT:    i32.shr_u $push3=, $pop2, $pop19859; SIMD128-FAST-NEXT:    i32x4.replace_lane $push8=, $pop7, 1, $pop39860; SIMD128-FAST-NEXT:    i32x4.extract_lane $push10=, $0, 29861; SIMD128-FAST-NEXT:    i32x4.extract_lane $push9=, $1, 29862; SIMD128-FAST-NEXT:    i32.shr_u $push11=, $pop10, $pop99863; SIMD128-FAST-NEXT:    i32x4.replace_lane $push12=, $pop8, 2, $pop119864; SIMD128-FAST-NEXT:    i32x4.extract_lane $push14=, $0, 39865; SIMD128-FAST-NEXT:    i32x4.extract_lane $push13=, $1, 39866; SIMD128-FAST-NEXT:    i32.shr_u $push15=, $pop14, $pop139867; SIMD128-FAST-NEXT:    i32x4.replace_lane $push0=, $pop12, 3, $pop159868; SIMD128-FAST-NEXT:    return $pop09869;9870; NO-SIMD128-LABEL: shr_u_vec_v4i32:9871; NO-SIMD128:         .functype shr_u_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9872; NO-SIMD128-NEXT:  # %bb.0:9873; NO-SIMD128-NEXT:    i32.shr_u $push0=, $4, $89874; NO-SIMD128-NEXT:    i32.store 12($0), $pop09875; NO-SIMD128-NEXT:    i32.shr_u $push1=, $3, $79876; NO-SIMD128-NEXT:    i32.store 8($0), $pop19877; NO-SIMD128-NEXT:    i32.shr_u $push2=, $2, $69878; NO-SIMD128-NEXT:    i32.store 4($0), $pop29879; NO-SIMD128-NEXT:    i32.shr_u $push3=, $1, $59880; NO-SIMD128-NEXT:    i32.store 0($0), $pop39881; NO-SIMD128-NEXT:    return9882;9883; NO-SIMD128-FAST-LABEL: shr_u_vec_v4i32:9884; NO-SIMD128-FAST:         .functype shr_u_vec_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9885; NO-SIMD128-FAST-NEXT:  # %bb.0:9886; NO-SIMD128-FAST-NEXT:    i32.shr_u $push0=, $1, $59887; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09888; NO-SIMD128-FAST-NEXT:    i32.shr_u $push1=, $2, $69889; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19890; NO-SIMD128-FAST-NEXT:    i32.shr_u $push2=, $3, $79891; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29892; NO-SIMD128-FAST-NEXT:    i32.shr_u $push3=, $4, $89893; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39894; NO-SIMD128-FAST-NEXT:    return9895  %a = lshr <4 x i32> %v, %x9896  ret <4 x i32> %a9897}9898 9899define <4 x i32> @and_v4i32(<4 x i32> %x, <4 x i32> %y) {9900; SIMD128-LABEL: and_v4i32:9901; SIMD128:         .functype and_v4i32 (v128, v128) -> (v128)9902; SIMD128-NEXT:  # %bb.0:9903; SIMD128-NEXT:    v128.and $push0=, $0, $19904; SIMD128-NEXT:    return $pop09905;9906; SIMD128-FAST-LABEL: and_v4i32:9907; SIMD128-FAST:         .functype and_v4i32 (v128, v128) -> (v128)9908; SIMD128-FAST-NEXT:  # %bb.0:9909; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $19910; SIMD128-FAST-NEXT:    return $pop09911;9912; NO-SIMD128-LABEL: and_v4i32:9913; NO-SIMD128:         .functype and_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9914; NO-SIMD128-NEXT:  # %bb.0:9915; NO-SIMD128-NEXT:    i32.and $push0=, $4, $89916; NO-SIMD128-NEXT:    i32.store 12($0), $pop09917; NO-SIMD128-NEXT:    i32.and $push1=, $3, $79918; NO-SIMD128-NEXT:    i32.store 8($0), $pop19919; NO-SIMD128-NEXT:    i32.and $push2=, $2, $69920; NO-SIMD128-NEXT:    i32.store 4($0), $pop29921; NO-SIMD128-NEXT:    i32.and $push3=, $1, $59922; NO-SIMD128-NEXT:    i32.store 0($0), $pop39923; NO-SIMD128-NEXT:    return9924;9925; NO-SIMD128-FAST-LABEL: and_v4i32:9926; NO-SIMD128-FAST:         .functype and_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9927; NO-SIMD128-FAST-NEXT:  # %bb.0:9928; NO-SIMD128-FAST-NEXT:    i32.and $push0=, $1, $59929; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09930; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $2, $69931; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19932; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $3, $79933; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29934; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $4, $89935; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39936; NO-SIMD128-FAST-NEXT:    return9937  %a = and <4 x i32> %x, %y9938  ret <4 x i32> %a9939}9940 9941define <4 x i32> @or_v4i32(<4 x i32> %x, <4 x i32> %y) {9942; SIMD128-LABEL: or_v4i32:9943; SIMD128:         .functype or_v4i32 (v128, v128) -> (v128)9944; SIMD128-NEXT:  # %bb.0:9945; SIMD128-NEXT:    v128.or $push0=, $0, $19946; SIMD128-NEXT:    return $pop09947;9948; SIMD128-FAST-LABEL: or_v4i32:9949; SIMD128-FAST:         .functype or_v4i32 (v128, v128) -> (v128)9950; SIMD128-FAST-NEXT:  # %bb.0:9951; SIMD128-FAST-NEXT:    v128.or $push0=, $0, $19952; SIMD128-FAST-NEXT:    return $pop09953;9954; NO-SIMD128-LABEL: or_v4i32:9955; NO-SIMD128:         .functype or_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9956; NO-SIMD128-NEXT:  # %bb.0:9957; NO-SIMD128-NEXT:    i32.or $push0=, $4, $89958; NO-SIMD128-NEXT:    i32.store 12($0), $pop09959; NO-SIMD128-NEXT:    i32.or $push1=, $3, $79960; NO-SIMD128-NEXT:    i32.store 8($0), $pop19961; NO-SIMD128-NEXT:    i32.or $push2=, $2, $69962; NO-SIMD128-NEXT:    i32.store 4($0), $pop29963; NO-SIMD128-NEXT:    i32.or $push3=, $1, $59964; NO-SIMD128-NEXT:    i32.store 0($0), $pop39965; NO-SIMD128-NEXT:    return9966;9967; NO-SIMD128-FAST-LABEL: or_v4i32:9968; NO-SIMD128-FAST:         .functype or_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9969; NO-SIMD128-FAST-NEXT:  # %bb.0:9970; NO-SIMD128-FAST-NEXT:    i32.or $push0=, $1, $59971; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop09972; NO-SIMD128-FAST-NEXT:    i32.or $push1=, $2, $69973; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop19974; NO-SIMD128-FAST-NEXT:    i32.or $push2=, $3, $79975; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop29976; NO-SIMD128-FAST-NEXT:    i32.or $push3=, $4, $89977; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop39978; NO-SIMD128-FAST-NEXT:    return9979  %a = or <4 x i32> %x, %y9980  ret <4 x i32> %a9981}9982 9983define <4 x i32> @xor_v4i32(<4 x i32> %x, <4 x i32> %y) {9984; SIMD128-LABEL: xor_v4i32:9985; SIMD128:         .functype xor_v4i32 (v128, v128) -> (v128)9986; SIMD128-NEXT:  # %bb.0:9987; SIMD128-NEXT:    v128.xor $push0=, $0, $19988; SIMD128-NEXT:    return $pop09989;9990; SIMD128-FAST-LABEL: xor_v4i32:9991; SIMD128-FAST:         .functype xor_v4i32 (v128, v128) -> (v128)9992; SIMD128-FAST-NEXT:  # %bb.0:9993; SIMD128-FAST-NEXT:    v128.xor $push0=, $0, $19994; SIMD128-FAST-NEXT:    return $pop09995;9996; NO-SIMD128-LABEL: xor_v4i32:9997; NO-SIMD128:         .functype xor_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()9998; NO-SIMD128-NEXT:  # %bb.0:9999; NO-SIMD128-NEXT:    i32.xor $push0=, $4, $810000; NO-SIMD128-NEXT:    i32.store 12($0), $pop010001; NO-SIMD128-NEXT:    i32.xor $push1=, $3, $710002; NO-SIMD128-NEXT:    i32.store 8($0), $pop110003; NO-SIMD128-NEXT:    i32.xor $push2=, $2, $610004; NO-SIMD128-NEXT:    i32.store 4($0), $pop210005; NO-SIMD128-NEXT:    i32.xor $push3=, $1, $510006; NO-SIMD128-NEXT:    i32.store 0($0), $pop310007; NO-SIMD128-NEXT:    return10008;10009; NO-SIMD128-FAST-LABEL: xor_v4i32:10010; NO-SIMD128-FAST:         .functype xor_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10011; NO-SIMD128-FAST-NEXT:  # %bb.0:10012; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $1, $510013; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop010014; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $2, $610015; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop110016; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $3, $710017; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop210018; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $4, $810019; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop310020; NO-SIMD128-FAST-NEXT:    return10021  %a = xor <4 x i32> %x, %y10022  ret <4 x i32> %a10023}10024 10025define <4 x i32> @not_v4i32(<4 x i32> %x) {10026; SIMD128-LABEL: not_v4i32:10027; SIMD128:         .functype not_v4i32 (v128) -> (v128)10028; SIMD128-NEXT:  # %bb.0:10029; SIMD128-NEXT:    v128.not $push0=, $010030; SIMD128-NEXT:    return $pop010031;10032; SIMD128-FAST-LABEL: not_v4i32:10033; SIMD128-FAST:         .functype not_v4i32 (v128) -> (v128)10034; SIMD128-FAST-NEXT:  # %bb.0:10035; SIMD128-FAST-NEXT:    v128.not $push0=, $010036; SIMD128-FAST-NEXT:    return $pop010037;10038; NO-SIMD128-LABEL: not_v4i32:10039; NO-SIMD128:         .functype not_v4i32 (i32, i32, i32, i32, i32) -> ()10040; NO-SIMD128-NEXT:  # %bb.0:10041; NO-SIMD128-NEXT:    i32.const $push0=, -110042; NO-SIMD128-NEXT:    i32.xor $push1=, $4, $pop010043; NO-SIMD128-NEXT:    i32.store 12($0), $pop110044; NO-SIMD128-NEXT:    i32.const $push7=, -110045; NO-SIMD128-NEXT:    i32.xor $push2=, $3, $pop710046; NO-SIMD128-NEXT:    i32.store 8($0), $pop210047; NO-SIMD128-NEXT:    i32.const $push6=, -110048; NO-SIMD128-NEXT:    i32.xor $push3=, $2, $pop610049; NO-SIMD128-NEXT:    i32.store 4($0), $pop310050; NO-SIMD128-NEXT:    i32.const $push5=, -110051; NO-SIMD128-NEXT:    i32.xor $push4=, $1, $pop510052; NO-SIMD128-NEXT:    i32.store 0($0), $pop410053; NO-SIMD128-NEXT:    return10054;10055; NO-SIMD128-FAST-LABEL: not_v4i32:10056; NO-SIMD128-FAST:         .functype not_v4i32 (i32, i32, i32, i32, i32) -> ()10057; NO-SIMD128-FAST-NEXT:  # %bb.0:10058; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -110059; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop010060; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop110061; NO-SIMD128-FAST-NEXT:    i32.const $push7=, -110062; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $2, $pop710063; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop210064; NO-SIMD128-FAST-NEXT:    i32.const $push6=, -110065; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $3, $pop610066; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop310067; NO-SIMD128-FAST-NEXT:    i32.const $push5=, -110068; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $4, $pop510069; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop410070; NO-SIMD128-FAST-NEXT:    return10071  %a = xor <4 x i32> %x, <i32 -1, i32 -1, i32 -1, i32 -1>10072  ret <4 x i32> %a10073}10074 10075define <4 x i32> @andnot_v4i32(<4 x i32> %x, <4 x i32> %y) {10076; SIMD128-LABEL: andnot_v4i32:10077; SIMD128:         .functype andnot_v4i32 (v128, v128) -> (v128)10078; SIMD128-NEXT:  # %bb.0:10079; SIMD128-NEXT:    v128.andnot $push0=, $0, $110080; SIMD128-NEXT:    return $pop010081;10082; SIMD128-FAST-LABEL: andnot_v4i32:10083; SIMD128-FAST:         .functype andnot_v4i32 (v128, v128) -> (v128)10084; SIMD128-FAST-NEXT:  # %bb.0:10085; SIMD128-FAST-NEXT:    v128.not $push0=, $110086; SIMD128-FAST-NEXT:    v128.and $push1=, $0, $pop010087; SIMD128-FAST-NEXT:    return $pop110088;10089; NO-SIMD128-LABEL: andnot_v4i32:10090; NO-SIMD128:         .functype andnot_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10091; NO-SIMD128-NEXT:  # %bb.0:10092; NO-SIMD128-NEXT:    i32.const $push0=, -110093; NO-SIMD128-NEXT:    i32.xor $push1=, $8, $pop010094; NO-SIMD128-NEXT:    i32.and $push2=, $4, $pop110095; NO-SIMD128-NEXT:    i32.store 12($0), $pop210096; NO-SIMD128-NEXT:    i32.const $push11=, -110097; NO-SIMD128-NEXT:    i32.xor $push3=, $7, $pop1110098; NO-SIMD128-NEXT:    i32.and $push4=, $3, $pop310099; NO-SIMD128-NEXT:    i32.store 8($0), $pop410100; NO-SIMD128-NEXT:    i32.const $push10=, -110101; NO-SIMD128-NEXT:    i32.xor $push5=, $6, $pop1010102; NO-SIMD128-NEXT:    i32.and $push6=, $2, $pop510103; NO-SIMD128-NEXT:    i32.store 4($0), $pop610104; NO-SIMD128-NEXT:    i32.const $push9=, -110105; NO-SIMD128-NEXT:    i32.xor $push7=, $5, $pop910106; NO-SIMD128-NEXT:    i32.and $push8=, $1, $pop710107; NO-SIMD128-NEXT:    i32.store 0($0), $pop810108; NO-SIMD128-NEXT:    return10109;10110; NO-SIMD128-FAST-LABEL: andnot_v4i32:10111; NO-SIMD128-FAST:         .functype andnot_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10112; NO-SIMD128-FAST-NEXT:  # %bb.0:10113; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -110114; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $5, $pop010115; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop110116; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop210117; NO-SIMD128-FAST-NEXT:    i32.const $push11=, -110118; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $6, $pop1110119; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $2, $pop310120; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop410121; NO-SIMD128-FAST-NEXT:    i32.const $push10=, -110122; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $7, $pop1010123; NO-SIMD128-FAST-NEXT:    i32.and $push6=, $3, $pop510124; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop610125; NO-SIMD128-FAST-NEXT:    i32.const $push9=, -110126; NO-SIMD128-FAST-NEXT:    i32.xor $push7=, $8, $pop910127; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $4, $pop710128; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop810129; NO-SIMD128-FAST-NEXT:    return10130 %inv_y = xor <4 x i32> %y, <i32 -1, i32 -1, i32 -1, i32 -1>10131 %a = and <4 x i32> %x, %inv_y10132 ret <4 x i32> %a10133}10134 10135define <4 x i32> @bitselect_v4i32(<4 x i32> %c, <4 x i32> %v1, <4 x i32> %v2) {10136; SIMD128-LABEL: bitselect_v4i32:10137; SIMD128:         .functype bitselect_v4i32 (v128, v128, v128) -> (v128)10138; SIMD128-NEXT:  # %bb.0:10139; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $010140; SIMD128-NEXT:    return $pop010141;10142; SIMD128-FAST-LABEL: bitselect_v4i32:10143; SIMD128-FAST:         .functype bitselect_v4i32 (v128, v128, v128) -> (v128)10144; SIMD128-FAST-NEXT:  # %bb.0:10145; SIMD128-FAST-NEXT:    v128.not $push2=, $010146; SIMD128-FAST-NEXT:    v128.and $push3=, $pop2, $210147; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $110148; SIMD128-FAST-NEXT:    v128.or $push1=, $pop3, $pop010149; SIMD128-FAST-NEXT:    return $pop110150;10151; NO-SIMD128-LABEL: bitselect_v4i32:10152; NO-SIMD128:         .functype bitselect_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10153; NO-SIMD128-NEXT:  # %bb.0:10154; NO-SIMD128-NEXT:    i32.xor $push0=, $8, $1210155; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $410156; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $1210157; NO-SIMD128-NEXT:    i32.store 12($0), $pop210158; NO-SIMD128-NEXT:    i32.xor $push3=, $7, $1110159; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $310160; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $1110161; NO-SIMD128-NEXT:    i32.store 8($0), $pop510162; NO-SIMD128-NEXT:    i32.xor $push6=, $6, $1010163; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $210164; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $1010165; NO-SIMD128-NEXT:    i32.store 4($0), $pop810166; NO-SIMD128-NEXT:    i32.xor $push9=, $5, $910167; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $110168; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $910169; NO-SIMD128-NEXT:    i32.store 0($0), $pop1110170; NO-SIMD128-NEXT:    return10171;10172; NO-SIMD128-FAST-LABEL: bitselect_v4i32:10173; NO-SIMD128-FAST:         .functype bitselect_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10174; NO-SIMD128-FAST-NEXT:  # %bb.0:10175; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $5, $910176; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $110177; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $910178; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop210179; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $6, $1010180; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $210181; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $1010182; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop510183; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $7, $1110184; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $310185; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $1110186; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop810187; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $8, $1210188; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $410189; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $1210190; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1110191; NO-SIMD128-FAST-NEXT:    return10192  %masked_v1 = and <4 x i32> %c, %v110193  %inv_mask = xor <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>, %c10194  %masked_v2 = and <4 x i32> %inv_mask, %v210195  %a = or <4 x i32> %masked_v2, %masked_v110196  ret <4 x i32> %a10197}10198 10199define <4 x i32> @bitselect_xor_v4i32(<4 x i32> %c, <4 x i32> %v1, <4 x i32> %v2) {10200; SIMD128-LABEL: bitselect_xor_v4i32:10201; SIMD128:         .functype bitselect_xor_v4i32 (v128, v128, v128) -> (v128)10202; SIMD128-NEXT:  # %bb.0:10203; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $010204; SIMD128-NEXT:    return $pop010205;10206; SIMD128-FAST-LABEL: bitselect_xor_v4i32:10207; SIMD128-FAST:         .functype bitselect_xor_v4i32 (v128, v128, v128) -> (v128)10208; SIMD128-FAST-NEXT:  # %bb.0:10209; SIMD128-FAST-NEXT:    v128.xor $push2=, $1, $210210; SIMD128-FAST-NEXT:    v128.and $push1=, $pop2, $010211; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop1, $210212; SIMD128-FAST-NEXT:    return $pop010213;10214; NO-SIMD128-LABEL: bitselect_xor_v4i32:10215; NO-SIMD128:         .functype bitselect_xor_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10216; NO-SIMD128-NEXT:  # %bb.0:10217; NO-SIMD128-NEXT:    i32.xor $push0=, $8, $1210218; NO-SIMD128-NEXT:    i32.and $push1=, $pop0, $410219; NO-SIMD128-NEXT:    i32.xor $push2=, $pop1, $1210220; NO-SIMD128-NEXT:    i32.store 12($0), $pop210221; NO-SIMD128-NEXT:    i32.xor $push3=, $7, $1110222; NO-SIMD128-NEXT:    i32.and $push4=, $pop3, $310223; NO-SIMD128-NEXT:    i32.xor $push5=, $pop4, $1110224; NO-SIMD128-NEXT:    i32.store 8($0), $pop510225; NO-SIMD128-NEXT:    i32.xor $push6=, $6, $1010226; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $210227; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $1010228; NO-SIMD128-NEXT:    i32.store 4($0), $pop810229; NO-SIMD128-NEXT:    i32.xor $push9=, $5, $910230; NO-SIMD128-NEXT:    i32.and $push10=, $pop9, $110231; NO-SIMD128-NEXT:    i32.xor $push11=, $pop10, $910232; NO-SIMD128-NEXT:    i32.store 0($0), $pop1110233; NO-SIMD128-NEXT:    return10234;10235; NO-SIMD128-FAST-LABEL: bitselect_xor_v4i32:10236; NO-SIMD128-FAST:         .functype bitselect_xor_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10237; NO-SIMD128-FAST-NEXT:  # %bb.0:10238; NO-SIMD128-FAST-NEXT:    i32.xor $push0=, $5, $910239; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $pop0, $110240; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $pop1, $910241; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop210242; NO-SIMD128-FAST-NEXT:    i32.xor $push3=, $6, $1010243; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $pop3, $210244; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $pop4, $1010245; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop510246; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $7, $1110247; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $310248; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $1110249; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop810250; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $8, $1210251; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $pop9, $410252; NO-SIMD128-FAST-NEXT:    i32.xor $push11=, $pop10, $1210253; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1110254; NO-SIMD128-FAST-NEXT:    return10255 %xor1 = xor <4 x i32> %v1, %v210256 %and = and <4 x i32> %xor1, %c10257 %a = xor <4 x i32> %and, %v210258 ret <4 x i32> %a10259}10260 10261define <4 x i32> @bitselect_xor_reversed_v4i32(<4 x i32> %c, <4 x i32> %v1, <4 x i32> %v2) {10262; SIMD128-LABEL: bitselect_xor_reversed_v4i32:10263; SIMD128:         .functype bitselect_xor_reversed_v4i32 (v128, v128, v128) -> (v128)10264; SIMD128-NEXT:  # %bb.0:10265; SIMD128-NEXT:    v128.bitselect $push0=, $2, $1, $010266; SIMD128-NEXT:    return $pop010267;10268; SIMD128-FAST-LABEL: bitselect_xor_reversed_v4i32:10269; SIMD128-FAST:         .functype bitselect_xor_reversed_v4i32 (v128, v128, v128) -> (v128)10270; SIMD128-FAST-NEXT:  # %bb.0:10271; SIMD128-FAST-NEXT:    v128.xor $push1=, $1, $210272; SIMD128-FAST-NEXT:    v128.not $push2=, $010273; SIMD128-FAST-NEXT:    v128.and $push3=, $pop1, $pop210274; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop3, $210275; SIMD128-FAST-NEXT:    return $pop010276;10277; NO-SIMD128-LABEL: bitselect_xor_reversed_v4i32:10278; NO-SIMD128:         .functype bitselect_xor_reversed_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10279; NO-SIMD128-NEXT:  # %bb.0:10280; NO-SIMD128-NEXT:    i32.xor $push2=, $8, $1210281; NO-SIMD128-NEXT:    i32.const $push0=, -110282; NO-SIMD128-NEXT:    i32.xor $push1=, $4, $pop010283; NO-SIMD128-NEXT:    i32.and $push3=, $pop2, $pop110284; NO-SIMD128-NEXT:    i32.xor $push4=, $pop3, $1210285; NO-SIMD128-NEXT:    i32.store 12($0), $pop410286; NO-SIMD128-NEXT:    i32.xor $push6=, $7, $1110287; NO-SIMD128-NEXT:    i32.const $push19=, -110288; NO-SIMD128-NEXT:    i32.xor $push5=, $3, $pop1910289; NO-SIMD128-NEXT:    i32.and $push7=, $pop6, $pop510290; NO-SIMD128-NEXT:    i32.xor $push8=, $pop7, $1110291; NO-SIMD128-NEXT:    i32.store 8($0), $pop810292; NO-SIMD128-NEXT:    i32.xor $push10=, $6, $1010293; NO-SIMD128-NEXT:    i32.const $push18=, -110294; NO-SIMD128-NEXT:    i32.xor $push9=, $2, $pop1810295; NO-SIMD128-NEXT:    i32.and $push11=, $pop10, $pop910296; NO-SIMD128-NEXT:    i32.xor $push12=, $pop11, $1010297; NO-SIMD128-NEXT:    i32.store 4($0), $pop1210298; NO-SIMD128-NEXT:    i32.xor $push14=, $5, $910299; NO-SIMD128-NEXT:    i32.const $push17=, -110300; NO-SIMD128-NEXT:    i32.xor $push13=, $1, $pop1710301; NO-SIMD128-NEXT:    i32.and $push15=, $pop14, $pop1310302; NO-SIMD128-NEXT:    i32.xor $push16=, $pop15, $910303; NO-SIMD128-NEXT:    i32.store 0($0), $pop1610304; NO-SIMD128-NEXT:    return10305;10306; NO-SIMD128-FAST-LABEL: bitselect_xor_reversed_v4i32:10307; NO-SIMD128-FAST:         .functype bitselect_xor_reversed_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10308; NO-SIMD128-FAST-NEXT:  # %bb.0:10309; NO-SIMD128-FAST-NEXT:    i32.xor $push2=, $5, $910310; NO-SIMD128-FAST-NEXT:    i32.const $push0=, -110311; NO-SIMD128-FAST-NEXT:    i32.xor $push1=, $1, $pop010312; NO-SIMD128-FAST-NEXT:    i32.and $push3=, $pop2, $pop110313; NO-SIMD128-FAST-NEXT:    i32.xor $push4=, $pop3, $910314; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop410315; NO-SIMD128-FAST-NEXT:    i32.xor $push6=, $6, $1010316; NO-SIMD128-FAST-NEXT:    i32.const $push19=, -110317; NO-SIMD128-FAST-NEXT:    i32.xor $push5=, $2, $pop1910318; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $pop6, $pop510319; NO-SIMD128-FAST-NEXT:    i32.xor $push8=, $pop7, $1010320; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop810321; NO-SIMD128-FAST-NEXT:    i32.xor $push10=, $7, $1110322; NO-SIMD128-FAST-NEXT:    i32.const $push18=, -110323; NO-SIMD128-FAST-NEXT:    i32.xor $push9=, $3, $pop1810324; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $pop10, $pop910325; NO-SIMD128-FAST-NEXT:    i32.xor $push12=, $pop11, $1110326; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop1210327; NO-SIMD128-FAST-NEXT:    i32.xor $push14=, $8, $1210328; NO-SIMD128-FAST-NEXT:    i32.const $push17=, -110329; NO-SIMD128-FAST-NEXT:    i32.xor $push13=, $4, $pop1710330; NO-SIMD128-FAST-NEXT:    i32.and $push15=, $pop14, $pop1310331; NO-SIMD128-FAST-NEXT:    i32.xor $push16=, $pop15, $1210332; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1610333; NO-SIMD128-FAST-NEXT:    return10334 %xor1 = xor <4 x i32> %v1, %v210335 %notc = xor <4 x i32> %c, <i32 -1, i32 -1, i32 -1, i32 -1>10336 %and = and <4 x i32> %xor1, %notc10337 %a = xor <4 x i32> %and, %v210338 ret <4 x i32> %a10339}10340 10341define <4 x i32> @extmul_low_s_v4i32(<8 x i16> %v1, <8 x i16> %v2) {10342; SIMD128-LABEL: extmul_low_s_v4i32:10343; SIMD128:         .functype extmul_low_s_v4i32 (v128, v128) -> (v128)10344; SIMD128-NEXT:  # %bb.0:10345; SIMD128-NEXT:    i32x4.extmul_low_i16x8_s $push0=, $0, $110346; SIMD128-NEXT:    return $pop010347;10348; SIMD128-FAST-LABEL: extmul_low_s_v4i32:10349; SIMD128-FAST:         .functype extmul_low_s_v4i32 (v128, v128) -> (v128)10350; SIMD128-FAST-NEXT:  # %bb.0:10351; SIMD128-FAST-NEXT:    i32x4.extend_low_i16x8_s $push0=, $010352; SIMD128-FAST-NEXT:    i32x4.extend_low_i16x8_s $push1=, $110353; SIMD128-FAST-NEXT:    i32x4.mul $push2=, $pop0, $pop110354; SIMD128-FAST-NEXT:    return $pop210355;10356; NO-SIMD128-LABEL: extmul_low_s_v4i32:10357; NO-SIMD128:         .functype extmul_low_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10358; NO-SIMD128-NEXT:  # %bb.0:10359; NO-SIMD128-NEXT:    i32.extend16_s $push1=, $410360; NO-SIMD128-NEXT:    i32.extend16_s $push0=, $1210361; NO-SIMD128-NEXT:    i32.mul $push2=, $pop1, $pop010362; NO-SIMD128-NEXT:    i32.store 12($0), $pop210363; NO-SIMD128-NEXT:    i32.extend16_s $push4=, $310364; NO-SIMD128-NEXT:    i32.extend16_s $push3=, $1110365; NO-SIMD128-NEXT:    i32.mul $push5=, $pop4, $pop310366; NO-SIMD128-NEXT:    i32.store 8($0), $pop510367; NO-SIMD128-NEXT:    i32.extend16_s $push7=, $210368; NO-SIMD128-NEXT:    i32.extend16_s $push6=, $1010369; NO-SIMD128-NEXT:    i32.mul $push8=, $pop7, $pop610370; NO-SIMD128-NEXT:    i32.store 4($0), $pop810371; NO-SIMD128-NEXT:    i32.extend16_s $push10=, $110372; NO-SIMD128-NEXT:    i32.extend16_s $push9=, $910373; NO-SIMD128-NEXT:    i32.mul $push11=, $pop10, $pop910374; NO-SIMD128-NEXT:    i32.store 0($0), $pop1110375; NO-SIMD128-NEXT:    return10376;10377; NO-SIMD128-FAST-LABEL: extmul_low_s_v4i32:10378; NO-SIMD128-FAST:         .functype extmul_low_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10379; NO-SIMD128-FAST-NEXT:  # %bb.0:10380; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push1=, $110381; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push0=, $910382; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $pop1, $pop010383; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop210384; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push4=, $210385; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push3=, $1010386; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $pop4, $pop310387; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop510388; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push7=, $310389; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push6=, $1110390; NO-SIMD128-FAST-NEXT:    i32.mul $push8=, $pop7, $pop610391; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop810392; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push10=, $410393; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push9=, $1210394; NO-SIMD128-FAST-NEXT:    i32.mul $push11=, $pop10, $pop910395; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1110396; NO-SIMD128-FAST-NEXT:    return10397  %low1 = shufflevector <8 x i16> %v1, <8 x i16> undef,10398           <4 x i32> <i32 0, i32 1, i32 2, i32 3>10399  %low2 = shufflevector <8 x i16> %v2, <8 x i16> undef,10400           <4 x i32> <i32 0, i32 1, i32 2, i32 3>10401  %extended1 = sext <4 x i16> %low1 to <4 x i32>10402  %extended2 = sext <4 x i16> %low2 to <4 x i32>10403  %a = mul <4 x i32> %extended1, %extended210404  ret <4 x i32> %a10405}10406 10407define <4 x i32> @extmul_high_s_v4i32(<8 x i16> %v1, <8 x i16> %v2) {10408; SIMD128-LABEL: extmul_high_s_v4i32:10409; SIMD128:         .functype extmul_high_s_v4i32 (v128, v128) -> (v128)10410; SIMD128-NEXT:  # %bb.0:10411; SIMD128-NEXT:    i32x4.extmul_high_i16x8_s $push0=, $0, $110412; SIMD128-NEXT:    return $pop010413;10414; SIMD128-FAST-LABEL: extmul_high_s_v4i32:10415; SIMD128-FAST:         .functype extmul_high_s_v4i32 (v128, v128) -> (v128)10416; SIMD128-FAST-NEXT:  # %bb.0:10417; SIMD128-FAST-NEXT:    i32x4.extend_high_i16x8_s $push0=, $010418; SIMD128-FAST-NEXT:    i32x4.extend_high_i16x8_s $push1=, $110419; SIMD128-FAST-NEXT:    i32x4.mul $push2=, $pop0, $pop110420; SIMD128-FAST-NEXT:    return $pop210421;10422; NO-SIMD128-LABEL: extmul_high_s_v4i32:10423; NO-SIMD128:         .functype extmul_high_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10424; NO-SIMD128-NEXT:  # %bb.0:10425; NO-SIMD128-NEXT:    i32.extend16_s $push1=, $810426; NO-SIMD128-NEXT:    i32.extend16_s $push0=, $1610427; NO-SIMD128-NEXT:    i32.mul $push2=, $pop1, $pop010428; NO-SIMD128-NEXT:    i32.store 12($0), $pop210429; NO-SIMD128-NEXT:    i32.extend16_s $push4=, $710430; NO-SIMD128-NEXT:    i32.extend16_s $push3=, $1510431; NO-SIMD128-NEXT:    i32.mul $push5=, $pop4, $pop310432; NO-SIMD128-NEXT:    i32.store 8($0), $pop510433; NO-SIMD128-NEXT:    i32.extend16_s $push7=, $610434; NO-SIMD128-NEXT:    i32.extend16_s $push6=, $1410435; NO-SIMD128-NEXT:    i32.mul $push8=, $pop7, $pop610436; NO-SIMD128-NEXT:    i32.store 4($0), $pop810437; NO-SIMD128-NEXT:    i32.extend16_s $push10=, $510438; NO-SIMD128-NEXT:    i32.extend16_s $push9=, $1310439; NO-SIMD128-NEXT:    i32.mul $push11=, $pop10, $pop910440; NO-SIMD128-NEXT:    i32.store 0($0), $pop1110441; NO-SIMD128-NEXT:    return10442;10443; NO-SIMD128-FAST-LABEL: extmul_high_s_v4i32:10444; NO-SIMD128-FAST:         .functype extmul_high_s_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10445; NO-SIMD128-FAST-NEXT:  # %bb.0:10446; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push1=, $510447; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push0=, $1310448; NO-SIMD128-FAST-NEXT:    i32.mul $push2=, $pop1, $pop010449; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop210450; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push4=, $610451; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push3=, $1410452; NO-SIMD128-FAST-NEXT:    i32.mul $push5=, $pop4, $pop310453; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop510454; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push7=, $710455; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push6=, $1510456; NO-SIMD128-FAST-NEXT:    i32.mul $push8=, $pop7, $pop610457; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop810458; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push10=, $810459; NO-SIMD128-FAST-NEXT:    i32.extend16_s $push9=, $1610460; NO-SIMD128-FAST-NEXT:    i32.mul $push11=, $pop10, $pop910461; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1110462; NO-SIMD128-FAST-NEXT:    return10463  %high1 = shufflevector <8 x i16> %v1, <8 x i16> undef,10464           <4 x i32> <i32 4, i32 5, i32 6, i32 7>10465  %high2 = shufflevector <8 x i16> %v2, <8 x i16> undef,10466           <4 x i32> <i32 4, i32 5, i32 6, i32 7>10467  %extended1 = sext <4 x i16> %high1 to <4 x i32>10468  %extended2 = sext <4 x i16> %high2 to <4 x i32>10469  %a = mul <4 x i32> %extended1, %extended210470  ret <4 x i32> %a10471}10472 10473define <4 x i32> @extmul_low_u_v4i32(<8 x i16> %v1, <8 x i16> %v2) {10474; SIMD128-LABEL: extmul_low_u_v4i32:10475; SIMD128:         .functype extmul_low_u_v4i32 (v128, v128) -> (v128)10476; SIMD128-NEXT:  # %bb.0:10477; SIMD128-NEXT:    i32x4.extmul_low_i16x8_u $push0=, $0, $110478; SIMD128-NEXT:    return $pop010479;10480; SIMD128-FAST-LABEL: extmul_low_u_v4i32:10481; SIMD128-FAST:         .functype extmul_low_u_v4i32 (v128, v128) -> (v128)10482; SIMD128-FAST-NEXT:  # %bb.0:10483; SIMD128-FAST-NEXT:    i32x4.extend_low_i16x8_u $push0=, $010484; SIMD128-FAST-NEXT:    i32x4.extend_low_i16x8_u $push1=, $110485; SIMD128-FAST-NEXT:    i32x4.mul $push2=, $pop0, $pop110486; SIMD128-FAST-NEXT:    return $pop210487;10488; NO-SIMD128-LABEL: extmul_low_u_v4i32:10489; NO-SIMD128:         .functype extmul_low_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10490; NO-SIMD128-NEXT:  # %bb.0:10491; NO-SIMD128-NEXT:    i32.const $push0=, 6553510492; NO-SIMD128-NEXT:    i32.and $push2=, $4, $pop010493; NO-SIMD128-NEXT:    i32.const $push19=, 6553510494; NO-SIMD128-NEXT:    i32.and $push1=, $12, $pop1910495; NO-SIMD128-NEXT:    i32.mul $push3=, $pop2, $pop110496; NO-SIMD128-NEXT:    i32.store 12($0), $pop310497; NO-SIMD128-NEXT:    i32.const $push18=, 6553510498; NO-SIMD128-NEXT:    i32.and $push5=, $3, $pop1810499; NO-SIMD128-NEXT:    i32.const $push17=, 6553510500; NO-SIMD128-NEXT:    i32.and $push4=, $11, $pop1710501; NO-SIMD128-NEXT:    i32.mul $push6=, $pop5, $pop410502; NO-SIMD128-NEXT:    i32.store 8($0), $pop610503; NO-SIMD128-NEXT:    i32.const $push16=, 6553510504; NO-SIMD128-NEXT:    i32.and $push8=, $2, $pop1610505; NO-SIMD128-NEXT:    i32.const $push15=, 6553510506; NO-SIMD128-NEXT:    i32.and $push7=, $10, $pop1510507; NO-SIMD128-NEXT:    i32.mul $push9=, $pop8, $pop710508; NO-SIMD128-NEXT:    i32.store 4($0), $pop910509; NO-SIMD128-NEXT:    i32.const $push14=, 6553510510; NO-SIMD128-NEXT:    i32.and $push11=, $1, $pop1410511; NO-SIMD128-NEXT:    i32.const $push13=, 6553510512; NO-SIMD128-NEXT:    i32.and $push10=, $9, $pop1310513; NO-SIMD128-NEXT:    i32.mul $push12=, $pop11, $pop1010514; NO-SIMD128-NEXT:    i32.store 0($0), $pop1210515; NO-SIMD128-NEXT:    return10516;10517; NO-SIMD128-FAST-LABEL: extmul_low_u_v4i32:10518; NO-SIMD128-FAST:         .functype extmul_low_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10519; NO-SIMD128-FAST-NEXT:  # %bb.0:10520; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 6553510521; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $1, $pop010522; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 6553510523; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $9, $pop1910524; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $pop2, $pop110525; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop310526; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 6553510527; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $2, $pop1810528; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 6553510529; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $10, $pop1710530; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $pop5, $pop410531; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop610532; NO-SIMD128-FAST-NEXT:    i32.const $push16=, 6553510533; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $3, $pop1610534; NO-SIMD128-FAST-NEXT:    i32.const $push15=, 6553510535; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $11, $pop1510536; NO-SIMD128-FAST-NEXT:    i32.mul $push9=, $pop8, $pop710537; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop910538; NO-SIMD128-FAST-NEXT:    i32.const $push14=, 6553510539; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $4, $pop1410540; NO-SIMD128-FAST-NEXT:    i32.const $push13=, 6553510541; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $12, $pop1310542; NO-SIMD128-FAST-NEXT:    i32.mul $push12=, $pop11, $pop1010543; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1210544; NO-SIMD128-FAST-NEXT:    return10545  %low1 = shufflevector <8 x i16> %v1, <8 x i16> undef,10546           <4 x i32> <i32 0, i32 1, i32 2, i32 3>10547  %low2 = shufflevector <8 x i16> %v2, <8 x i16> undef,10548           <4 x i32> <i32 0, i32 1, i32 2, i32 3>10549  %extended1 = zext <4 x i16> %low1 to <4 x i32>10550  %extended2 = zext <4 x i16> %low2 to <4 x i32>10551  %a = mul <4 x i32> %extended1, %extended210552  ret <4 x i32> %a10553}10554 10555define <4 x i32> @extmul_high_u_v4i32(<8 x i16> %v1, <8 x i16> %v2) {10556; SIMD128-LABEL: extmul_high_u_v4i32:10557; SIMD128:         .functype extmul_high_u_v4i32 (v128, v128) -> (v128)10558; SIMD128-NEXT:  # %bb.0:10559; SIMD128-NEXT:    i32x4.extmul_high_i16x8_u $push0=, $0, $110560; SIMD128-NEXT:    return $pop010561;10562; SIMD128-FAST-LABEL: extmul_high_u_v4i32:10563; SIMD128-FAST:         .functype extmul_high_u_v4i32 (v128, v128) -> (v128)10564; SIMD128-FAST-NEXT:  # %bb.0:10565; SIMD128-FAST-NEXT:    i32x4.extend_high_i16x8_u $push0=, $010566; SIMD128-FAST-NEXT:    i32x4.extend_high_i16x8_u $push1=, $110567; SIMD128-FAST-NEXT:    i32x4.mul $push2=, $pop0, $pop110568; SIMD128-FAST-NEXT:    return $pop210569;10570; NO-SIMD128-LABEL: extmul_high_u_v4i32:10571; NO-SIMD128:         .functype extmul_high_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10572; NO-SIMD128-NEXT:  # %bb.0:10573; NO-SIMD128-NEXT:    i32.const $push0=, 6553510574; NO-SIMD128-NEXT:    i32.and $push2=, $8, $pop010575; NO-SIMD128-NEXT:    i32.const $push19=, 6553510576; NO-SIMD128-NEXT:    i32.and $push1=, $16, $pop1910577; NO-SIMD128-NEXT:    i32.mul $push3=, $pop2, $pop110578; NO-SIMD128-NEXT:    i32.store 12($0), $pop310579; NO-SIMD128-NEXT:    i32.const $push18=, 6553510580; NO-SIMD128-NEXT:    i32.and $push5=, $7, $pop1810581; NO-SIMD128-NEXT:    i32.const $push17=, 6553510582; NO-SIMD128-NEXT:    i32.and $push4=, $15, $pop1710583; NO-SIMD128-NEXT:    i32.mul $push6=, $pop5, $pop410584; NO-SIMD128-NEXT:    i32.store 8($0), $pop610585; NO-SIMD128-NEXT:    i32.const $push16=, 6553510586; NO-SIMD128-NEXT:    i32.and $push8=, $6, $pop1610587; NO-SIMD128-NEXT:    i32.const $push15=, 6553510588; NO-SIMD128-NEXT:    i32.and $push7=, $14, $pop1510589; NO-SIMD128-NEXT:    i32.mul $push9=, $pop8, $pop710590; NO-SIMD128-NEXT:    i32.store 4($0), $pop910591; NO-SIMD128-NEXT:    i32.const $push14=, 6553510592; NO-SIMD128-NEXT:    i32.and $push11=, $5, $pop1410593; NO-SIMD128-NEXT:    i32.const $push13=, 6553510594; NO-SIMD128-NEXT:    i32.and $push10=, $13, $pop1310595; NO-SIMD128-NEXT:    i32.mul $push12=, $pop11, $pop1010596; NO-SIMD128-NEXT:    i32.store 0($0), $pop1210597; NO-SIMD128-NEXT:    return10598;10599; NO-SIMD128-FAST-LABEL: extmul_high_u_v4i32:10600; NO-SIMD128-FAST:         .functype extmul_high_u_v4i32 (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()10601; NO-SIMD128-FAST-NEXT:  # %bb.0:10602; NO-SIMD128-FAST-NEXT:    i32.const $push0=, 6553510603; NO-SIMD128-FAST-NEXT:    i32.and $push2=, $5, $pop010604; NO-SIMD128-FAST-NEXT:    i32.const $push19=, 6553510605; NO-SIMD128-FAST-NEXT:    i32.and $push1=, $13, $pop1910606; NO-SIMD128-FAST-NEXT:    i32.mul $push3=, $pop2, $pop110607; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop310608; NO-SIMD128-FAST-NEXT:    i32.const $push18=, 6553510609; NO-SIMD128-FAST-NEXT:    i32.and $push5=, $6, $pop1810610; NO-SIMD128-FAST-NEXT:    i32.const $push17=, 6553510611; NO-SIMD128-FAST-NEXT:    i32.and $push4=, $14, $pop1710612; NO-SIMD128-FAST-NEXT:    i32.mul $push6=, $pop5, $pop410613; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop610614; NO-SIMD128-FAST-NEXT:    i32.const $push16=, 6553510615; NO-SIMD128-FAST-NEXT:    i32.and $push8=, $7, $pop1610616; NO-SIMD128-FAST-NEXT:    i32.const $push15=, 6553510617; NO-SIMD128-FAST-NEXT:    i32.and $push7=, $15, $pop1510618; NO-SIMD128-FAST-NEXT:    i32.mul $push9=, $pop8, $pop710619; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop910620; NO-SIMD128-FAST-NEXT:    i32.const $push14=, 6553510621; NO-SIMD128-FAST-NEXT:    i32.and $push11=, $8, $pop1410622; NO-SIMD128-FAST-NEXT:    i32.const $push13=, 6553510623; NO-SIMD128-FAST-NEXT:    i32.and $push10=, $16, $pop1310624; NO-SIMD128-FAST-NEXT:    i32.mul $push12=, $pop11, $pop1010625; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1210626; NO-SIMD128-FAST-NEXT:    return10627  %high1 = shufflevector <8 x i16> %v1, <8 x i16> undef,10628           <4 x i32> <i32 4, i32 5, i32 6, i32 7>10629  %high2 = shufflevector <8 x i16> %v2, <8 x i16> undef,10630           <4 x i32> <i32 4, i32 5, i32 6, i32 7>10631  %extended1 = zext <4 x i16> %high1 to <4 x i32>10632  %extended2 = zext <4 x i16> %high2 to <4 x i32>10633  %a = mul <4 x i32> %extended1, %extended210634  ret <4 x i32> %a10635}10636 10637; ==============================================================================10638; 2 x i6410639; ==============================================================================10640define <2 x i64> @add_v2i64(<2 x i64> %x, <2 x i64> %y) {10641; SIMD128-LABEL: add_v2i64:10642; SIMD128:         .functype add_v2i64 (v128, v128) -> (v128)10643; SIMD128-NEXT:  # %bb.0:10644; SIMD128-NEXT:    i64x2.add $push0=, $0, $110645; SIMD128-NEXT:    return $pop010646;10647; SIMD128-FAST-LABEL: add_v2i64:10648; SIMD128-FAST:         .functype add_v2i64 (v128, v128) -> (v128)10649; SIMD128-FAST-NEXT:  # %bb.0:10650; SIMD128-FAST-NEXT:    i64x2.add $push0=, $0, $110651; SIMD128-FAST-NEXT:    return $pop010652;10653; NO-SIMD128-LABEL: add_v2i64:10654; NO-SIMD128:         .functype add_v2i64 (i32, i64, i64, i64, i64) -> ()10655; NO-SIMD128-NEXT:  # %bb.0:10656; NO-SIMD128-NEXT:    i64.add $push0=, $2, $410657; NO-SIMD128-NEXT:    i64.store 8($0), $pop010658; NO-SIMD128-NEXT:    i64.add $push1=, $1, $310659; NO-SIMD128-NEXT:    i64.store 0($0), $pop110660; NO-SIMD128-NEXT:    return10661;10662; NO-SIMD128-FAST-LABEL: add_v2i64:10663; NO-SIMD128-FAST:         .functype add_v2i64 (i32, i64, i64, i64, i64) -> ()10664; NO-SIMD128-FAST-NEXT:  # %bb.0:10665; NO-SIMD128-FAST-NEXT:    i64.add $push0=, $1, $310666; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop010667; NO-SIMD128-FAST-NEXT:    i64.add $push1=, $2, $410668; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop110669; NO-SIMD128-FAST-NEXT:    return10670  %a = add <2 x i64> %x, %y10671  ret <2 x i64> %a10672}10673 10674define <2 x i64> @sub_v2i64(<2 x i64> %x, <2 x i64> %y) {10675; SIMD128-LABEL: sub_v2i64:10676; SIMD128:         .functype sub_v2i64 (v128, v128) -> (v128)10677; SIMD128-NEXT:  # %bb.0:10678; SIMD128-NEXT:    i64x2.sub $push0=, $0, $110679; SIMD128-NEXT:    return $pop010680;10681; SIMD128-FAST-LABEL: sub_v2i64:10682; SIMD128-FAST:         .functype sub_v2i64 (v128, v128) -> (v128)10683; SIMD128-FAST-NEXT:  # %bb.0:10684; SIMD128-FAST-NEXT:    i64x2.sub $push0=, $0, $110685; SIMD128-FAST-NEXT:    return $pop010686;10687; NO-SIMD128-LABEL: sub_v2i64:10688; NO-SIMD128:         .functype sub_v2i64 (i32, i64, i64, i64, i64) -> ()10689; NO-SIMD128-NEXT:  # %bb.0:10690; NO-SIMD128-NEXT:    i64.sub $push0=, $2, $410691; NO-SIMD128-NEXT:    i64.store 8($0), $pop010692; NO-SIMD128-NEXT:    i64.sub $push1=, $1, $310693; NO-SIMD128-NEXT:    i64.store 0($0), $pop110694; NO-SIMD128-NEXT:    return10695;10696; NO-SIMD128-FAST-LABEL: sub_v2i64:10697; NO-SIMD128-FAST:         .functype sub_v2i64 (i32, i64, i64, i64, i64) -> ()10698; NO-SIMD128-FAST-NEXT:  # %bb.0:10699; NO-SIMD128-FAST-NEXT:    i64.sub $push0=, $1, $310700; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop010701; NO-SIMD128-FAST-NEXT:    i64.sub $push1=, $2, $410702; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop110703; NO-SIMD128-FAST-NEXT:    return10704  %a = sub <2 x i64> %x, %y10705  ret <2 x i64> %a10706}10707 10708define <2 x i64> @mul_v2i64(<2 x i64> %x, <2 x i64> %y) {10709; SIMD128-LABEL: mul_v2i64:10710; SIMD128:         .functype mul_v2i64 (v128, v128) -> (v128)10711; SIMD128-NEXT:  # %bb.0:10712; SIMD128-NEXT:    i64x2.mul $push0=, $0, $110713; SIMD128-NEXT:    return $pop010714;10715; SIMD128-FAST-LABEL: mul_v2i64:10716; SIMD128-FAST:         .functype mul_v2i64 (v128, v128) -> (v128)10717; SIMD128-FAST-NEXT:  # %bb.0:10718; SIMD128-FAST-NEXT:    i64x2.mul $push0=, $0, $110719; SIMD128-FAST-NEXT:    return $pop010720;10721; NO-SIMD128-LABEL: mul_v2i64:10722; NO-SIMD128:         .functype mul_v2i64 (i32, i64, i64, i64, i64) -> ()10723; NO-SIMD128-NEXT:  # %bb.0:10724; NO-SIMD128-NEXT:    i64.mul $push0=, $2, $410725; NO-SIMD128-NEXT:    i64.store 8($0), $pop010726; NO-SIMD128-NEXT:    i64.mul $push1=, $1, $310727; NO-SIMD128-NEXT:    i64.store 0($0), $pop110728; NO-SIMD128-NEXT:    return10729;10730; NO-SIMD128-FAST-LABEL: mul_v2i64:10731; NO-SIMD128-FAST:         .functype mul_v2i64 (i32, i64, i64, i64, i64) -> ()10732; NO-SIMD128-FAST-NEXT:  # %bb.0:10733; NO-SIMD128-FAST-NEXT:    i64.mul $push0=, $1, $310734; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop010735; NO-SIMD128-FAST-NEXT:    i64.mul $push1=, $2, $410736; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop110737; NO-SIMD128-FAST-NEXT:    return10738  %a = mul <2 x i64> %x, %y10739  ret <2 x i64> %a10740}10741 10742define <2 x i64> @abs_v2i64(<2 x i64> %x) {10743; SIMD128-LABEL: abs_v2i64:10744; SIMD128:         .functype abs_v2i64 (v128) -> (v128)10745; SIMD128-NEXT:  # %bb.0:10746; SIMD128-NEXT:    i64x2.abs $push0=, $010747; SIMD128-NEXT:    return $pop010748;10749; SIMD128-FAST-LABEL: abs_v2i64:10750; SIMD128-FAST:         .functype abs_v2i64 (v128) -> (v128)10751; SIMD128-FAST-NEXT:  # %bb.0:10752; SIMD128-FAST-NEXT:    i64x2.abs $push0=, $010753; SIMD128-FAST-NEXT:    return $pop010754;10755; NO-SIMD128-LABEL: abs_v2i64:10756; NO-SIMD128:         .functype abs_v2i64 (i32, i64, i64) -> ()10757; NO-SIMD128-NEXT:  # %bb.0:10758; NO-SIMD128-NEXT:    i64.const $push0=, 6310759; NO-SIMD128-NEXT:    i64.shr_s $push9=, $2, $pop010760; NO-SIMD128-NEXT:    local.tee $push8=, $3=, $pop910761; NO-SIMD128-NEXT:    i64.xor $push1=, $2, $pop810762; NO-SIMD128-NEXT:    i64.sub $push2=, $pop1, $310763; NO-SIMD128-NEXT:    i64.store 8($0), $pop210764; NO-SIMD128-NEXT:    i64.const $push7=, 6310765; NO-SIMD128-NEXT:    i64.shr_s $push6=, $1, $pop710766; NO-SIMD128-NEXT:    local.tee $push5=, $2=, $pop610767; NO-SIMD128-NEXT:    i64.xor $push3=, $1, $pop510768; NO-SIMD128-NEXT:    i64.sub $push4=, $pop3, $210769; NO-SIMD128-NEXT:    i64.store 0($0), $pop410770; NO-SIMD128-NEXT:    return10771;10772; NO-SIMD128-FAST-LABEL: abs_v2i64:10773; NO-SIMD128-FAST:         .functype abs_v2i64 (i32, i64, i64) -> ()10774; NO-SIMD128-FAST-NEXT:  # %bb.0:10775; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 6310776; NO-SIMD128-FAST-NEXT:    i64.shr_s $push9=, $1, $pop010777; NO-SIMD128-FAST-NEXT:    local.tee $push8=, $3=, $pop910778; NO-SIMD128-FAST-NEXT:    i64.xor $push1=, $1, $pop810779; NO-SIMD128-FAST-NEXT:    i64.sub $push2=, $pop1, $310780; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop210781; NO-SIMD128-FAST-NEXT:    i64.const $push7=, 6310782; NO-SIMD128-FAST-NEXT:    i64.shr_s $push6=, $2, $pop710783; NO-SIMD128-FAST-NEXT:    local.tee $push5=, $1=, $pop610784; NO-SIMD128-FAST-NEXT:    i64.xor $push3=, $2, $pop510785; NO-SIMD128-FAST-NEXT:    i64.sub $push4=, $pop3, $110786; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop410787; NO-SIMD128-FAST-NEXT:    return10788  %a = sub <2 x i64> zeroinitializer, %x10789  %b = icmp slt <2 x i64> %x, zeroinitializer10790  %c = select <2 x i1> %b, <2 x i64> %a, <2 x i64> %x10791  ret <2 x i64> %c10792}10793 10794define <2 x i64> @neg_v2i64(<2 x i64> %x) {10795; SIMD128-LABEL: neg_v2i64:10796; SIMD128:         .functype neg_v2i64 (v128) -> (v128)10797; SIMD128-NEXT:  # %bb.0:10798; SIMD128-NEXT:    i64x2.neg $push0=, $010799; SIMD128-NEXT:    return $pop010800;10801; SIMD128-FAST-LABEL: neg_v2i64:10802; SIMD128-FAST:         .functype neg_v2i64 (v128) -> (v128)10803; SIMD128-FAST-NEXT:  # %bb.0:10804; SIMD128-FAST-NEXT:    i64x2.neg $push0=, $010805; SIMD128-FAST-NEXT:    return $pop010806;10807; NO-SIMD128-LABEL: neg_v2i64:10808; NO-SIMD128:         .functype neg_v2i64 (i32, i64, i64) -> ()10809; NO-SIMD128-NEXT:  # %bb.0:10810; NO-SIMD128-NEXT:    i64.const $push0=, 010811; NO-SIMD128-NEXT:    i64.sub $push1=, $pop0, $210812; NO-SIMD128-NEXT:    i64.store 8($0), $pop110813; NO-SIMD128-NEXT:    i64.const $push3=, 010814; NO-SIMD128-NEXT:    i64.sub $push2=, $pop3, $110815; NO-SIMD128-NEXT:    i64.store 0($0), $pop210816; NO-SIMD128-NEXT:    return10817;10818; NO-SIMD128-FAST-LABEL: neg_v2i64:10819; NO-SIMD128-FAST:         .functype neg_v2i64 (i32, i64, i64) -> ()10820; NO-SIMD128-FAST-NEXT:  # %bb.0:10821; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 010822; NO-SIMD128-FAST-NEXT:    i64.sub $push1=, $pop0, $110823; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop110824; NO-SIMD128-FAST-NEXT:    i64.const $push3=, 010825; NO-SIMD128-FAST-NEXT:    i64.sub $push2=, $pop3, $210826; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop210827; NO-SIMD128-FAST-NEXT:    return10828  %a = sub <2 x i64> <i64 0, i64 0>, %x10829  ret <2 x i64> %a10830}10831 10832define <2 x i64> @shl_v2i64(<2 x i64> %v, i32 %x) {10833; SIMD128-LABEL: shl_v2i64:10834; SIMD128:         .functype shl_v2i64 (v128, i32) -> (v128)10835; SIMD128-NEXT:  # %bb.0:10836; SIMD128-NEXT:    i64x2.shl $push0=, $0, $110837; SIMD128-NEXT:    return $pop010838;10839; SIMD128-FAST-LABEL: shl_v2i64:10840; SIMD128-FAST:         .functype shl_v2i64 (v128, i32) -> (v128)10841; SIMD128-FAST-NEXT:  # %bb.0:10842; SIMD128-FAST-NEXT:    i64x2.shl $push0=, $0, $110843; SIMD128-FAST-NEXT:    return $pop010844;10845; NO-SIMD128-LABEL: shl_v2i64:10846; NO-SIMD128:         .functype shl_v2i64 (i32, i64, i64, i32) -> ()10847; NO-SIMD128-NEXT:  # %bb.0:10848; NO-SIMD128-NEXT:    i64.extend_i32_u $push3=, $310849; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop310850; NO-SIMD128-NEXT:    i64.shl $push0=, $2, $pop210851; NO-SIMD128-NEXT:    i64.store 8($0), $pop010852; NO-SIMD128-NEXT:    i64.shl $push1=, $1, $410853; NO-SIMD128-NEXT:    i64.store 0($0), $pop110854; NO-SIMD128-NEXT:    return10855;10856; NO-SIMD128-FAST-LABEL: shl_v2i64:10857; NO-SIMD128-FAST:         .functype shl_v2i64 (i32, i64, i64, i32) -> ()10858; NO-SIMD128-FAST-NEXT:  # %bb.0:10859; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push3=, $310860; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop310861; NO-SIMD128-FAST-NEXT:    i64.shl $push0=, $2, $pop210862; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop010863; NO-SIMD128-FAST-NEXT:    i64.shl $push1=, $1, $410864; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop110865; NO-SIMD128-FAST-NEXT:    return10866  %x2 = zext i32 %x to i6410867  %t = insertelement <2 x i64> undef, i64 %x2, i32 010868  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>10869  %a = shl <2 x i64> %v, %s10870  ret <2 x i64> %a10871}10872 10873define <2 x i64> @shl_sext_v2i64(<2 x i64> %v, i32 %x) {10874; SIMD128-LABEL: shl_sext_v2i64:10875; SIMD128:         .functype shl_sext_v2i64 (v128, i32) -> (v128)10876; SIMD128-NEXT:  # %bb.0:10877; SIMD128-NEXT:    i64x2.shl $push0=, $0, $110878; SIMD128-NEXT:    return $pop010879;10880; SIMD128-FAST-LABEL: shl_sext_v2i64:10881; SIMD128-FAST:         .functype shl_sext_v2i64 (v128, i32) -> (v128)10882; SIMD128-FAST-NEXT:  # %bb.0:10883; SIMD128-FAST-NEXT:    i64x2.shl $push0=, $0, $110884; SIMD128-FAST-NEXT:    return $pop010885;10886; NO-SIMD128-LABEL: shl_sext_v2i64:10887; NO-SIMD128:         .functype shl_sext_v2i64 (i32, i64, i64, i32) -> ()10888; NO-SIMD128-NEXT:  # %bb.0:10889; NO-SIMD128-NEXT:    i64.extend_i32_s $push3=, $310890; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop310891; NO-SIMD128-NEXT:    i64.shl $push0=, $2, $pop210892; NO-SIMD128-NEXT:    i64.store 8($0), $pop010893; NO-SIMD128-NEXT:    i64.shl $push1=, $1, $410894; NO-SIMD128-NEXT:    i64.store 0($0), $pop110895; NO-SIMD128-NEXT:    return10896;10897; NO-SIMD128-FAST-LABEL: shl_sext_v2i64:10898; NO-SIMD128-FAST:         .functype shl_sext_v2i64 (i32, i64, i64, i32) -> ()10899; NO-SIMD128-FAST-NEXT:  # %bb.0:10900; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push3=, $310901; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop310902; NO-SIMD128-FAST-NEXT:    i64.shl $push0=, $2, $pop210903; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop010904; NO-SIMD128-FAST-NEXT:    i64.shl $push1=, $1, $410905; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop110906; NO-SIMD128-FAST-NEXT:    return10907  %x2 = sext i32 %x to i6410908  %t = insertelement <2 x i64> undef, i64 %x2, i32 010909  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>10910  %a = shl <2 x i64> %v, %s10911  ret <2 x i64> %a10912}10913 10914define <2 x i64> @shl_noext_v2i64(<2 x i64> %v, i64 %x) {10915; SIMD128-LABEL: shl_noext_v2i64:10916; SIMD128:         .functype shl_noext_v2i64 (v128, i64) -> (v128)10917; SIMD128-NEXT:  # %bb.0:10918; SIMD128-NEXT:    i32.wrap_i64 $push0=, $110919; SIMD128-NEXT:    i64x2.shl $push1=, $0, $pop010920; SIMD128-NEXT:    return $pop110921;10922; SIMD128-FAST-LABEL: shl_noext_v2i64:10923; SIMD128-FAST:         .functype shl_noext_v2i64 (v128, i64) -> (v128)10924; SIMD128-FAST-NEXT:  # %bb.0:10925; SIMD128-FAST-NEXT:    i32.wrap_i64 $push1=, $110926; SIMD128-FAST-NEXT:    i64x2.shl $push0=, $0, $pop110927; SIMD128-FAST-NEXT:    return $pop010928;10929; NO-SIMD128-LABEL: shl_noext_v2i64:10930; NO-SIMD128:         .functype shl_noext_v2i64 (i32, i64, i64, i64) -> ()10931; NO-SIMD128-NEXT:  # %bb.0:10932; NO-SIMD128-NEXT:    i64.shl $push0=, $2, $310933; NO-SIMD128-NEXT:    i64.store 8($0), $pop010934; NO-SIMD128-NEXT:    i64.shl $push1=, $1, $310935; NO-SIMD128-NEXT:    i64.store 0($0), $pop110936; NO-SIMD128-NEXT:    return10937;10938; NO-SIMD128-FAST-LABEL: shl_noext_v2i64:10939; NO-SIMD128-FAST:         .functype shl_noext_v2i64 (i32, i64, i64, i64) -> ()10940; NO-SIMD128-FAST-NEXT:  # %bb.0:10941; NO-SIMD128-FAST-NEXT:    i64.shl $push0=, $1, $310942; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop010943; NO-SIMD128-FAST-NEXT:    i64.shl $push1=, $2, $310944; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop110945; NO-SIMD128-FAST-NEXT:    return10946  %t = insertelement <2 x i64> undef, i64 %x, i32 010947  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>10948  %a = shl <2 x i64> %v, %s10949  ret <2 x i64> %a10950}10951 10952define <2 x i64> @shl_const_v2i64(<2 x i64> %v) {10953; SIMD128-LABEL: shl_const_v2i64:10954; SIMD128:         .functype shl_const_v2i64 (v128) -> (v128)10955; SIMD128-NEXT:  # %bb.0:10956; SIMD128-NEXT:    i32.const $push0=, 510957; SIMD128-NEXT:    i64x2.shl $push1=, $0, $pop010958; SIMD128-NEXT:    return $pop110959;10960; SIMD128-FAST-LABEL: shl_const_v2i64:10961; SIMD128-FAST:         .functype shl_const_v2i64 (v128) -> (v128)10962; SIMD128-FAST-NEXT:  # %bb.0:10963; SIMD128-FAST-NEXT:    i32.const $push1=, 510964; SIMD128-FAST-NEXT:    i64x2.shl $push0=, $0, $pop110965; SIMD128-FAST-NEXT:    return $pop010966;10967; NO-SIMD128-LABEL: shl_const_v2i64:10968; NO-SIMD128:         .functype shl_const_v2i64 (i32, i64, i64) -> ()10969; NO-SIMD128-NEXT:  # %bb.0:10970; NO-SIMD128-NEXT:    i64.const $push0=, 510971; NO-SIMD128-NEXT:    i64.shl $push1=, $2, $pop010972; NO-SIMD128-NEXT:    i64.store 8($0), $pop110973; NO-SIMD128-NEXT:    i64.const $push3=, 510974; NO-SIMD128-NEXT:    i64.shl $push2=, $1, $pop310975; NO-SIMD128-NEXT:    i64.store 0($0), $pop210976; NO-SIMD128-NEXT:    return10977;10978; NO-SIMD128-FAST-LABEL: shl_const_v2i64:10979; NO-SIMD128-FAST:         .functype shl_const_v2i64 (i32, i64, i64) -> ()10980; NO-SIMD128-FAST-NEXT:  # %bb.0:10981; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 510982; NO-SIMD128-FAST-NEXT:    i64.shl $push1=, $1, $pop010983; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop110984; NO-SIMD128-FAST-NEXT:    i64.const $push3=, 510985; NO-SIMD128-FAST-NEXT:    i64.shl $push2=, $2, $pop310986; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop210987; NO-SIMD128-FAST-NEXT:    return10988  %a = shl <2 x i64> %v, <i64 5, i64 5>10989  ret <2 x i64> %a10990}10991 10992define <2 x i64> @shl_vec_v2i64(<2 x i64> %v, <2 x i64> %x) {10993; SIMD128-LABEL: shl_vec_v2i64:10994; SIMD128:         .functype shl_vec_v2i64 (v128, v128) -> (v128)10995; SIMD128-NEXT:  # %bb.0:10996; SIMD128-NEXT:    i64x2.extract_lane $push4=, $0, 010997; SIMD128-NEXT:    i64x2.extract_lane $push3=, $1, 010998; SIMD128-NEXT:    i64.shl $push5=, $pop4, $pop310999; SIMD128-NEXT:    i64x2.splat $push6=, $pop511000; SIMD128-NEXT:    i64x2.extract_lane $push1=, $0, 111001; SIMD128-NEXT:    i64x2.extract_lane $push0=, $1, 111002; SIMD128-NEXT:    i64.shl $push2=, $pop1, $pop011003; SIMD128-NEXT:    i64x2.replace_lane $push7=, $pop6, 1, $pop211004; SIMD128-NEXT:    return $pop711005;11006; SIMD128-FAST-LABEL: shl_vec_v2i64:11007; SIMD128-FAST:         .functype shl_vec_v2i64 (v128, v128) -> (v128)11008; SIMD128-FAST-NEXT:  # %bb.0:11009; SIMD128-FAST-NEXT:    i64x2.extract_lane $push5=, $0, 011010; SIMD128-FAST-NEXT:    i64x2.extract_lane $push4=, $1, 011011; SIMD128-FAST-NEXT:    i64.shl $push6=, $pop5, $pop411012; SIMD128-FAST-NEXT:    i64x2.splat $push7=, $pop611013; SIMD128-FAST-NEXT:    i64x2.extract_lane $push2=, $0, 111014; SIMD128-FAST-NEXT:    i64x2.extract_lane $push1=, $1, 111015; SIMD128-FAST-NEXT:    i64.shl $push3=, $pop2, $pop111016; SIMD128-FAST-NEXT:    i64x2.replace_lane $push0=, $pop7, 1, $pop311017; SIMD128-FAST-NEXT:    return $pop011018;11019; NO-SIMD128-LABEL: shl_vec_v2i64:11020; NO-SIMD128:         .functype shl_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11021; NO-SIMD128-NEXT:  # %bb.0:11022; NO-SIMD128-NEXT:    i64.shl $push0=, $2, $411023; NO-SIMD128-NEXT:    i64.store 8($0), $pop011024; NO-SIMD128-NEXT:    i64.shl $push1=, $1, $311025; NO-SIMD128-NEXT:    i64.store 0($0), $pop111026; NO-SIMD128-NEXT:    return11027;11028; NO-SIMD128-FAST-LABEL: shl_vec_v2i64:11029; NO-SIMD128-FAST:         .functype shl_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11030; NO-SIMD128-FAST-NEXT:  # %bb.0:11031; NO-SIMD128-FAST-NEXT:    i64.shl $push0=, $1, $311032; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011033; NO-SIMD128-FAST-NEXT:    i64.shl $push1=, $2, $411034; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111035; NO-SIMD128-FAST-NEXT:    return11036  %a = shl <2 x i64> %v, %x11037  ret <2 x i64> %a11038}11039 11040define <2 x i64> @shr_s_v2i64(<2 x i64> %v, i32 %x) {11041; SIMD128-LABEL: shr_s_v2i64:11042; SIMD128:         .functype shr_s_v2i64 (v128, i32) -> (v128)11043; SIMD128-NEXT:  # %bb.0:11044; SIMD128-NEXT:    i64x2.shr_s $push0=, $0, $111045; SIMD128-NEXT:    return $pop011046;11047; SIMD128-FAST-LABEL: shr_s_v2i64:11048; SIMD128-FAST:         .functype shr_s_v2i64 (v128, i32) -> (v128)11049; SIMD128-FAST-NEXT:  # %bb.0:11050; SIMD128-FAST-NEXT:    i64x2.shr_s $push0=, $0, $111051; SIMD128-FAST-NEXT:    return $pop011052;11053; NO-SIMD128-LABEL: shr_s_v2i64:11054; NO-SIMD128:         .functype shr_s_v2i64 (i32, i64, i64, i32) -> ()11055; NO-SIMD128-NEXT:  # %bb.0:11056; NO-SIMD128-NEXT:    i64.extend_i32_u $push3=, $311057; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop311058; NO-SIMD128-NEXT:    i64.shr_s $push0=, $2, $pop211059; NO-SIMD128-NEXT:    i64.store 8($0), $pop011060; NO-SIMD128-NEXT:    i64.shr_s $push1=, $1, $411061; NO-SIMD128-NEXT:    i64.store 0($0), $pop111062; NO-SIMD128-NEXT:    return11063;11064; NO-SIMD128-FAST-LABEL: shr_s_v2i64:11065; NO-SIMD128-FAST:         .functype shr_s_v2i64 (i32, i64, i64, i32) -> ()11066; NO-SIMD128-FAST-NEXT:  # %bb.0:11067; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push3=, $311068; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop311069; NO-SIMD128-FAST-NEXT:    i64.shr_s $push0=, $2, $pop211070; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop011071; NO-SIMD128-FAST-NEXT:    i64.shr_s $push1=, $1, $411072; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111073; NO-SIMD128-FAST-NEXT:    return11074  %x2 = zext i32 %x to i6411075  %t = insertelement <2 x i64> undef, i64 %x2, i32 011076  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11077  %a = ashr <2 x i64> %v, %s11078  ret <2 x i64> %a11079}11080 11081define <2 x i64> @shr_s_sext_v2i64(<2 x i64> %v, i32 %x) {11082; SIMD128-LABEL: shr_s_sext_v2i64:11083; SIMD128:         .functype shr_s_sext_v2i64 (v128, i32) -> (v128)11084; SIMD128-NEXT:  # %bb.0:11085; SIMD128-NEXT:    i64x2.shr_s $push0=, $0, $111086; SIMD128-NEXT:    return $pop011087;11088; SIMD128-FAST-LABEL: shr_s_sext_v2i64:11089; SIMD128-FAST:         .functype shr_s_sext_v2i64 (v128, i32) -> (v128)11090; SIMD128-FAST-NEXT:  # %bb.0:11091; SIMD128-FAST-NEXT:    i64x2.shr_s $push0=, $0, $111092; SIMD128-FAST-NEXT:    return $pop011093;11094; NO-SIMD128-LABEL: shr_s_sext_v2i64:11095; NO-SIMD128:         .functype shr_s_sext_v2i64 (i32, i64, i64, i32) -> ()11096; NO-SIMD128-NEXT:  # %bb.0:11097; NO-SIMD128-NEXT:    i64.extend_i32_s $push3=, $311098; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop311099; NO-SIMD128-NEXT:    i64.shr_s $push0=, $2, $pop211100; NO-SIMD128-NEXT:    i64.store 8($0), $pop011101; NO-SIMD128-NEXT:    i64.shr_s $push1=, $1, $411102; NO-SIMD128-NEXT:    i64.store 0($0), $pop111103; NO-SIMD128-NEXT:    return11104;11105; NO-SIMD128-FAST-LABEL: shr_s_sext_v2i64:11106; NO-SIMD128-FAST:         .functype shr_s_sext_v2i64 (i32, i64, i64, i32) -> ()11107; NO-SIMD128-FAST-NEXT:  # %bb.0:11108; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push3=, $311109; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop311110; NO-SIMD128-FAST-NEXT:    i64.shr_s $push0=, $2, $pop211111; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop011112; NO-SIMD128-FAST-NEXT:    i64.shr_s $push1=, $1, $411113; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111114; NO-SIMD128-FAST-NEXT:    return11115  %x2 = sext i32 %x to i6411116  %t = insertelement <2 x i64> undef, i64 %x2, i32 011117  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11118  %a = ashr <2 x i64> %v, %s11119  ret <2 x i64> %a11120}11121 11122define <2 x i64> @shr_s_noext_v2i64(<2 x i64> %v, i64 %x) {11123; SIMD128-LABEL: shr_s_noext_v2i64:11124; SIMD128:         .functype shr_s_noext_v2i64 (v128, i64) -> (v128)11125; SIMD128-NEXT:  # %bb.0:11126; SIMD128-NEXT:    i32.wrap_i64 $push0=, $111127; SIMD128-NEXT:    i64x2.shr_s $push1=, $0, $pop011128; SIMD128-NEXT:    return $pop111129;11130; SIMD128-FAST-LABEL: shr_s_noext_v2i64:11131; SIMD128-FAST:         .functype shr_s_noext_v2i64 (v128, i64) -> (v128)11132; SIMD128-FAST-NEXT:  # %bb.0:11133; SIMD128-FAST-NEXT:    i32.wrap_i64 $push1=, $111134; SIMD128-FAST-NEXT:    i64x2.shr_s $push0=, $0, $pop111135; SIMD128-FAST-NEXT:    return $pop011136;11137; NO-SIMD128-LABEL: shr_s_noext_v2i64:11138; NO-SIMD128:         .functype shr_s_noext_v2i64 (i32, i64, i64, i64) -> ()11139; NO-SIMD128-NEXT:  # %bb.0:11140; NO-SIMD128-NEXT:    i64.shr_s $push0=, $2, $311141; NO-SIMD128-NEXT:    i64.store 8($0), $pop011142; NO-SIMD128-NEXT:    i64.shr_s $push1=, $1, $311143; NO-SIMD128-NEXT:    i64.store 0($0), $pop111144; NO-SIMD128-NEXT:    return11145;11146; NO-SIMD128-FAST-LABEL: shr_s_noext_v2i64:11147; NO-SIMD128-FAST:         .functype shr_s_noext_v2i64 (i32, i64, i64, i64) -> ()11148; NO-SIMD128-FAST-NEXT:  # %bb.0:11149; NO-SIMD128-FAST-NEXT:    i64.shr_s $push0=, $1, $311150; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011151; NO-SIMD128-FAST-NEXT:    i64.shr_s $push1=, $2, $311152; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111153; NO-SIMD128-FAST-NEXT:    return11154  %t = insertelement <2 x i64> undef, i64 %x, i32 011155  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11156  %a = ashr <2 x i64> %v, %s11157  ret <2 x i64> %a11158}11159 11160define <2 x i64> @shr_s_const_v2i64(<2 x i64> %v) {11161; SIMD128-LABEL: shr_s_const_v2i64:11162; SIMD128:         .functype shr_s_const_v2i64 (v128) -> (v128)11163; SIMD128-NEXT:  # %bb.0:11164; SIMD128-NEXT:    i32.const $push0=, 511165; SIMD128-NEXT:    i64x2.shr_s $push1=, $0, $pop011166; SIMD128-NEXT:    return $pop111167;11168; SIMD128-FAST-LABEL: shr_s_const_v2i64:11169; SIMD128-FAST:         .functype shr_s_const_v2i64 (v128) -> (v128)11170; SIMD128-FAST-NEXT:  # %bb.0:11171; SIMD128-FAST-NEXT:    i32.const $push1=, 511172; SIMD128-FAST-NEXT:    i64x2.shr_s $push0=, $0, $pop111173; SIMD128-FAST-NEXT:    return $pop011174;11175; NO-SIMD128-LABEL: shr_s_const_v2i64:11176; NO-SIMD128:         .functype shr_s_const_v2i64 (i32, i64, i64) -> ()11177; NO-SIMD128-NEXT:  # %bb.0:11178; NO-SIMD128-NEXT:    i64.const $push0=, 511179; NO-SIMD128-NEXT:    i64.shr_s $push1=, $2, $pop011180; NO-SIMD128-NEXT:    i64.store 8($0), $pop111181; NO-SIMD128-NEXT:    i64.const $push3=, 511182; NO-SIMD128-NEXT:    i64.shr_s $push2=, $1, $pop311183; NO-SIMD128-NEXT:    i64.store 0($0), $pop211184; NO-SIMD128-NEXT:    return11185;11186; NO-SIMD128-FAST-LABEL: shr_s_const_v2i64:11187; NO-SIMD128-FAST:         .functype shr_s_const_v2i64 (i32, i64, i64) -> ()11188; NO-SIMD128-FAST-NEXT:  # %bb.0:11189; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 511190; NO-SIMD128-FAST-NEXT:    i64.shr_s $push1=, $1, $pop011191; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111192; NO-SIMD128-FAST-NEXT:    i64.const $push3=, 511193; NO-SIMD128-FAST-NEXT:    i64.shr_s $push2=, $2, $pop311194; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop211195; NO-SIMD128-FAST-NEXT:    return11196  %a = ashr <2 x i64> %v, <i64 5, i64 5>11197  ret <2 x i64> %a11198}11199 11200define <2 x i64> @shr_s_vec_v2i64(<2 x i64> %v, <2 x i64> %x) {11201; SIMD128-LABEL: shr_s_vec_v2i64:11202; SIMD128:         .functype shr_s_vec_v2i64 (v128, v128) -> (v128)11203; SIMD128-NEXT:  # %bb.0:11204; SIMD128-NEXT:    i64x2.extract_lane $push4=, $0, 011205; SIMD128-NEXT:    i64x2.extract_lane $push3=, $1, 011206; SIMD128-NEXT:    i64.shr_s $push5=, $pop4, $pop311207; SIMD128-NEXT:    i64x2.splat $push6=, $pop511208; SIMD128-NEXT:    i64x2.extract_lane $push1=, $0, 111209; SIMD128-NEXT:    i64x2.extract_lane $push0=, $1, 111210; SIMD128-NEXT:    i64.shr_s $push2=, $pop1, $pop011211; SIMD128-NEXT:    i64x2.replace_lane $push7=, $pop6, 1, $pop211212; SIMD128-NEXT:    return $pop711213;11214; SIMD128-FAST-LABEL: shr_s_vec_v2i64:11215; SIMD128-FAST:         .functype shr_s_vec_v2i64 (v128, v128) -> (v128)11216; SIMD128-FAST-NEXT:  # %bb.0:11217; SIMD128-FAST-NEXT:    i64x2.extract_lane $push5=, $0, 011218; SIMD128-FAST-NEXT:    i64x2.extract_lane $push4=, $1, 011219; SIMD128-FAST-NEXT:    i64.shr_s $push6=, $pop5, $pop411220; SIMD128-FAST-NEXT:    i64x2.splat $push7=, $pop611221; SIMD128-FAST-NEXT:    i64x2.extract_lane $push2=, $0, 111222; SIMD128-FAST-NEXT:    i64x2.extract_lane $push1=, $1, 111223; SIMD128-FAST-NEXT:    i64.shr_s $push3=, $pop2, $pop111224; SIMD128-FAST-NEXT:    i64x2.replace_lane $push0=, $pop7, 1, $pop311225; SIMD128-FAST-NEXT:    return $pop011226;11227; NO-SIMD128-LABEL: shr_s_vec_v2i64:11228; NO-SIMD128:         .functype shr_s_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11229; NO-SIMD128-NEXT:  # %bb.0:11230; NO-SIMD128-NEXT:    i64.shr_s $push0=, $2, $411231; NO-SIMD128-NEXT:    i64.store 8($0), $pop011232; NO-SIMD128-NEXT:    i64.shr_s $push1=, $1, $311233; NO-SIMD128-NEXT:    i64.store 0($0), $pop111234; NO-SIMD128-NEXT:    return11235;11236; NO-SIMD128-FAST-LABEL: shr_s_vec_v2i64:11237; NO-SIMD128-FAST:         .functype shr_s_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11238; NO-SIMD128-FAST-NEXT:  # %bb.0:11239; NO-SIMD128-FAST-NEXT:    i64.shr_s $push0=, $1, $311240; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011241; NO-SIMD128-FAST-NEXT:    i64.shr_s $push1=, $2, $411242; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111243; NO-SIMD128-FAST-NEXT:    return11244  %a = ashr <2 x i64> %v, %x11245  ret <2 x i64> %a11246}11247 11248define <2 x i64> @shr_u_v2i64(<2 x i64> %v, i32 %x) {11249; SIMD128-LABEL: shr_u_v2i64:11250; SIMD128:         .functype shr_u_v2i64 (v128, i32) -> (v128)11251; SIMD128-NEXT:  # %bb.0:11252; SIMD128-NEXT:    i64x2.shr_u $push0=, $0, $111253; SIMD128-NEXT:    return $pop011254;11255; SIMD128-FAST-LABEL: shr_u_v2i64:11256; SIMD128-FAST:         .functype shr_u_v2i64 (v128, i32) -> (v128)11257; SIMD128-FAST-NEXT:  # %bb.0:11258; SIMD128-FAST-NEXT:    i64x2.shr_u $push0=, $0, $111259; SIMD128-FAST-NEXT:    return $pop011260;11261; NO-SIMD128-LABEL: shr_u_v2i64:11262; NO-SIMD128:         .functype shr_u_v2i64 (i32, i64, i64, i32) -> ()11263; NO-SIMD128-NEXT:  # %bb.0:11264; NO-SIMD128-NEXT:    i64.extend_i32_u $push3=, $311265; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop311266; NO-SIMD128-NEXT:    i64.shr_u $push0=, $2, $pop211267; NO-SIMD128-NEXT:    i64.store 8($0), $pop011268; NO-SIMD128-NEXT:    i64.shr_u $push1=, $1, $411269; NO-SIMD128-NEXT:    i64.store 0($0), $pop111270; NO-SIMD128-NEXT:    return11271;11272; NO-SIMD128-FAST-LABEL: shr_u_v2i64:11273; NO-SIMD128-FAST:         .functype shr_u_v2i64 (i32, i64, i64, i32) -> ()11274; NO-SIMD128-FAST-NEXT:  # %bb.0:11275; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push3=, $311276; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop311277; NO-SIMD128-FAST-NEXT:    i64.shr_u $push0=, $2, $pop211278; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop011279; NO-SIMD128-FAST-NEXT:    i64.shr_u $push1=, $1, $411280; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111281; NO-SIMD128-FAST-NEXT:    return11282  %x2 = zext i32 %x to i6411283  %t = insertelement <2 x i64> undef, i64 %x2, i32 011284  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11285  %a = lshr <2 x i64> %v, %s11286  ret <2 x i64> %a11287}11288 11289define <2 x i64> @shr_u_sext_v2i64(<2 x i64> %v, i32 %x) {11290; SIMD128-LABEL: shr_u_sext_v2i64:11291; SIMD128:         .functype shr_u_sext_v2i64 (v128, i32) -> (v128)11292; SIMD128-NEXT:  # %bb.0:11293; SIMD128-NEXT:    i64x2.shr_u $push0=, $0, $111294; SIMD128-NEXT:    return $pop011295;11296; SIMD128-FAST-LABEL: shr_u_sext_v2i64:11297; SIMD128-FAST:         .functype shr_u_sext_v2i64 (v128, i32) -> (v128)11298; SIMD128-FAST-NEXT:  # %bb.0:11299; SIMD128-FAST-NEXT:    i64x2.shr_u $push0=, $0, $111300; SIMD128-FAST-NEXT:    return $pop011301;11302; NO-SIMD128-LABEL: shr_u_sext_v2i64:11303; NO-SIMD128:         .functype shr_u_sext_v2i64 (i32, i64, i64, i32) -> ()11304; NO-SIMD128-NEXT:  # %bb.0:11305; NO-SIMD128-NEXT:    i64.extend_i32_s $push3=, $311306; NO-SIMD128-NEXT:    local.tee $push2=, $4=, $pop311307; NO-SIMD128-NEXT:    i64.shr_u $push0=, $2, $pop211308; NO-SIMD128-NEXT:    i64.store 8($0), $pop011309; NO-SIMD128-NEXT:    i64.shr_u $push1=, $1, $411310; NO-SIMD128-NEXT:    i64.store 0($0), $pop111311; NO-SIMD128-NEXT:    return11312;11313; NO-SIMD128-FAST-LABEL: shr_u_sext_v2i64:11314; NO-SIMD128-FAST:         .functype shr_u_sext_v2i64 (i32, i64, i64, i32) -> ()11315; NO-SIMD128-FAST-NEXT:  # %bb.0:11316; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push3=, $311317; NO-SIMD128-FAST-NEXT:    local.tee $push2=, $4=, $pop311318; NO-SIMD128-FAST-NEXT:    i64.shr_u $push0=, $2, $pop211319; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop011320; NO-SIMD128-FAST-NEXT:    i64.shr_u $push1=, $1, $411321; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111322; NO-SIMD128-FAST-NEXT:    return11323  %x2 = sext i32 %x to i6411324  %t = insertelement <2 x i64> undef, i64 %x2, i32 011325  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11326  %a = lshr <2 x i64> %v, %s11327  ret <2 x i64> %a11328}11329 11330define <2 x i64> @shr_u_noext_v2i64(<2 x i64> %v, i64 %x) {11331; SIMD128-LABEL: shr_u_noext_v2i64:11332; SIMD128:         .functype shr_u_noext_v2i64 (v128, i64) -> (v128)11333; SIMD128-NEXT:  # %bb.0:11334; SIMD128-NEXT:    i32.wrap_i64 $push0=, $111335; SIMD128-NEXT:    i64x2.shr_u $push1=, $0, $pop011336; SIMD128-NEXT:    return $pop111337;11338; SIMD128-FAST-LABEL: shr_u_noext_v2i64:11339; SIMD128-FAST:         .functype shr_u_noext_v2i64 (v128, i64) -> (v128)11340; SIMD128-FAST-NEXT:  # %bb.0:11341; SIMD128-FAST-NEXT:    i32.wrap_i64 $push1=, $111342; SIMD128-FAST-NEXT:    i64x2.shr_u $push0=, $0, $pop111343; SIMD128-FAST-NEXT:    return $pop011344;11345; NO-SIMD128-LABEL: shr_u_noext_v2i64:11346; NO-SIMD128:         .functype shr_u_noext_v2i64 (i32, i64, i64, i64) -> ()11347; NO-SIMD128-NEXT:  # %bb.0:11348; NO-SIMD128-NEXT:    i64.shr_u $push0=, $2, $311349; NO-SIMD128-NEXT:    i64.store 8($0), $pop011350; NO-SIMD128-NEXT:    i64.shr_u $push1=, $1, $311351; NO-SIMD128-NEXT:    i64.store 0($0), $pop111352; NO-SIMD128-NEXT:    return11353;11354; NO-SIMD128-FAST-LABEL: shr_u_noext_v2i64:11355; NO-SIMD128-FAST:         .functype shr_u_noext_v2i64 (i32, i64, i64, i64) -> ()11356; NO-SIMD128-FAST-NEXT:  # %bb.0:11357; NO-SIMD128-FAST-NEXT:    i64.shr_u $push0=, $1, $311358; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011359; NO-SIMD128-FAST-NEXT:    i64.shr_u $push1=, $2, $311360; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111361; NO-SIMD128-FAST-NEXT:    return11362  %t = insertelement <2 x i64> undef, i64 %x, i32 011363  %s = shufflevector <2 x i64> %t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>11364  %a = lshr <2 x i64> %v, %s11365  ret <2 x i64> %a11366}11367 11368define <2 x i64> @shr_u_const_v2i64(<2 x i64> %v) {11369; SIMD128-LABEL: shr_u_const_v2i64:11370; SIMD128:         .functype shr_u_const_v2i64 (v128) -> (v128)11371; SIMD128-NEXT:  # %bb.0:11372; SIMD128-NEXT:    i32.const $push0=, 511373; SIMD128-NEXT:    i64x2.shr_u $push1=, $0, $pop011374; SIMD128-NEXT:    return $pop111375;11376; SIMD128-FAST-LABEL: shr_u_const_v2i64:11377; SIMD128-FAST:         .functype shr_u_const_v2i64 (v128) -> (v128)11378; SIMD128-FAST-NEXT:  # %bb.0:11379; SIMD128-FAST-NEXT:    i32.const $push1=, 511380; SIMD128-FAST-NEXT:    i64x2.shr_u $push0=, $0, $pop111381; SIMD128-FAST-NEXT:    return $pop011382;11383; NO-SIMD128-LABEL: shr_u_const_v2i64:11384; NO-SIMD128:         .functype shr_u_const_v2i64 (i32, i64, i64) -> ()11385; NO-SIMD128-NEXT:  # %bb.0:11386; NO-SIMD128-NEXT:    i64.const $push0=, 511387; NO-SIMD128-NEXT:    i64.shr_u $push1=, $2, $pop011388; NO-SIMD128-NEXT:    i64.store 8($0), $pop111389; NO-SIMD128-NEXT:    i64.const $push3=, 511390; NO-SIMD128-NEXT:    i64.shr_u $push2=, $1, $pop311391; NO-SIMD128-NEXT:    i64.store 0($0), $pop211392; NO-SIMD128-NEXT:    return11393;11394; NO-SIMD128-FAST-LABEL: shr_u_const_v2i64:11395; NO-SIMD128-FAST:         .functype shr_u_const_v2i64 (i32, i64, i64) -> ()11396; NO-SIMD128-FAST-NEXT:  # %bb.0:11397; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 511398; NO-SIMD128-FAST-NEXT:    i64.shr_u $push1=, $1, $pop011399; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111400; NO-SIMD128-FAST-NEXT:    i64.const $push3=, 511401; NO-SIMD128-FAST-NEXT:    i64.shr_u $push2=, $2, $pop311402; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop211403; NO-SIMD128-FAST-NEXT:    return11404  %a = lshr <2 x i64> %v, <i64 5, i64 5>11405  ret <2 x i64> %a11406}11407 11408define <2 x i64> @shr_u_vec_v2i64(<2 x i64> %v, <2 x i64> %x) {11409; SIMD128-LABEL: shr_u_vec_v2i64:11410; SIMD128:         .functype shr_u_vec_v2i64 (v128, v128) -> (v128)11411; SIMD128-NEXT:  # %bb.0:11412; SIMD128-NEXT:    i64x2.extract_lane $push4=, $0, 011413; SIMD128-NEXT:    i64x2.extract_lane $push3=, $1, 011414; SIMD128-NEXT:    i64.shr_u $push5=, $pop4, $pop311415; SIMD128-NEXT:    i64x2.splat $push6=, $pop511416; SIMD128-NEXT:    i64x2.extract_lane $push1=, $0, 111417; SIMD128-NEXT:    i64x2.extract_lane $push0=, $1, 111418; SIMD128-NEXT:    i64.shr_u $push2=, $pop1, $pop011419; SIMD128-NEXT:    i64x2.replace_lane $push7=, $pop6, 1, $pop211420; SIMD128-NEXT:    return $pop711421;11422; SIMD128-FAST-LABEL: shr_u_vec_v2i64:11423; SIMD128-FAST:         .functype shr_u_vec_v2i64 (v128, v128) -> (v128)11424; SIMD128-FAST-NEXT:  # %bb.0:11425; SIMD128-FAST-NEXT:    i64x2.extract_lane $push5=, $0, 011426; SIMD128-FAST-NEXT:    i64x2.extract_lane $push4=, $1, 011427; SIMD128-FAST-NEXT:    i64.shr_u $push6=, $pop5, $pop411428; SIMD128-FAST-NEXT:    i64x2.splat $push7=, $pop611429; SIMD128-FAST-NEXT:    i64x2.extract_lane $push2=, $0, 111430; SIMD128-FAST-NEXT:    i64x2.extract_lane $push1=, $1, 111431; SIMD128-FAST-NEXT:    i64.shr_u $push3=, $pop2, $pop111432; SIMD128-FAST-NEXT:    i64x2.replace_lane $push0=, $pop7, 1, $pop311433; SIMD128-FAST-NEXT:    return $pop011434;11435; NO-SIMD128-LABEL: shr_u_vec_v2i64:11436; NO-SIMD128:         .functype shr_u_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11437; NO-SIMD128-NEXT:  # %bb.0:11438; NO-SIMD128-NEXT:    i64.shr_u $push0=, $2, $411439; NO-SIMD128-NEXT:    i64.store 8($0), $pop011440; NO-SIMD128-NEXT:    i64.shr_u $push1=, $1, $311441; NO-SIMD128-NEXT:    i64.store 0($0), $pop111442; NO-SIMD128-NEXT:    return11443;11444; NO-SIMD128-FAST-LABEL: shr_u_vec_v2i64:11445; NO-SIMD128-FAST:         .functype shr_u_vec_v2i64 (i32, i64, i64, i64, i64) -> ()11446; NO-SIMD128-FAST-NEXT:  # %bb.0:11447; NO-SIMD128-FAST-NEXT:    i64.shr_u $push0=, $1, $311448; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011449; NO-SIMD128-FAST-NEXT:    i64.shr_u $push1=, $2, $411450; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111451; NO-SIMD128-FAST-NEXT:    return11452  %a = lshr <2 x i64> %v, %x11453  ret <2 x i64> %a11454}11455 11456define <2 x i64> @and_v2i64(<2 x i64> %x, <2 x i64> %y) {11457; SIMD128-LABEL: and_v2i64:11458; SIMD128:         .functype and_v2i64 (v128, v128) -> (v128)11459; SIMD128-NEXT:  # %bb.0:11460; SIMD128-NEXT:    v128.and $push0=, $0, $111461; SIMD128-NEXT:    return $pop011462;11463; SIMD128-FAST-LABEL: and_v2i64:11464; SIMD128-FAST:         .functype and_v2i64 (v128, v128) -> (v128)11465; SIMD128-FAST-NEXT:  # %bb.0:11466; SIMD128-FAST-NEXT:    v128.and $push0=, $0, $111467; SIMD128-FAST-NEXT:    return $pop011468;11469; NO-SIMD128-LABEL: and_v2i64:11470; NO-SIMD128:         .functype and_v2i64 (i32, i64, i64, i64, i64) -> ()11471; NO-SIMD128-NEXT:  # %bb.0:11472; NO-SIMD128-NEXT:    i64.and $push0=, $2, $411473; NO-SIMD128-NEXT:    i64.store 8($0), $pop011474; NO-SIMD128-NEXT:    i64.and $push1=, $1, $311475; NO-SIMD128-NEXT:    i64.store 0($0), $pop111476; NO-SIMD128-NEXT:    return11477;11478; NO-SIMD128-FAST-LABEL: and_v2i64:11479; NO-SIMD128-FAST:         .functype and_v2i64 (i32, i64, i64, i64, i64) -> ()11480; NO-SIMD128-FAST-NEXT:  # %bb.0:11481; NO-SIMD128-FAST-NEXT:    i64.and $push0=, $1, $311482; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011483; NO-SIMD128-FAST-NEXT:    i64.and $push1=, $2, $411484; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111485; NO-SIMD128-FAST-NEXT:    return11486  %a = and <2 x i64> %x, %y11487  ret <2 x i64> %a11488}11489 11490define <2 x i64> @or_v2i64(<2 x i64> %x, <2 x i64> %y) {11491; SIMD128-LABEL: or_v2i64:11492; SIMD128:         .functype or_v2i64 (v128, v128) -> (v128)11493; SIMD128-NEXT:  # %bb.0:11494; SIMD128-NEXT:    v128.or $push0=, $0, $111495; SIMD128-NEXT:    return $pop011496;11497; SIMD128-FAST-LABEL: or_v2i64:11498; SIMD128-FAST:         .functype or_v2i64 (v128, v128) -> (v128)11499; SIMD128-FAST-NEXT:  # %bb.0:11500; SIMD128-FAST-NEXT:    v128.or $push0=, $0, $111501; SIMD128-FAST-NEXT:    return $pop011502;11503; NO-SIMD128-LABEL: or_v2i64:11504; NO-SIMD128:         .functype or_v2i64 (i32, i64, i64, i64, i64) -> ()11505; NO-SIMD128-NEXT:  # %bb.0:11506; NO-SIMD128-NEXT:    i64.or $push0=, $2, $411507; NO-SIMD128-NEXT:    i64.store 8($0), $pop011508; NO-SIMD128-NEXT:    i64.or $push1=, $1, $311509; NO-SIMD128-NEXT:    i64.store 0($0), $pop111510; NO-SIMD128-NEXT:    return11511;11512; NO-SIMD128-FAST-LABEL: or_v2i64:11513; NO-SIMD128-FAST:         .functype or_v2i64 (i32, i64, i64, i64, i64) -> ()11514; NO-SIMD128-FAST-NEXT:  # %bb.0:11515; NO-SIMD128-FAST-NEXT:    i64.or $push0=, $1, $311516; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011517; NO-SIMD128-FAST-NEXT:    i64.or $push1=, $2, $411518; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111519; NO-SIMD128-FAST-NEXT:    return11520  %a = or <2 x i64> %x, %y11521  ret <2 x i64> %a11522}11523 11524define <2 x i64> @xor_v2i64(<2 x i64> %x, <2 x i64> %y) {11525; SIMD128-LABEL: xor_v2i64:11526; SIMD128:         .functype xor_v2i64 (v128, v128) -> (v128)11527; SIMD128-NEXT:  # %bb.0:11528; SIMD128-NEXT:    v128.xor $push0=, $0, $111529; SIMD128-NEXT:    return $pop011530;11531; SIMD128-FAST-LABEL: xor_v2i64:11532; SIMD128-FAST:         .functype xor_v2i64 (v128, v128) -> (v128)11533; SIMD128-FAST-NEXT:  # %bb.0:11534; SIMD128-FAST-NEXT:    v128.xor $push0=, $0, $111535; SIMD128-FAST-NEXT:    return $pop011536;11537; NO-SIMD128-LABEL: xor_v2i64:11538; NO-SIMD128:         .functype xor_v2i64 (i32, i64, i64, i64, i64) -> ()11539; NO-SIMD128-NEXT:  # %bb.0:11540; NO-SIMD128-NEXT:    i64.xor $push0=, $2, $411541; NO-SIMD128-NEXT:    i64.store 8($0), $pop011542; NO-SIMD128-NEXT:    i64.xor $push1=, $1, $311543; NO-SIMD128-NEXT:    i64.store 0($0), $pop111544; NO-SIMD128-NEXT:    return11545;11546; NO-SIMD128-FAST-LABEL: xor_v2i64:11547; NO-SIMD128-FAST:         .functype xor_v2i64 (i32, i64, i64, i64, i64) -> ()11548; NO-SIMD128-FAST-NEXT:  # %bb.0:11549; NO-SIMD128-FAST-NEXT:    i64.xor $push0=, $1, $311550; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop011551; NO-SIMD128-FAST-NEXT:    i64.xor $push1=, $2, $411552; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop111553; NO-SIMD128-FAST-NEXT:    return11554  %a = xor <2 x i64> %x, %y11555  ret <2 x i64> %a11556}11557 11558define <2 x i64> @not_v2i64(<2 x i64> %x) {11559; SIMD128-LABEL: not_v2i64:11560; SIMD128:         .functype not_v2i64 (v128) -> (v128)11561; SIMD128-NEXT:  # %bb.0:11562; SIMD128-NEXT:    v128.not $push0=, $011563; SIMD128-NEXT:    return $pop011564;11565; SIMD128-FAST-LABEL: not_v2i64:11566; SIMD128-FAST:         .functype not_v2i64 (v128) -> (v128)11567; SIMD128-FAST-NEXT:  # %bb.0:11568; SIMD128-FAST-NEXT:    v128.not $push0=, $011569; SIMD128-FAST-NEXT:    return $pop011570;11571; NO-SIMD128-LABEL: not_v2i64:11572; NO-SIMD128:         .functype not_v2i64 (i32, i64, i64) -> ()11573; NO-SIMD128-NEXT:  # %bb.0:11574; NO-SIMD128-NEXT:    i64.const $push0=, -111575; NO-SIMD128-NEXT:    i64.xor $push1=, $2, $pop011576; NO-SIMD128-NEXT:    i64.store 8($0), $pop111577; NO-SIMD128-NEXT:    i64.const $push3=, -111578; NO-SIMD128-NEXT:    i64.xor $push2=, $1, $pop311579; NO-SIMD128-NEXT:    i64.store 0($0), $pop211580; NO-SIMD128-NEXT:    return11581;11582; NO-SIMD128-FAST-LABEL: not_v2i64:11583; NO-SIMD128-FAST:         .functype not_v2i64 (i32, i64, i64) -> ()11584; NO-SIMD128-FAST-NEXT:  # %bb.0:11585; NO-SIMD128-FAST-NEXT:    i64.const $push0=, -111586; NO-SIMD128-FAST-NEXT:    i64.xor $push1=, $1, $pop011587; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop111588; NO-SIMD128-FAST-NEXT:    i64.const $push3=, -111589; NO-SIMD128-FAST-NEXT:    i64.xor $push2=, $2, $pop311590; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop211591; NO-SIMD128-FAST-NEXT:    return11592  %a = xor <2 x i64> %x, <i64 -1, i64 -1>11593  ret <2 x i64> %a11594}11595 11596define <2 x i64> @andnot_v2i64(<2 x i64> %x, <2 x i64> %y) {11597; SIMD128-LABEL: andnot_v2i64:11598; SIMD128:         .functype andnot_v2i64 (v128, v128) -> (v128)11599; SIMD128-NEXT:  # %bb.0:11600; SIMD128-NEXT:    v128.andnot $push0=, $0, $111601; SIMD128-NEXT:    return $pop011602;11603; SIMD128-FAST-LABEL: andnot_v2i64:11604; SIMD128-FAST:         .functype andnot_v2i64 (v128, v128) -> (v128)11605; SIMD128-FAST-NEXT:  # %bb.0:11606; SIMD128-FAST-NEXT:    v128.not $push0=, $111607; SIMD128-FAST-NEXT:    v128.and $push1=, $0, $pop011608; SIMD128-FAST-NEXT:    return $pop111609;11610; NO-SIMD128-LABEL: andnot_v2i64:11611; NO-SIMD128:         .functype andnot_v2i64 (i32, i64, i64, i64, i64) -> ()11612; NO-SIMD128-NEXT:  # %bb.0:11613; NO-SIMD128-NEXT:    i64.const $push0=, -111614; NO-SIMD128-NEXT:    i64.xor $push1=, $4, $pop011615; NO-SIMD128-NEXT:    i64.and $push2=, $2, $pop111616; NO-SIMD128-NEXT:    i64.store 8($0), $pop211617; NO-SIMD128-NEXT:    i64.const $push5=, -111618; NO-SIMD128-NEXT:    i64.xor $push3=, $3, $pop511619; NO-SIMD128-NEXT:    i64.and $push4=, $1, $pop311620; NO-SIMD128-NEXT:    i64.store 0($0), $pop411621; NO-SIMD128-NEXT:    return11622;11623; NO-SIMD128-FAST-LABEL: andnot_v2i64:11624; NO-SIMD128-FAST:         .functype andnot_v2i64 (i32, i64, i64, i64, i64) -> ()11625; NO-SIMD128-FAST-NEXT:  # %bb.0:11626; NO-SIMD128-FAST-NEXT:    i64.const $push0=, -111627; NO-SIMD128-FAST-NEXT:    i64.xor $push1=, $3, $pop011628; NO-SIMD128-FAST-NEXT:    i64.and $push2=, $1, $pop111629; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211630; NO-SIMD128-FAST-NEXT:    i64.const $push5=, -111631; NO-SIMD128-FAST-NEXT:    i64.xor $push3=, $4, $pop511632; NO-SIMD128-FAST-NEXT:    i64.and $push4=, $2, $pop311633; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop411634; NO-SIMD128-FAST-NEXT:    return11635 %inv_y = xor <2 x i64> %y, <i64 -1, i64 -1>11636 %a = and <2 x i64> %x, %inv_y11637 ret <2 x i64> %a11638}11639 11640define <2 x i64> @bitselect_v2i64(<2 x i64> %c, <2 x i64> %v1, <2 x i64> %v2) {11641; SIMD128-LABEL: bitselect_v2i64:11642; SIMD128:         .functype bitselect_v2i64 (v128, v128, v128) -> (v128)11643; SIMD128-NEXT:  # %bb.0:11644; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $011645; SIMD128-NEXT:    return $pop011646;11647; SIMD128-FAST-LABEL: bitselect_v2i64:11648; SIMD128-FAST:         .functype bitselect_v2i64 (v128, v128, v128) -> (v128)11649; SIMD128-FAST-NEXT:  # %bb.0:11650; SIMD128-FAST-NEXT:    v128.not $push2=, $011651; SIMD128-FAST-NEXT:    v128.and $push3=, $2, $pop211652; SIMD128-FAST-NEXT:    v128.and $push0=, $1, $011653; SIMD128-FAST-NEXT:    v128.or $push1=, $pop3, $pop011654; SIMD128-FAST-NEXT:    return $pop111655;11656; NO-SIMD128-LABEL: bitselect_v2i64:11657; NO-SIMD128:         .functype bitselect_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11658; NO-SIMD128-NEXT:  # %bb.0:11659; NO-SIMD128-NEXT:    i64.xor $push0=, $4, $611660; NO-SIMD128-NEXT:    i64.and $push1=, $pop0, $211661; NO-SIMD128-NEXT:    i64.xor $push2=, $pop1, $611662; NO-SIMD128-NEXT:    i64.store 8($0), $pop211663; NO-SIMD128-NEXT:    i64.xor $push3=, $3, $511664; NO-SIMD128-NEXT:    i64.and $push4=, $pop3, $111665; NO-SIMD128-NEXT:    i64.xor $push5=, $pop4, $511666; NO-SIMD128-NEXT:    i64.store 0($0), $pop511667; NO-SIMD128-NEXT:    return11668;11669; NO-SIMD128-FAST-LABEL: bitselect_v2i64:11670; NO-SIMD128-FAST:         .functype bitselect_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11671; NO-SIMD128-FAST-NEXT:  # %bb.0:11672; NO-SIMD128-FAST-NEXT:    i64.xor $push0=, $3, $511673; NO-SIMD128-FAST-NEXT:    i64.and $push1=, $pop0, $111674; NO-SIMD128-FAST-NEXT:    i64.xor $push2=, $pop1, $511675; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211676; NO-SIMD128-FAST-NEXT:    i64.xor $push3=, $4, $611677; NO-SIMD128-FAST-NEXT:    i64.and $push4=, $pop3, $211678; NO-SIMD128-FAST-NEXT:    i64.xor $push5=, $pop4, $611679; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511680; NO-SIMD128-FAST-NEXT:    return11681  %masked_v1 = and <2 x i64> %v1, %c11682  %inv_mask = xor <2 x i64> <i64 -1, i64 -1>, %c11683  %masked_v2 = and <2 x i64> %v2, %inv_mask11684  %a = or <2 x i64> %masked_v2, %masked_v111685  ret <2 x i64> %a11686}11687 11688define <2 x i64> @bitselect_xor_v2i64(<2 x i64> %c, <2 x i64> %v1, <2 x i64> %v2) {11689; SIMD128-LABEL: bitselect_xor_v2i64:11690; SIMD128:         .functype bitselect_xor_v2i64 (v128, v128, v128) -> (v128)11691; SIMD128-NEXT:  # %bb.0:11692; SIMD128-NEXT:    v128.bitselect $push0=, $1, $2, $011693; SIMD128-NEXT:    return $pop011694;11695; SIMD128-FAST-LABEL: bitselect_xor_v2i64:11696; SIMD128-FAST:         .functype bitselect_xor_v2i64 (v128, v128, v128) -> (v128)11697; SIMD128-FAST-NEXT:  # %bb.0:11698; SIMD128-FAST-NEXT:    v128.xor $push2=, $1, $211699; SIMD128-FAST-NEXT:    v128.and $push1=, $pop2, $011700; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop1, $211701; SIMD128-FAST-NEXT:    return $pop011702;11703; NO-SIMD128-LABEL: bitselect_xor_v2i64:11704; NO-SIMD128:         .functype bitselect_xor_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11705; NO-SIMD128-NEXT:  # %bb.0:11706; NO-SIMD128-NEXT:    i64.xor $push0=, $4, $611707; NO-SIMD128-NEXT:    i64.and $push1=, $pop0, $211708; NO-SIMD128-NEXT:    i64.xor $push2=, $pop1, $611709; NO-SIMD128-NEXT:    i64.store 8($0), $pop211710; NO-SIMD128-NEXT:    i64.xor $push3=, $3, $511711; NO-SIMD128-NEXT:    i64.and $push4=, $pop3, $111712; NO-SIMD128-NEXT:    i64.xor $push5=, $pop4, $511713; NO-SIMD128-NEXT:    i64.store 0($0), $pop511714; NO-SIMD128-NEXT:    return11715;11716; NO-SIMD128-FAST-LABEL: bitselect_xor_v2i64:11717; NO-SIMD128-FAST:         .functype bitselect_xor_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11718; NO-SIMD128-FAST-NEXT:  # %bb.0:11719; NO-SIMD128-FAST-NEXT:    i64.xor $push0=, $3, $511720; NO-SIMD128-FAST-NEXT:    i64.and $push1=, $pop0, $111721; NO-SIMD128-FAST-NEXT:    i64.xor $push2=, $pop1, $511722; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211723; NO-SIMD128-FAST-NEXT:    i64.xor $push3=, $4, $611724; NO-SIMD128-FAST-NEXT:    i64.and $push4=, $pop3, $211725; NO-SIMD128-FAST-NEXT:    i64.xor $push5=, $pop4, $611726; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511727; NO-SIMD128-FAST-NEXT:    return11728 %xor1 = xor <2 x i64> %v1, %v211729 %and = and <2 x i64> %xor1, %c11730 %a = xor <2 x i64> %and, %v211731 ret <2 x i64> %a11732}11733 11734define <2 x i64> @bitselect_xor_reversed_v2i64(<2 x i64> %c, <2 x i64> %v1, <2 x i64> %v2) {11735; SIMD128-LABEL: bitselect_xor_reversed_v2i64:11736; SIMD128:         .functype bitselect_xor_reversed_v2i64 (v128, v128, v128) -> (v128)11737; SIMD128-NEXT:  # %bb.0:11738; SIMD128-NEXT:    v128.bitselect $push0=, $2, $1, $011739; SIMD128-NEXT:    return $pop011740;11741; SIMD128-FAST-LABEL: bitselect_xor_reversed_v2i64:11742; SIMD128-FAST:         .functype bitselect_xor_reversed_v2i64 (v128, v128, v128) -> (v128)11743; SIMD128-FAST-NEXT:  # %bb.0:11744; SIMD128-FAST-NEXT:    v128.xor $push1=, $1, $211745; SIMD128-FAST-NEXT:    v128.not $push2=, $011746; SIMD128-FAST-NEXT:    v128.and $push3=, $pop1, $pop211747; SIMD128-FAST-NEXT:    v128.xor $push0=, $pop3, $211748; SIMD128-FAST-NEXT:    return $pop011749;11750; NO-SIMD128-LABEL: bitselect_xor_reversed_v2i64:11751; NO-SIMD128:         .functype bitselect_xor_reversed_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11752; NO-SIMD128-NEXT:  # %bb.0:11753; NO-SIMD128-NEXT:    i64.xor $push2=, $4, $611754; NO-SIMD128-NEXT:    i64.const $push0=, -111755; NO-SIMD128-NEXT:    i64.xor $push1=, $2, $pop011756; NO-SIMD128-NEXT:    i64.and $push3=, $pop2, $pop111757; NO-SIMD128-NEXT:    i64.xor $push4=, $pop3, $611758; NO-SIMD128-NEXT:    i64.store 8($0), $pop411759; NO-SIMD128-NEXT:    i64.xor $push6=, $3, $511760; NO-SIMD128-NEXT:    i64.const $push9=, -111761; NO-SIMD128-NEXT:    i64.xor $push5=, $1, $pop911762; NO-SIMD128-NEXT:    i64.and $push7=, $pop6, $pop511763; NO-SIMD128-NEXT:    i64.xor $push8=, $pop7, $511764; NO-SIMD128-NEXT:    i64.store 0($0), $pop811765; NO-SIMD128-NEXT:    return11766;11767; NO-SIMD128-FAST-LABEL: bitselect_xor_reversed_v2i64:11768; NO-SIMD128-FAST:         .functype bitselect_xor_reversed_v2i64 (i32, i64, i64, i64, i64, i64, i64) -> ()11769; NO-SIMD128-FAST-NEXT:  # %bb.0:11770; NO-SIMD128-FAST-NEXT:    i64.xor $push2=, $3, $511771; NO-SIMD128-FAST-NEXT:    i64.const $push0=, -111772; NO-SIMD128-FAST-NEXT:    i64.xor $push1=, $1, $pop011773; NO-SIMD128-FAST-NEXT:    i64.and $push3=, $pop2, $pop111774; NO-SIMD128-FAST-NEXT:    i64.xor $push4=, $pop3, $511775; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop411776; NO-SIMD128-FAST-NEXT:    i64.xor $push6=, $4, $611777; NO-SIMD128-FAST-NEXT:    i64.const $push9=, -111778; NO-SIMD128-FAST-NEXT:    i64.xor $push5=, $2, $pop911779; NO-SIMD128-FAST-NEXT:    i64.and $push7=, $pop6, $pop511780; NO-SIMD128-FAST-NEXT:    i64.xor $push8=, $pop7, $611781; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop811782; NO-SIMD128-FAST-NEXT:    return11783 %xor1 = xor <2 x i64> %v1, %v211784 %notc = xor <2 x i64> %c, <i64 -1, i64 -1>11785 %and = and <2 x i64> %xor1, %notc11786 %a = xor <2 x i64> %and, %v211787 ret <2 x i64> %a11788}11789 11790define <2 x i64> @extmul_low_s_v2i64(<4 x i32> %v1, <4 x i32> %v2) {11791; SIMD128-LABEL: extmul_low_s_v2i64:11792; SIMD128:         .functype extmul_low_s_v2i64 (v128, v128) -> (v128)11793; SIMD128-NEXT:  # %bb.0:11794; SIMD128-NEXT:    i64x2.extmul_low_i32x4_s $push0=, $0, $111795; SIMD128-NEXT:    return $pop011796;11797; SIMD128-FAST-LABEL: extmul_low_s_v2i64:11798; SIMD128-FAST:         .functype extmul_low_s_v2i64 (v128, v128) -> (v128)11799; SIMD128-FAST-NEXT:  # %bb.0:11800; SIMD128-FAST-NEXT:    i64x2.extend_low_i32x4_s $push0=, $011801; SIMD128-FAST-NEXT:    i64x2.extend_low_i32x4_s $push1=, $111802; SIMD128-FAST-NEXT:    i64x2.mul $push2=, $pop0, $pop111803; SIMD128-FAST-NEXT:    return $pop211804;11805; NO-SIMD128-LABEL: extmul_low_s_v2i64:11806; NO-SIMD128:         .functype extmul_low_s_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11807; NO-SIMD128-NEXT:  # %bb.0:11808; NO-SIMD128-NEXT:    i64.extend_i32_s $push1=, $211809; NO-SIMD128-NEXT:    i64.extend_i32_s $push0=, $611810; NO-SIMD128-NEXT:    i64.mul $push2=, $pop1, $pop011811; NO-SIMD128-NEXT:    i64.store 8($0), $pop211812; NO-SIMD128-NEXT:    i64.extend_i32_s $push4=, $111813; NO-SIMD128-NEXT:    i64.extend_i32_s $push3=, $511814; NO-SIMD128-NEXT:    i64.mul $push5=, $pop4, $pop311815; NO-SIMD128-NEXT:    i64.store 0($0), $pop511816; NO-SIMD128-NEXT:    return11817;11818; NO-SIMD128-FAST-LABEL: extmul_low_s_v2i64:11819; NO-SIMD128-FAST:         .functype extmul_low_s_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11820; NO-SIMD128-FAST-NEXT:  # %bb.0:11821; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push1=, $111822; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push0=, $511823; NO-SIMD128-FAST-NEXT:    i64.mul $push2=, $pop1, $pop011824; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211825; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push4=, $211826; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push3=, $611827; NO-SIMD128-FAST-NEXT:    i64.mul $push5=, $pop4, $pop311828; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511829; NO-SIMD128-FAST-NEXT:    return11830  %low1 = shufflevector <4 x i32> %v1, <4 x i32> undef, <2 x i32> <i32 0, i32 1>11831  %low2 = shufflevector <4 x i32> %v2, <4 x i32> undef, <2 x i32> <i32 0, i32 1>11832  %extended1 = sext <2 x i32> %low1 to <2 x i64>11833  %extended2 = sext <2 x i32> %low2 to <2 x i64>11834  %a = mul <2 x i64> %extended1, %extended211835  ret <2 x i64> %a11836}11837 11838define <2 x i64> @extmul_high_s_v2i64(<4 x i32> %v1, <4 x i32> %v2) {11839; SIMD128-LABEL: extmul_high_s_v2i64:11840; SIMD128:         .functype extmul_high_s_v2i64 (v128, v128) -> (v128)11841; SIMD128-NEXT:  # %bb.0:11842; SIMD128-NEXT:    i64x2.extmul_high_i32x4_s $push0=, $0, $111843; SIMD128-NEXT:    return $pop011844;11845; SIMD128-FAST-LABEL: extmul_high_s_v2i64:11846; SIMD128-FAST:         .functype extmul_high_s_v2i64 (v128, v128) -> (v128)11847; SIMD128-FAST-NEXT:  # %bb.0:11848; SIMD128-FAST-NEXT:    i64x2.extend_high_i32x4_s $push0=, $011849; SIMD128-FAST-NEXT:    i64x2.extend_high_i32x4_s $push1=, $111850; SIMD128-FAST-NEXT:    i64x2.mul $push2=, $pop0, $pop111851; SIMD128-FAST-NEXT:    return $pop211852;11853; NO-SIMD128-LABEL: extmul_high_s_v2i64:11854; NO-SIMD128:         .functype extmul_high_s_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11855; NO-SIMD128-NEXT:  # %bb.0:11856; NO-SIMD128-NEXT:    i64.extend_i32_s $push1=, $411857; NO-SIMD128-NEXT:    i64.extend_i32_s $push0=, $811858; NO-SIMD128-NEXT:    i64.mul $push2=, $pop1, $pop011859; NO-SIMD128-NEXT:    i64.store 8($0), $pop211860; NO-SIMD128-NEXT:    i64.extend_i32_s $push4=, $311861; NO-SIMD128-NEXT:    i64.extend_i32_s $push3=, $711862; NO-SIMD128-NEXT:    i64.mul $push5=, $pop4, $pop311863; NO-SIMD128-NEXT:    i64.store 0($0), $pop511864; NO-SIMD128-NEXT:    return11865;11866; NO-SIMD128-FAST-LABEL: extmul_high_s_v2i64:11867; NO-SIMD128-FAST:         .functype extmul_high_s_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11868; NO-SIMD128-FAST-NEXT:  # %bb.0:11869; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push1=, $311870; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push0=, $711871; NO-SIMD128-FAST-NEXT:    i64.mul $push2=, $pop1, $pop011872; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211873; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push4=, $411874; NO-SIMD128-FAST-NEXT:    i64.extend_i32_s $push3=, $811875; NO-SIMD128-FAST-NEXT:    i64.mul $push5=, $pop4, $pop311876; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511877; NO-SIMD128-FAST-NEXT:    return11878  %high1 = shufflevector <4 x i32> %v1, <4 x i32> undef, <2 x i32> <i32 2, i32 3>11879  %high2 = shufflevector <4 x i32> %v2, <4 x i32> undef, <2 x i32> <i32 2, i32 3>11880  %extended1 = sext <2 x i32> %high1 to <2 x i64>11881  %extended2 = sext <2 x i32> %high2 to <2 x i64>11882  %a = mul <2 x i64> %extended1, %extended211883  ret <2 x i64> %a11884}11885 11886define <2 x i64> @extmul_low_u_v2i64(<4 x i32> %v1, <4 x i32> %v2) {11887; SIMD128-LABEL: extmul_low_u_v2i64:11888; SIMD128:         .functype extmul_low_u_v2i64 (v128, v128) -> (v128)11889; SIMD128-NEXT:  # %bb.0:11890; SIMD128-NEXT:    i64x2.extmul_low_i32x4_u $push0=, $0, $111891; SIMD128-NEXT:    return $pop011892;11893; SIMD128-FAST-LABEL: extmul_low_u_v2i64:11894; SIMD128-FAST:         .functype extmul_low_u_v2i64 (v128, v128) -> (v128)11895; SIMD128-FAST-NEXT:  # %bb.0:11896; SIMD128-FAST-NEXT:    i64x2.extend_low_i32x4_u $push0=, $011897; SIMD128-FAST-NEXT:    i64x2.extend_low_i32x4_u $push1=, $111898; SIMD128-FAST-NEXT:    i64x2.mul $push2=, $pop0, $pop111899; SIMD128-FAST-NEXT:    return $pop211900;11901; NO-SIMD128-LABEL: extmul_low_u_v2i64:11902; NO-SIMD128:         .functype extmul_low_u_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11903; NO-SIMD128-NEXT:  # %bb.0:11904; NO-SIMD128-NEXT:    i64.extend_i32_u $push1=, $211905; NO-SIMD128-NEXT:    i64.extend_i32_u $push0=, $611906; NO-SIMD128-NEXT:    i64.mul $push2=, $pop1, $pop011907; NO-SIMD128-NEXT:    i64.store 8($0), $pop211908; NO-SIMD128-NEXT:    i64.extend_i32_u $push4=, $111909; NO-SIMD128-NEXT:    i64.extend_i32_u $push3=, $511910; NO-SIMD128-NEXT:    i64.mul $push5=, $pop4, $pop311911; NO-SIMD128-NEXT:    i64.store 0($0), $pop511912; NO-SIMD128-NEXT:    return11913;11914; NO-SIMD128-FAST-LABEL: extmul_low_u_v2i64:11915; NO-SIMD128-FAST:         .functype extmul_low_u_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11916; NO-SIMD128-FAST-NEXT:  # %bb.0:11917; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push1=, $111918; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push0=, $511919; NO-SIMD128-FAST-NEXT:    i64.mul $push2=, $pop1, $pop011920; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211921; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push4=, $211922; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push3=, $611923; NO-SIMD128-FAST-NEXT:    i64.mul $push5=, $pop4, $pop311924; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511925; NO-SIMD128-FAST-NEXT:    return11926  %low1 = shufflevector <4 x i32> %v1, <4 x i32> undef, <2 x i32> <i32 0, i32 1>11927  %low2 = shufflevector <4 x i32> %v2, <4 x i32> undef, <2 x i32> <i32 0, i32 1>11928  %extended1 = zext <2 x i32> %low1 to <2 x i64>11929  %extended2 = zext <2 x i32> %low2 to <2 x i64>11930  %a = mul <2 x i64> %extended1, %extended211931  ret <2 x i64> %a11932}11933 11934define <2 x i64> @extmul_high_u_v2i64(<4 x i32> %v1, <4 x i32> %v2) {11935; SIMD128-LABEL: extmul_high_u_v2i64:11936; SIMD128:         .functype extmul_high_u_v2i64 (v128, v128) -> (v128)11937; SIMD128-NEXT:  # %bb.0:11938; SIMD128-NEXT:    i64x2.extmul_high_i32x4_u $push0=, $0, $111939; SIMD128-NEXT:    return $pop011940;11941; SIMD128-FAST-LABEL: extmul_high_u_v2i64:11942; SIMD128-FAST:         .functype extmul_high_u_v2i64 (v128, v128) -> (v128)11943; SIMD128-FAST-NEXT:  # %bb.0:11944; SIMD128-FAST-NEXT:    i64x2.extend_high_i32x4_u $push0=, $011945; SIMD128-FAST-NEXT:    i64x2.extend_high_i32x4_u $push1=, $111946; SIMD128-FAST-NEXT:    i64x2.mul $push2=, $pop0, $pop111947; SIMD128-FAST-NEXT:    return $pop211948;11949; NO-SIMD128-LABEL: extmul_high_u_v2i64:11950; NO-SIMD128:         .functype extmul_high_u_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11951; NO-SIMD128-NEXT:  # %bb.0:11952; NO-SIMD128-NEXT:    i64.extend_i32_u $push1=, $411953; NO-SIMD128-NEXT:    i64.extend_i32_u $push0=, $811954; NO-SIMD128-NEXT:    i64.mul $push2=, $pop1, $pop011955; NO-SIMD128-NEXT:    i64.store 8($0), $pop211956; NO-SIMD128-NEXT:    i64.extend_i32_u $push4=, $311957; NO-SIMD128-NEXT:    i64.extend_i32_u $push3=, $711958; NO-SIMD128-NEXT:    i64.mul $push5=, $pop4, $pop311959; NO-SIMD128-NEXT:    i64.store 0($0), $pop511960; NO-SIMD128-NEXT:    return11961;11962; NO-SIMD128-FAST-LABEL: extmul_high_u_v2i64:11963; NO-SIMD128-FAST:         .functype extmul_high_u_v2i64 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()11964; NO-SIMD128-FAST-NEXT:  # %bb.0:11965; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push1=, $311966; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push0=, $711967; NO-SIMD128-FAST-NEXT:    i64.mul $push2=, $pop1, $pop011968; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop211969; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push4=, $411970; NO-SIMD128-FAST-NEXT:    i64.extend_i32_u $push3=, $811971; NO-SIMD128-FAST-NEXT:    i64.mul $push5=, $pop4, $pop311972; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop511973; NO-SIMD128-FAST-NEXT:    return11974  %high1 = shufflevector <4 x i32> %v1, <4 x i32> undef, <2 x i32> <i32 2, i32 3>11975  %high2 = shufflevector <4 x i32> %v2, <4 x i32> undef, <2 x i32> <i32 2, i32 3>11976  %extended1 = zext <2 x i32> %high1 to <2 x i64>11977  %extended2 = zext <2 x i32> %high2 to <2 x i64>11978  %a = mul <2 x i64> %extended1, %extended211979  ret <2 x i64> %a11980}11981 11982; ==============================================================================11983; 4 x float11984; ==============================================================================11985define <4 x float> @neg_v4f32(<4 x float> %x) {11986  ; nsz makes this semantically equivalent to flipping sign bit11987; SIMD128-LABEL: neg_v4f32:11988; SIMD128:         .functype neg_v4f32 (v128) -> (v128)11989; SIMD128-NEXT:  # %bb.0:11990; SIMD128-NEXT:    f32x4.neg $push0=, $011991; SIMD128-NEXT:    return $pop011992;11993; SIMD128-FAST-LABEL: neg_v4f32:11994; SIMD128-FAST:         .functype neg_v4f32 (v128) -> (v128)11995; SIMD128-FAST-NEXT:  # %bb.0:11996; SIMD128-FAST-NEXT:    f32x4.neg $push0=, $011997; SIMD128-FAST-NEXT:    return $pop011998;11999; NO-SIMD128-LABEL: neg_v4f32:12000; NO-SIMD128:         .functype neg_v4f32 (i32, f32, f32, f32, f32) -> ()12001; NO-SIMD128-NEXT:  # %bb.0:12002; NO-SIMD128-NEXT:    f32.neg $push0=, $412003; NO-SIMD128-NEXT:    f32.store 12($0), $pop012004; NO-SIMD128-NEXT:    f32.neg $push1=, $312005; NO-SIMD128-NEXT:    f32.store 8($0), $pop112006; NO-SIMD128-NEXT:    f32.neg $push2=, $212007; NO-SIMD128-NEXT:    f32.store 4($0), $pop212008; NO-SIMD128-NEXT:    f32.neg $push3=, $112009; NO-SIMD128-NEXT:    f32.store 0($0), $pop312010; NO-SIMD128-NEXT:    return12011;12012; NO-SIMD128-FAST-LABEL: neg_v4f32:12013; NO-SIMD128-FAST:         .functype neg_v4f32 (i32, f32, f32, f32, f32) -> ()12014; NO-SIMD128-FAST-NEXT:  # %bb.0:12015; NO-SIMD128-FAST-NEXT:    f32.neg $push0=, $112016; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012017; NO-SIMD128-FAST-NEXT:    f32.neg $push1=, $212018; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112019; NO-SIMD128-FAST-NEXT:    f32.neg $push2=, $312020; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212021; NO-SIMD128-FAST-NEXT:    f32.neg $push3=, $412022; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312023; NO-SIMD128-FAST-NEXT:    return12024  %a = fsub nsz <4 x float> <float 0.0, float 0.0, float 0.0, float 0.0>, %x12025  ret <4 x float> %a12026}12027 12028declare <4 x float> @llvm.fabs.v4f32(<4 x float>) nounwind readnone12029define <4 x float> @abs_v4f32(<4 x float> %x) {12030; SIMD128-LABEL: abs_v4f32:12031; SIMD128:         .functype abs_v4f32 (v128) -> (v128)12032; SIMD128-NEXT:  # %bb.0:12033; SIMD128-NEXT:    f32x4.abs $push0=, $012034; SIMD128-NEXT:    return $pop012035;12036; SIMD128-FAST-LABEL: abs_v4f32:12037; SIMD128-FAST:         .functype abs_v4f32 (v128) -> (v128)12038; SIMD128-FAST-NEXT:  # %bb.0:12039; SIMD128-FAST-NEXT:    f32x4.abs $push0=, $012040; SIMD128-FAST-NEXT:    return $pop012041;12042; NO-SIMD128-LABEL: abs_v4f32:12043; NO-SIMD128:         .functype abs_v4f32 (i32, f32, f32, f32, f32) -> ()12044; NO-SIMD128-NEXT:  # %bb.0:12045; NO-SIMD128-NEXT:    f32.abs $push0=, $412046; NO-SIMD128-NEXT:    f32.store 12($0), $pop012047; NO-SIMD128-NEXT:    f32.abs $push1=, $312048; NO-SIMD128-NEXT:    f32.store 8($0), $pop112049; NO-SIMD128-NEXT:    f32.abs $push2=, $212050; NO-SIMD128-NEXT:    f32.store 4($0), $pop212051; NO-SIMD128-NEXT:    f32.abs $push3=, $112052; NO-SIMD128-NEXT:    f32.store 0($0), $pop312053; NO-SIMD128-NEXT:    return12054;12055; NO-SIMD128-FAST-LABEL: abs_v4f32:12056; NO-SIMD128-FAST:         .functype abs_v4f32 (i32, f32, f32, f32, f32) -> ()12057; NO-SIMD128-FAST-NEXT:  # %bb.0:12058; NO-SIMD128-FAST-NEXT:    f32.abs $push0=, $112059; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012060; NO-SIMD128-FAST-NEXT:    f32.abs $push1=, $212061; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112062; NO-SIMD128-FAST-NEXT:    f32.abs $push2=, $312063; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212064; NO-SIMD128-FAST-NEXT:    f32.abs $push3=, $412065; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312066; NO-SIMD128-FAST-NEXT:    return12067  %a = call <4 x float> @llvm.fabs.v4f32(<4 x float> %x)12068  ret <4 x float> %a12069}12070 12071define <4 x float> @min_unordered_v4f32(<4 x float> %x) {12072; SIMD128-LABEL: min_unordered_v4f32:12073; SIMD128:         .functype min_unordered_v4f32 (v128) -> (v128)12074; SIMD128-NEXT:  # %bb.0:12075; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212076; SIMD128-NEXT:    f32x4.pmin $push1=, $0, $pop012077; SIMD128-NEXT:    return $pop112078;12079; SIMD128-FAST-LABEL: min_unordered_v4f32:12080; SIMD128-FAST:         .functype min_unordered_v4f32 (v128) -> (v128)12081; SIMD128-FAST-NEXT:  # %bb.0:12082; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212083; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $pop112084; SIMD128-FAST-NEXT:    return $pop012085;12086; NO-SIMD128-LABEL: min_unordered_v4f32:12087; NO-SIMD128:         .functype min_unordered_v4f32 (i32, f32, f32, f32, f32) -> ()12088; NO-SIMD128-NEXT:  # %bb.0:12089; NO-SIMD128-NEXT:    f32.const $push0=, 0x1.4p212090; NO-SIMD128-NEXT:    f32.const $push15=, 0x1.4p212091; NO-SIMD128-NEXT:    f32.gt $push1=, $4, $pop1512092; NO-SIMD128-NEXT:    f32.select $push2=, $pop0, $4, $pop112093; NO-SIMD128-NEXT:    f32.store 12($0), $pop212094; NO-SIMD128-NEXT:    f32.const $push14=, 0x1.4p212095; NO-SIMD128-NEXT:    f32.const $push13=, 0x1.4p212096; NO-SIMD128-NEXT:    f32.gt $push3=, $3, $pop1312097; NO-SIMD128-NEXT:    f32.select $push4=, $pop14, $3, $pop312098; NO-SIMD128-NEXT:    f32.store 8($0), $pop412099; NO-SIMD128-NEXT:    f32.const $push12=, 0x1.4p212100; NO-SIMD128-NEXT:    f32.const $push11=, 0x1.4p212101; NO-SIMD128-NEXT:    f32.gt $push5=, $2, $pop1112102; NO-SIMD128-NEXT:    f32.select $push6=, $pop12, $2, $pop512103; NO-SIMD128-NEXT:    f32.store 4($0), $pop612104; NO-SIMD128-NEXT:    f32.const $push10=, 0x1.4p212105; NO-SIMD128-NEXT:    f32.const $push9=, 0x1.4p212106; NO-SIMD128-NEXT:    f32.gt $push7=, $1, $pop912107; NO-SIMD128-NEXT:    f32.select $push8=, $pop10, $1, $pop712108; NO-SIMD128-NEXT:    f32.store 0($0), $pop812109; NO-SIMD128-NEXT:    return12110;12111; NO-SIMD128-FAST-LABEL: min_unordered_v4f32:12112; NO-SIMD128-FAST:         .functype min_unordered_v4f32 (i32, f32, f32, f32, f32) -> ()12113; NO-SIMD128-FAST-NEXT:  # %bb.0:12114; NO-SIMD128-FAST-NEXT:    f32.const $push0=, 0x1.4p212115; NO-SIMD128-FAST-NEXT:    f32.const $push15=, 0x1.4p212116; NO-SIMD128-FAST-NEXT:    f32.gt $push1=, $1, $pop1512117; NO-SIMD128-FAST-NEXT:    f32.select $push2=, $pop0, $1, $pop112118; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop212119; NO-SIMD128-FAST-NEXT:    f32.const $push14=, 0x1.4p212120; NO-SIMD128-FAST-NEXT:    f32.const $push13=, 0x1.4p212121; NO-SIMD128-FAST-NEXT:    f32.gt $push3=, $2, $pop1312122; NO-SIMD128-FAST-NEXT:    f32.select $push4=, $pop14, $2, $pop312123; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop412124; NO-SIMD128-FAST-NEXT:    f32.const $push12=, 0x1.4p212125; NO-SIMD128-FAST-NEXT:    f32.const $push11=, 0x1.4p212126; NO-SIMD128-FAST-NEXT:    f32.gt $push5=, $3, $pop1112127; NO-SIMD128-FAST-NEXT:    f32.select $push6=, $pop12, $3, $pop512128; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop612129; NO-SIMD128-FAST-NEXT:    f32.const $push10=, 0x1.4p212130; NO-SIMD128-FAST-NEXT:    f32.const $push9=, 0x1.4p212131; NO-SIMD128-FAST-NEXT:    f32.gt $push7=, $4, $pop912132; NO-SIMD128-FAST-NEXT:    f32.select $push8=, $pop10, $4, $pop712133; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop812134; NO-SIMD128-FAST-NEXT:    return12135  %cmps = fcmp ule <4 x float> %x, <float 5., float 5., float 5., float 5.>12136  %a = select <4 x i1> %cmps, <4 x float> %x,12137    <4 x float> <float 5., float 5., float 5., float 5.>12138  ret <4 x float> %a12139}12140 12141define <4 x float> @max_unordered_v4f32(<4 x float> %x) {12142; SIMD128-LABEL: max_unordered_v4f32:12143; SIMD128:         .functype max_unordered_v4f32 (v128) -> (v128)12144; SIMD128-NEXT:  # %bb.0:12145; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212146; SIMD128-NEXT:    f32x4.pmax $push1=, $0, $pop012147; SIMD128-NEXT:    return $pop112148;12149; SIMD128-FAST-LABEL: max_unordered_v4f32:12150; SIMD128-FAST:         .functype max_unordered_v4f32 (v128) -> (v128)12151; SIMD128-FAST-NEXT:  # %bb.0:12152; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212153; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $pop112154; SIMD128-FAST-NEXT:    return $pop012155;12156; NO-SIMD128-LABEL: max_unordered_v4f32:12157; NO-SIMD128:         .functype max_unordered_v4f32 (i32, f32, f32, f32, f32) -> ()12158; NO-SIMD128-NEXT:  # %bb.0:12159; NO-SIMD128-NEXT:    f32.const $push0=, 0x1.4p212160; NO-SIMD128-NEXT:    f32.const $push15=, 0x1.4p212161; NO-SIMD128-NEXT:    f32.lt $push1=, $4, $pop1512162; NO-SIMD128-NEXT:    f32.select $push2=, $pop0, $4, $pop112163; NO-SIMD128-NEXT:    f32.store 12($0), $pop212164; NO-SIMD128-NEXT:    f32.const $push14=, 0x1.4p212165; NO-SIMD128-NEXT:    f32.const $push13=, 0x1.4p212166; NO-SIMD128-NEXT:    f32.lt $push3=, $3, $pop1312167; NO-SIMD128-NEXT:    f32.select $push4=, $pop14, $3, $pop312168; NO-SIMD128-NEXT:    f32.store 8($0), $pop412169; NO-SIMD128-NEXT:    f32.const $push12=, 0x1.4p212170; NO-SIMD128-NEXT:    f32.const $push11=, 0x1.4p212171; NO-SIMD128-NEXT:    f32.lt $push5=, $2, $pop1112172; NO-SIMD128-NEXT:    f32.select $push6=, $pop12, $2, $pop512173; NO-SIMD128-NEXT:    f32.store 4($0), $pop612174; NO-SIMD128-NEXT:    f32.const $push10=, 0x1.4p212175; NO-SIMD128-NEXT:    f32.const $push9=, 0x1.4p212176; NO-SIMD128-NEXT:    f32.lt $push7=, $1, $pop912177; NO-SIMD128-NEXT:    f32.select $push8=, $pop10, $1, $pop712178; NO-SIMD128-NEXT:    f32.store 0($0), $pop812179; NO-SIMD128-NEXT:    return12180;12181; NO-SIMD128-FAST-LABEL: max_unordered_v4f32:12182; NO-SIMD128-FAST:         .functype max_unordered_v4f32 (i32, f32, f32, f32, f32) -> ()12183; NO-SIMD128-FAST-NEXT:  # %bb.0:12184; NO-SIMD128-FAST-NEXT:    f32.const $push0=, 0x1.4p212185; NO-SIMD128-FAST-NEXT:    f32.const $push15=, 0x1.4p212186; NO-SIMD128-FAST-NEXT:    f32.lt $push1=, $1, $pop1512187; NO-SIMD128-FAST-NEXT:    f32.select $push2=, $pop0, $1, $pop112188; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop212189; NO-SIMD128-FAST-NEXT:    f32.const $push14=, 0x1.4p212190; NO-SIMD128-FAST-NEXT:    f32.const $push13=, 0x1.4p212191; NO-SIMD128-FAST-NEXT:    f32.lt $push3=, $2, $pop1312192; NO-SIMD128-FAST-NEXT:    f32.select $push4=, $pop14, $2, $pop312193; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop412194; NO-SIMD128-FAST-NEXT:    f32.const $push12=, 0x1.4p212195; NO-SIMD128-FAST-NEXT:    f32.const $push11=, 0x1.4p212196; NO-SIMD128-FAST-NEXT:    f32.lt $push5=, $3, $pop1112197; NO-SIMD128-FAST-NEXT:    f32.select $push6=, $pop12, $3, $pop512198; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop612199; NO-SIMD128-FAST-NEXT:    f32.const $push10=, 0x1.4p212200; NO-SIMD128-FAST-NEXT:    f32.const $push9=, 0x1.4p212201; NO-SIMD128-FAST-NEXT:    f32.lt $push7=, $4, $pop912202; NO-SIMD128-FAST-NEXT:    f32.select $push8=, $pop10, $4, $pop712203; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop812204; NO-SIMD128-FAST-NEXT:    return12205  %cmps = fcmp uge <4 x float> %x, <float 5., float 5., float 5., float 5.>12206  %a = select <4 x i1> %cmps, <4 x float> %x,12207    <4 x float> <float 5., float 5., float 5., float 5.>12208  ret <4 x float> %a12209}12210 12211define <4 x float> @min_ordered_v4f32(<4 x float> %x) {12212; SIMD128-LABEL: min_ordered_v4f32:12213; SIMD128:         .functype min_ordered_v4f32 (v128) -> (v128)12214; SIMD128-NEXT:  # %bb.0:12215; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212216; SIMD128-NEXT:    f32x4.pmin $push1=, $0, $pop012217; SIMD128-NEXT:    return $pop112218;12219; SIMD128-FAST-LABEL: min_ordered_v4f32:12220; SIMD128-FAST:         .functype min_ordered_v4f32 (v128) -> (v128)12221; SIMD128-FAST-NEXT:  # %bb.0:12222; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212223; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $pop112224; SIMD128-FAST-NEXT:    return $pop012225;12226; NO-SIMD128-LABEL: min_ordered_v4f32:12227; NO-SIMD128:         .functype min_ordered_v4f32 (i32, f32, f32, f32, f32) -> ()12228; NO-SIMD128-NEXT:  # %bb.0:12229; NO-SIMD128-NEXT:    f32.const $push0=, 0x1.4p212230; NO-SIMD128-NEXT:    f32.const $push15=, 0x1.4p212231; NO-SIMD128-NEXT:    f32.ge $push1=, $4, $pop1512232; NO-SIMD128-NEXT:    f32.select $push2=, $pop0, $4, $pop112233; NO-SIMD128-NEXT:    f32.store 12($0), $pop212234; NO-SIMD128-NEXT:    f32.const $push14=, 0x1.4p212235; NO-SIMD128-NEXT:    f32.const $push13=, 0x1.4p212236; NO-SIMD128-NEXT:    f32.ge $push3=, $3, $pop1312237; NO-SIMD128-NEXT:    f32.select $push4=, $pop14, $3, $pop312238; NO-SIMD128-NEXT:    f32.store 8($0), $pop412239; NO-SIMD128-NEXT:    f32.const $push12=, 0x1.4p212240; NO-SIMD128-NEXT:    f32.const $push11=, 0x1.4p212241; NO-SIMD128-NEXT:    f32.ge $push5=, $2, $pop1112242; NO-SIMD128-NEXT:    f32.select $push6=, $pop12, $2, $pop512243; NO-SIMD128-NEXT:    f32.store 4($0), $pop612244; NO-SIMD128-NEXT:    f32.const $push10=, 0x1.4p212245; NO-SIMD128-NEXT:    f32.const $push9=, 0x1.4p212246; NO-SIMD128-NEXT:    f32.ge $push7=, $1, $pop912247; NO-SIMD128-NEXT:    f32.select $push8=, $pop10, $1, $pop712248; NO-SIMD128-NEXT:    f32.store 0($0), $pop812249; NO-SIMD128-NEXT:    return12250;12251; NO-SIMD128-FAST-LABEL: min_ordered_v4f32:12252; NO-SIMD128-FAST:         .functype min_ordered_v4f32 (i32, f32, f32, f32, f32) -> ()12253; NO-SIMD128-FAST-NEXT:  # %bb.0:12254; NO-SIMD128-FAST-NEXT:    f32.const $push0=, 0x1.4p212255; NO-SIMD128-FAST-NEXT:    f32.const $push15=, 0x1.4p212256; NO-SIMD128-FAST-NEXT:    f32.ge $push1=, $1, $pop1512257; NO-SIMD128-FAST-NEXT:    f32.select $push2=, $pop0, $1, $pop112258; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop212259; NO-SIMD128-FAST-NEXT:    f32.const $push14=, 0x1.4p212260; NO-SIMD128-FAST-NEXT:    f32.const $push13=, 0x1.4p212261; NO-SIMD128-FAST-NEXT:    f32.ge $push3=, $2, $pop1312262; NO-SIMD128-FAST-NEXT:    f32.select $push4=, $pop14, $2, $pop312263; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop412264; NO-SIMD128-FAST-NEXT:    f32.const $push12=, 0x1.4p212265; NO-SIMD128-FAST-NEXT:    f32.const $push11=, 0x1.4p212266; NO-SIMD128-FAST-NEXT:    f32.ge $push5=, $3, $pop1112267; NO-SIMD128-FAST-NEXT:    f32.select $push6=, $pop12, $3, $pop512268; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop612269; NO-SIMD128-FAST-NEXT:    f32.const $push10=, 0x1.4p212270; NO-SIMD128-FAST-NEXT:    f32.const $push9=, 0x1.4p212271; NO-SIMD128-FAST-NEXT:    f32.ge $push7=, $4, $pop912272; NO-SIMD128-FAST-NEXT:    f32.select $push8=, $pop10, $4, $pop712273; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop812274; NO-SIMD128-FAST-NEXT:    return12275  %cmps = fcmp ole <4 x float> <float 5., float 5., float 5., float 5.>, %x12276  %a = select <4 x i1> %cmps,12277    <4 x float> <float 5., float 5., float 5., float 5.>, <4 x float> %x12278  ret <4 x float> %a12279}12280 12281define <4 x float> @max_ordered_v4f32(<4 x float> %x) {12282; SIMD128-LABEL: max_ordered_v4f32:12283; SIMD128:         .functype max_ordered_v4f32 (v128) -> (v128)12284; SIMD128-NEXT:  # %bb.0:12285; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212286; SIMD128-NEXT:    f32x4.pmax $push1=, $0, $pop012287; SIMD128-NEXT:    return $pop112288;12289; SIMD128-FAST-LABEL: max_ordered_v4f32:12290; SIMD128-FAST:         .functype max_ordered_v4f32 (v128) -> (v128)12291; SIMD128-FAST-NEXT:  # %bb.0:12292; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p212293; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $pop112294; SIMD128-FAST-NEXT:    return $pop012295;12296; NO-SIMD128-LABEL: max_ordered_v4f32:12297; NO-SIMD128:         .functype max_ordered_v4f32 (i32, f32, f32, f32, f32) -> ()12298; NO-SIMD128-NEXT:  # %bb.0:12299; NO-SIMD128-NEXT:    f32.const $push0=, 0x1.4p212300; NO-SIMD128-NEXT:    f32.const $push15=, 0x1.4p212301; NO-SIMD128-NEXT:    f32.le $push1=, $4, $pop1512302; NO-SIMD128-NEXT:    f32.select $push2=, $pop0, $4, $pop112303; NO-SIMD128-NEXT:    f32.store 12($0), $pop212304; NO-SIMD128-NEXT:    f32.const $push14=, 0x1.4p212305; NO-SIMD128-NEXT:    f32.const $push13=, 0x1.4p212306; NO-SIMD128-NEXT:    f32.le $push3=, $3, $pop1312307; NO-SIMD128-NEXT:    f32.select $push4=, $pop14, $3, $pop312308; NO-SIMD128-NEXT:    f32.store 8($0), $pop412309; NO-SIMD128-NEXT:    f32.const $push12=, 0x1.4p212310; NO-SIMD128-NEXT:    f32.const $push11=, 0x1.4p212311; NO-SIMD128-NEXT:    f32.le $push5=, $2, $pop1112312; NO-SIMD128-NEXT:    f32.select $push6=, $pop12, $2, $pop512313; NO-SIMD128-NEXT:    f32.store 4($0), $pop612314; NO-SIMD128-NEXT:    f32.const $push10=, 0x1.4p212315; NO-SIMD128-NEXT:    f32.const $push9=, 0x1.4p212316; NO-SIMD128-NEXT:    f32.le $push7=, $1, $pop912317; NO-SIMD128-NEXT:    f32.select $push8=, $pop10, $1, $pop712318; NO-SIMD128-NEXT:    f32.store 0($0), $pop812319; NO-SIMD128-NEXT:    return12320;12321; NO-SIMD128-FAST-LABEL: max_ordered_v4f32:12322; NO-SIMD128-FAST:         .functype max_ordered_v4f32 (i32, f32, f32, f32, f32) -> ()12323; NO-SIMD128-FAST-NEXT:  # %bb.0:12324; NO-SIMD128-FAST-NEXT:    f32.const $push0=, 0x1.4p212325; NO-SIMD128-FAST-NEXT:    f32.const $push15=, 0x1.4p212326; NO-SIMD128-FAST-NEXT:    f32.le $push1=, $1, $pop1512327; NO-SIMD128-FAST-NEXT:    f32.select $push2=, $pop0, $1, $pop112328; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop212329; NO-SIMD128-FAST-NEXT:    f32.const $push14=, 0x1.4p212330; NO-SIMD128-FAST-NEXT:    f32.const $push13=, 0x1.4p212331; NO-SIMD128-FAST-NEXT:    f32.le $push3=, $2, $pop1312332; NO-SIMD128-FAST-NEXT:    f32.select $push4=, $pop14, $2, $pop312333; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop412334; NO-SIMD128-FAST-NEXT:    f32.const $push12=, 0x1.4p212335; NO-SIMD128-FAST-NEXT:    f32.const $push11=, 0x1.4p212336; NO-SIMD128-FAST-NEXT:    f32.le $push5=, $3, $pop1112337; NO-SIMD128-FAST-NEXT:    f32.select $push6=, $pop12, $3, $pop512338; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop612339; NO-SIMD128-FAST-NEXT:    f32.const $push10=, 0x1.4p212340; NO-SIMD128-FAST-NEXT:    f32.const $push9=, 0x1.4p212341; NO-SIMD128-FAST-NEXT:    f32.le $push7=, $4, $pop912342; NO-SIMD128-FAST-NEXT:    f32.select $push8=, $pop10, $4, $pop712343; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop812344; NO-SIMD128-FAST-NEXT:    return12345  %cmps = fcmp oge <4 x float> <float 5., float 5., float 5., float 5.>, %x12346  %a = select <4 x i1> %cmps,12347    <4 x float> <float 5., float 5., float 5., float 5.>, <4 x float> %x12348  ret <4 x float> %a12349}12350 12351declare <4 x float> @llvm.minimum.v4f32(<4 x float>, <4 x float>)12352define <4 x float> @min_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12353; SIMD128-LABEL: min_intrinsic_v4f32:12354; SIMD128:         .functype min_intrinsic_v4f32 (v128, v128) -> (v128)12355; SIMD128-NEXT:  # %bb.0:12356; SIMD128-NEXT:    f32x4.min $push0=, $0, $112357; SIMD128-NEXT:    return $pop012358;12359; SIMD128-FAST-LABEL: min_intrinsic_v4f32:12360; SIMD128-FAST:         .functype min_intrinsic_v4f32 (v128, v128) -> (v128)12361; SIMD128-FAST-NEXT:  # %bb.0:12362; SIMD128-FAST-NEXT:    f32x4.min $push0=, $0, $112363; SIMD128-FAST-NEXT:    return $pop012364;12365; NO-SIMD128-LABEL: min_intrinsic_v4f32:12366; NO-SIMD128:         .functype min_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12367; NO-SIMD128-NEXT:  # %bb.0:12368; NO-SIMD128-NEXT:    f32.min $push0=, $4, $812369; NO-SIMD128-NEXT:    f32.store 12($0), $pop012370; NO-SIMD128-NEXT:    f32.min $push1=, $3, $712371; NO-SIMD128-NEXT:    f32.store 8($0), $pop112372; NO-SIMD128-NEXT:    f32.min $push2=, $2, $612373; NO-SIMD128-NEXT:    f32.store 4($0), $pop212374; NO-SIMD128-NEXT:    f32.min $push3=, $1, $512375; NO-SIMD128-NEXT:    f32.store 0($0), $pop312376; NO-SIMD128-NEXT:    return12377;12378; NO-SIMD128-FAST-LABEL: min_intrinsic_v4f32:12379; NO-SIMD128-FAST:         .functype min_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12380; NO-SIMD128-FAST-NEXT:  # %bb.0:12381; NO-SIMD128-FAST-NEXT:    f32.min $push0=, $1, $512382; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012383; NO-SIMD128-FAST-NEXT:    f32.min $push1=, $2, $612384; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112385; NO-SIMD128-FAST-NEXT:    f32.min $push2=, $3, $712386; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212387; NO-SIMD128-FAST-NEXT:    f32.min $push3=, $4, $812388; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312389; NO-SIMD128-FAST-NEXT:    return12390  %a = call <4 x float> @llvm.minimum.v4f32(<4 x float> %x, <4 x float> %y)12391  ret <4 x float> %a12392}12393 12394declare <4 x float> @llvm.minnum.v4f32(<4 x float>, <4 x float>)12395define <4 x float> @minnum_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12396; SIMD128-LABEL: minnum_intrinsic_v4f32:12397; SIMD128:         .functype minnum_intrinsic_v4f32 (v128, v128) -> (v128)12398; SIMD128-NEXT:  # %bb.0:12399; SIMD128-NEXT:    f32x4.extract_lane $push27=, $0, 012400; SIMD128-NEXT:    local.tee $push26=, $3=, $pop2712401; SIMD128-NEXT:    f32x4.extract_lane $push25=, $1, 012402; SIMD128-NEXT:    local.tee $push24=, $2=, $pop2512403; SIMD128-NEXT:    f32.lt $push2=, $3, $212404; SIMD128-NEXT:    f32.select $push3=, $pop26, $pop24, $pop212405; SIMD128-NEXT:    f32x4.splat $push4=, $pop312406; SIMD128-NEXT:    f32x4.extract_lane $push23=, $0, 112407; SIMD128-NEXT:    local.tee $push22=, $3=, $pop2312408; SIMD128-NEXT:    f32x4.extract_lane $push21=, $1, 112409; SIMD128-NEXT:    local.tee $push20=, $2=, $pop2112410; SIMD128-NEXT:    f32.lt $push0=, $3, $212411; SIMD128-NEXT:    f32.select $push1=, $pop22, $pop20, $pop012412; SIMD128-NEXT:    f32x4.replace_lane $push5=, $pop4, 1, $pop112413; SIMD128-NEXT:    f32x4.extract_lane $push19=, $0, 212414; SIMD128-NEXT:    local.tee $push18=, $3=, $pop1912415; SIMD128-NEXT:    f32x4.extract_lane $push17=, $1, 212416; SIMD128-NEXT:    local.tee $push16=, $2=, $pop1712417; SIMD128-NEXT:    f32.lt $push6=, $3, $212418; SIMD128-NEXT:    f32.select $push7=, $pop18, $pop16, $pop612419; SIMD128-NEXT:    f32x4.replace_lane $push8=, $pop5, 2, $pop712420; SIMD128-NEXT:    f32x4.extract_lane $push15=, $0, 312421; SIMD128-NEXT:    local.tee $push14=, $3=, $pop1512422; SIMD128-NEXT:    f32x4.extract_lane $push13=, $1, 312423; SIMD128-NEXT:    local.tee $push12=, $2=, $pop1312424; SIMD128-NEXT:    f32.lt $push9=, $3, $212425; SIMD128-NEXT:    f32.select $push10=, $pop14, $pop12, $pop912426; SIMD128-NEXT:    f32x4.replace_lane $push11=, $pop8, 3, $pop1012427; SIMD128-NEXT:    return $pop1112428;12429; SIMD128-FAST-LABEL: minnum_intrinsic_v4f32:12430; SIMD128-FAST:         .functype minnum_intrinsic_v4f32 (v128, v128) -> (v128)12431; SIMD128-FAST-NEXT:  # %bb.0:12432; SIMD128-FAST-NEXT:    f32x4.extract_lane $push27=, $0, 012433; SIMD128-FAST-NEXT:    local.tee $push26=, $3=, $pop2712434; SIMD128-FAST-NEXT:    f32x4.extract_lane $push25=, $1, 012435; SIMD128-FAST-NEXT:    local.tee $push24=, $2=, $pop2512436; SIMD128-FAST-NEXT:    f32.lt $push3=, $3, $212437; SIMD128-FAST-NEXT:    f32.select $push4=, $pop26, $pop24, $pop312438; SIMD128-FAST-NEXT:    f32x4.splat $push5=, $pop412439; SIMD128-FAST-NEXT:    f32x4.extract_lane $push23=, $0, 112440; SIMD128-FAST-NEXT:    local.tee $push22=, $3=, $pop2312441; SIMD128-FAST-NEXT:    f32x4.extract_lane $push21=, $1, 112442; SIMD128-FAST-NEXT:    local.tee $push20=, $2=, $pop2112443; SIMD128-FAST-NEXT:    f32.lt $push1=, $3, $212444; SIMD128-FAST-NEXT:    f32.select $push2=, $pop22, $pop20, $pop112445; SIMD128-FAST-NEXT:    f32x4.replace_lane $push6=, $pop5, 1, $pop212446; SIMD128-FAST-NEXT:    f32x4.extract_lane $push19=, $0, 212447; SIMD128-FAST-NEXT:    local.tee $push18=, $3=, $pop1912448; SIMD128-FAST-NEXT:    f32x4.extract_lane $push17=, $1, 212449; SIMD128-FAST-NEXT:    local.tee $push16=, $2=, $pop1712450; SIMD128-FAST-NEXT:    f32.lt $push7=, $3, $212451; SIMD128-FAST-NEXT:    f32.select $push8=, $pop18, $pop16, $pop712452; SIMD128-FAST-NEXT:    f32x4.replace_lane $push9=, $pop6, 2, $pop812453; SIMD128-FAST-NEXT:    f32x4.extract_lane $push15=, $0, 312454; SIMD128-FAST-NEXT:    local.tee $push14=, $3=, $pop1512455; SIMD128-FAST-NEXT:    f32x4.extract_lane $push13=, $1, 312456; SIMD128-FAST-NEXT:    local.tee $push12=, $2=, $pop1312457; SIMD128-FAST-NEXT:    f32.lt $push10=, $3, $212458; SIMD128-FAST-NEXT:    f32.select $push11=, $pop14, $pop12, $pop1012459; SIMD128-FAST-NEXT:    f32x4.replace_lane $push0=, $pop9, 3, $pop1112460; SIMD128-FAST-NEXT:    return $pop012461;12462; NO-SIMD128-LABEL: minnum_intrinsic_v4f32:12463; NO-SIMD128:         .functype minnum_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12464; NO-SIMD128-NEXT:  # %bb.0:12465; NO-SIMD128-NEXT:    f32.lt $push0=, $4, $812466; NO-SIMD128-NEXT:    f32.select $push1=, $4, $8, $pop012467; NO-SIMD128-NEXT:    f32.store 12($0), $pop112468; NO-SIMD128-NEXT:    f32.lt $push2=, $3, $712469; NO-SIMD128-NEXT:    f32.select $push3=, $3, $7, $pop212470; NO-SIMD128-NEXT:    f32.store 8($0), $pop312471; NO-SIMD128-NEXT:    f32.lt $push4=, $2, $612472; NO-SIMD128-NEXT:    f32.select $push5=, $2, $6, $pop412473; NO-SIMD128-NEXT:    f32.store 4($0), $pop512474; NO-SIMD128-NEXT:    f32.lt $push6=, $1, $512475; NO-SIMD128-NEXT:    f32.select $push7=, $1, $5, $pop612476; NO-SIMD128-NEXT:    f32.store 0($0), $pop712477; NO-SIMD128-NEXT:    return12478;12479; NO-SIMD128-FAST-LABEL: minnum_intrinsic_v4f32:12480; NO-SIMD128-FAST:         .functype minnum_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12481; NO-SIMD128-FAST-NEXT:  # %bb.0:12482; NO-SIMD128-FAST-NEXT:    f32.lt $push0=, $1, $512483; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $1, $5, $pop012484; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop112485; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $2, $612486; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $2, $6, $pop212487; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop312488; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $3, $712489; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $3, $7, $pop412490; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop512491; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $4, $812492; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $4, $8, $pop612493; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop712494; NO-SIMD128-FAST-NEXT:    return12495  %a = call nnan <4 x float> @llvm.minnum.v4f32(<4 x float> %x, <4 x float> %y)12496  ret <4 x float> %a12497}12498 12499define <4 x float> @minnum_nsz_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12500; SIMD128-LABEL: minnum_nsz_intrinsic_v4f32:12501; SIMD128:         .functype minnum_nsz_intrinsic_v4f32 (v128, v128) -> (v128)12502; SIMD128-NEXT:  # %bb.0:12503; SIMD128-NEXT:    f32x4.min $push0=, $0, $112504; SIMD128-NEXT:    return $pop012505;12506; SIMD128-FAST-LABEL: minnum_nsz_intrinsic_v4f32:12507; SIMD128-FAST:         .functype minnum_nsz_intrinsic_v4f32 (v128, v128) -> (v128)12508; SIMD128-FAST-NEXT:  # %bb.0:12509; SIMD128-FAST-NEXT:    f32x4.min $push0=, $0, $112510; SIMD128-FAST-NEXT:    return $pop012511;12512; NO-SIMD128-LABEL: minnum_nsz_intrinsic_v4f32:12513; NO-SIMD128:         .functype minnum_nsz_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12514; NO-SIMD128-NEXT:  # %bb.0:12515; NO-SIMD128-NEXT:    f32.min $push0=, $4, $812516; NO-SIMD128-NEXT:    f32.store 12($0), $pop012517; NO-SIMD128-NEXT:    f32.min $push1=, $3, $712518; NO-SIMD128-NEXT:    f32.store 8($0), $pop112519; NO-SIMD128-NEXT:    f32.min $push2=, $2, $612520; NO-SIMD128-NEXT:    f32.store 4($0), $pop212521; NO-SIMD128-NEXT:    f32.min $push3=, $1, $512522; NO-SIMD128-NEXT:    f32.store 0($0), $pop312523; NO-SIMD128-NEXT:    return12524;12525; NO-SIMD128-FAST-LABEL: minnum_nsz_intrinsic_v4f32:12526; NO-SIMD128-FAST:         .functype minnum_nsz_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12527; NO-SIMD128-FAST-NEXT:  # %bb.0:12528; NO-SIMD128-FAST-NEXT:    f32.min $push0=, $1, $512529; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012530; NO-SIMD128-FAST-NEXT:    f32.min $push1=, $2, $612531; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112532; NO-SIMD128-FAST-NEXT:    f32.min $push2=, $3, $712533; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212534; NO-SIMD128-FAST-NEXT:    f32.min $push3=, $4, $812535; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312536; NO-SIMD128-FAST-NEXT:    return12537  %a = call nnan nsz <4 x float> @llvm.minnum.v4f32(<4 x float> %x, <4 x float> %y)12538  ret <4 x float> %a12539}12540 12541define <4 x float> @fminnumv432_non_zero_intrinsic(<4 x float> %x) {12542; SIMD128-LABEL: fminnumv432_non_zero_intrinsic:12543; SIMD128:         .functype fminnumv432_non_zero_intrinsic (v128) -> (v128)12544; SIMD128-NEXT:  # %bb.0:12545; SIMD128-NEXT:    v128.const $push0=, -0x1p0, -0x1p0, -0x1p0, -0x1p012546; SIMD128-NEXT:    f32x4.min $push1=, $0, $pop012547; SIMD128-NEXT:    return $pop112548;12549; SIMD128-FAST-LABEL: fminnumv432_non_zero_intrinsic:12550; SIMD128-FAST:         .functype fminnumv432_non_zero_intrinsic (v128) -> (v128)12551; SIMD128-FAST-NEXT:  # %bb.0:12552; SIMD128-FAST-NEXT:    v128.const $push1=, -0x1p0, -0x1p0, -0x1p0, -0x1p012553; SIMD128-FAST-NEXT:    f32x4.min $push0=, $0, $pop112554; SIMD128-FAST-NEXT:    return $pop012555;12556; NO-SIMD128-LABEL: fminnumv432_non_zero_intrinsic:12557; NO-SIMD128:         .functype fminnumv432_non_zero_intrinsic (i32, f32, f32, f32, f32) -> ()12558; NO-SIMD128-NEXT:  # %bb.0:12559; NO-SIMD128-NEXT:    f32.const $push0=, -0x1p012560; NO-SIMD128-NEXT:    f32.min $push1=, $4, $pop012561; NO-SIMD128-NEXT:    f32.store 12($0), $pop112562; NO-SIMD128-NEXT:    f32.const $push7=, -0x1p012563; NO-SIMD128-NEXT:    f32.min $push2=, $3, $pop712564; NO-SIMD128-NEXT:    f32.store 8($0), $pop212565; NO-SIMD128-NEXT:    f32.const $push6=, -0x1p012566; NO-SIMD128-NEXT:    f32.min $push3=, $2, $pop612567; NO-SIMD128-NEXT:    f32.store 4($0), $pop312568; NO-SIMD128-NEXT:    f32.const $push5=, -0x1p012569; NO-SIMD128-NEXT:    f32.min $push4=, $1, $pop512570; NO-SIMD128-NEXT:    f32.store 0($0), $pop412571; NO-SIMD128-NEXT:    return12572;12573; NO-SIMD128-FAST-LABEL: fminnumv432_non_zero_intrinsic:12574; NO-SIMD128-FAST:         .functype fminnumv432_non_zero_intrinsic (i32, f32, f32, f32, f32) -> ()12575; NO-SIMD128-FAST-NEXT:  # %bb.0:12576; NO-SIMD128-FAST-NEXT:    f32.const $push0=, -0x1p012577; NO-SIMD128-FAST-NEXT:    f32.min $push1=, $1, $pop012578; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop112579; NO-SIMD128-FAST-NEXT:    f32.const $push7=, -0x1p012580; NO-SIMD128-FAST-NEXT:    f32.min $push2=, $2, $pop712581; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop212582; NO-SIMD128-FAST-NEXT:    f32.const $push6=, -0x1p012583; NO-SIMD128-FAST-NEXT:    f32.min $push3=, $3, $pop612584; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop312585; NO-SIMD128-FAST-NEXT:    f32.const $push5=, -0x1p012586; NO-SIMD128-FAST-NEXT:    f32.min $push4=, $4, $pop512587; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop412588; NO-SIMD128-FAST-NEXT:    return12589  %a = call nnan <4 x float> @llvm.minnum.v4f32(<4 x float> %x, <4 x float><float -1.0, float -1.0, float -1.0, float -1.0>)12590  ret <4 x float> %a12591}12592 12593define <4 x float> @fminnumv432_one_zero_intrinsic(<4 x float> %x) {12594; SIMD128-LABEL: fminnumv432_one_zero_intrinsic:12595; SIMD128:         .functype fminnumv432_one_zero_intrinsic (v128) -> (v128)12596; SIMD128-NEXT:  # %bb.0:12597; SIMD128-NEXT:    f32x4.extract_lane $push27=, $0, 012598; SIMD128-NEXT:    local.tee $push26=, $1=, $pop2712599; SIMD128-NEXT:    f32.const $push3=, -0x1p012600; SIMD128-NEXT:    f32.const $push25=, -0x1p012601; SIMD128-NEXT:    f32.lt $push4=, $1, $pop2512602; SIMD128-NEXT:    f32.select $push5=, $pop26, $pop3, $pop412603; SIMD128-NEXT:    f32x4.splat $push6=, $pop512604; SIMD128-NEXT:    f32x4.extract_lane $push24=, $0, 112605; SIMD128-NEXT:    local.tee $push23=, $1=, $pop2412606; SIMD128-NEXT:    f32.const $push0=, 0x0p012607; SIMD128-NEXT:    f32.const $push22=, 0x0p012608; SIMD128-NEXT:    f32.lt $push1=, $1, $pop2212609; SIMD128-NEXT:    f32.select $push2=, $pop23, $pop0, $pop112610; SIMD128-NEXT:    f32x4.replace_lane $push7=, $pop6, 1, $pop212611; SIMD128-NEXT:    f32x4.extract_lane $push21=, $0, 212612; SIMD128-NEXT:    local.tee $push20=, $1=, $pop2112613; SIMD128-NEXT:    f32.const $push19=, -0x1p012614; SIMD128-NEXT:    f32.const $push18=, -0x1p012615; SIMD128-NEXT:    f32.lt $push8=, $1, $pop1812616; SIMD128-NEXT:    f32.select $push9=, $pop20, $pop19, $pop812617; SIMD128-NEXT:    f32x4.replace_lane $push10=, $pop7, 2, $pop912618; SIMD128-NEXT:    f32x4.extract_lane $push17=, $0, 312619; SIMD128-NEXT:    local.tee $push16=, $1=, $pop1712620; SIMD128-NEXT:    f32.const $push15=, -0x1p012621; SIMD128-NEXT:    f32.const $push14=, -0x1p012622; SIMD128-NEXT:    f32.lt $push11=, $1, $pop1412623; SIMD128-NEXT:    f32.select $push12=, $pop16, $pop15, $pop1112624; SIMD128-NEXT:    f32x4.replace_lane $push13=, $pop10, 3, $pop1212625; SIMD128-NEXT:    return $pop1312626;12627; SIMD128-FAST-LABEL: fminnumv432_one_zero_intrinsic:12628; SIMD128-FAST:         .functype fminnumv432_one_zero_intrinsic (v128) -> (v128)12629; SIMD128-FAST-NEXT:  # %bb.0:12630; SIMD128-FAST-NEXT:    f32x4.extract_lane $push27=, $0, 012631; SIMD128-FAST-NEXT:    local.tee $push26=, $1=, $pop2712632; SIMD128-FAST-NEXT:    f32.const $push4=, -0x1p012633; SIMD128-FAST-NEXT:    f32.const $push25=, -0x1p012634; SIMD128-FAST-NEXT:    f32.lt $push5=, $1, $pop2512635; SIMD128-FAST-NEXT:    f32.select $push6=, $pop26, $pop4, $pop512636; SIMD128-FAST-NEXT:    f32x4.splat $push7=, $pop612637; SIMD128-FAST-NEXT:    f32x4.extract_lane $push24=, $0, 112638; SIMD128-FAST-NEXT:    local.tee $push23=, $1=, $pop2412639; SIMD128-FAST-NEXT:    f32.const $push1=, 0x0p012640; SIMD128-FAST-NEXT:    f32.const $push22=, 0x0p012641; SIMD128-FAST-NEXT:    f32.lt $push2=, $1, $pop2212642; SIMD128-FAST-NEXT:    f32.select $push3=, $pop23, $pop1, $pop212643; SIMD128-FAST-NEXT:    f32x4.replace_lane $push8=, $pop7, 1, $pop312644; SIMD128-FAST-NEXT:    f32x4.extract_lane $push21=, $0, 212645; SIMD128-FAST-NEXT:    local.tee $push20=, $1=, $pop2112646; SIMD128-FAST-NEXT:    f32.const $push19=, -0x1p012647; SIMD128-FAST-NEXT:    f32.const $push18=, -0x1p012648; SIMD128-FAST-NEXT:    f32.lt $push9=, $1, $pop1812649; SIMD128-FAST-NEXT:    f32.select $push10=, $pop20, $pop19, $pop912650; SIMD128-FAST-NEXT:    f32x4.replace_lane $push11=, $pop8, 2, $pop1012651; SIMD128-FAST-NEXT:    f32x4.extract_lane $push17=, $0, 312652; SIMD128-FAST-NEXT:    local.tee $push16=, $1=, $pop1712653; SIMD128-FAST-NEXT:    f32.const $push15=, -0x1p012654; SIMD128-FAST-NEXT:    f32.const $push14=, -0x1p012655; SIMD128-FAST-NEXT:    f32.lt $push12=, $1, $pop1412656; SIMD128-FAST-NEXT:    f32.select $push13=, $pop16, $pop15, $pop1212657; SIMD128-FAST-NEXT:    f32x4.replace_lane $push0=, $pop11, 3, $pop1312658; SIMD128-FAST-NEXT:    return $pop012659;12660; NO-SIMD128-LABEL: fminnumv432_one_zero_intrinsic:12661; NO-SIMD128:         .functype fminnumv432_one_zero_intrinsic (i32, f32, f32, f32, f32) -> ()12662; NO-SIMD128-NEXT:  # %bb.0:12663; NO-SIMD128-NEXT:    f32.const $push0=, -0x1p012664; NO-SIMD128-NEXT:    f32.min $push1=, $4, $pop012665; NO-SIMD128-NEXT:    f32.store 12($0), $pop112666; NO-SIMD128-NEXT:    f32.const $push9=, -0x1p012667; NO-SIMD128-NEXT:    f32.min $push2=, $3, $pop912668; NO-SIMD128-NEXT:    f32.store 8($0), $pop212669; NO-SIMD128-NEXT:    f32.const $push3=, 0x0p012670; NO-SIMD128-NEXT:    f32.const $push8=, 0x0p012671; NO-SIMD128-NEXT:    f32.lt $push4=, $2, $pop812672; NO-SIMD128-NEXT:    f32.select $push5=, $2, $pop3, $pop412673; NO-SIMD128-NEXT:    f32.store 4($0), $pop512674; NO-SIMD128-NEXT:    f32.const $push7=, -0x1p012675; NO-SIMD128-NEXT:    f32.min $push6=, $1, $pop712676; NO-SIMD128-NEXT:    f32.store 0($0), $pop612677; NO-SIMD128-NEXT:    return12678;12679; NO-SIMD128-FAST-LABEL: fminnumv432_one_zero_intrinsic:12680; NO-SIMD128-FAST:         .functype fminnumv432_one_zero_intrinsic (i32, f32, f32, f32, f32) -> ()12681; NO-SIMD128-FAST-NEXT:  # %bb.0:12682; NO-SIMD128-FAST-NEXT:    f32.const $push0=, -0x1p012683; NO-SIMD128-FAST-NEXT:    f32.min $push1=, $1, $pop012684; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop112685; NO-SIMD128-FAST-NEXT:    f32.const $push9=, -0x1p012686; NO-SIMD128-FAST-NEXT:    f32.min $push2=, $3, $pop912687; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212688; NO-SIMD128-FAST-NEXT:    f32.const $push3=, 0x0p012689; NO-SIMD128-FAST-NEXT:    f32.const $push8=, 0x0p012690; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $2, $pop812691; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $2, $pop3, $pop412692; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop512693; NO-SIMD128-FAST-NEXT:    f32.const $push7=, -0x1p012694; NO-SIMD128-FAST-NEXT:    f32.min $push6=, $4, $pop712695; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop612696; NO-SIMD128-FAST-NEXT:    return12697  %a = call nnan <4 x float> @llvm.minnum.v4f32(<4 x float> %x, <4 x float><float -1.0, float 0.0, float -1.0, float -1.0>)12698  ret <4 x float> %a12699}12700 12701declare <4 x float> @llvm.maximum.v4f32(<4 x float>, <4 x float>)12702define <4 x float> @max_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12703; SIMD128-LABEL: max_intrinsic_v4f32:12704; SIMD128:         .functype max_intrinsic_v4f32 (v128, v128) -> (v128)12705; SIMD128-NEXT:  # %bb.0:12706; SIMD128-NEXT:    f32x4.max $push0=, $0, $112707; SIMD128-NEXT:    return $pop012708;12709; SIMD128-FAST-LABEL: max_intrinsic_v4f32:12710; SIMD128-FAST:         .functype max_intrinsic_v4f32 (v128, v128) -> (v128)12711; SIMD128-FAST-NEXT:  # %bb.0:12712; SIMD128-FAST-NEXT:    f32x4.max $push0=, $0, $112713; SIMD128-FAST-NEXT:    return $pop012714;12715; NO-SIMD128-LABEL: max_intrinsic_v4f32:12716; NO-SIMD128:         .functype max_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12717; NO-SIMD128-NEXT:  # %bb.0:12718; NO-SIMD128-NEXT:    f32.max $push0=, $4, $812719; NO-SIMD128-NEXT:    f32.store 12($0), $pop012720; NO-SIMD128-NEXT:    f32.max $push1=, $3, $712721; NO-SIMD128-NEXT:    f32.store 8($0), $pop112722; NO-SIMD128-NEXT:    f32.max $push2=, $2, $612723; NO-SIMD128-NEXT:    f32.store 4($0), $pop212724; NO-SIMD128-NEXT:    f32.max $push3=, $1, $512725; NO-SIMD128-NEXT:    f32.store 0($0), $pop312726; NO-SIMD128-NEXT:    return12727;12728; NO-SIMD128-FAST-LABEL: max_intrinsic_v4f32:12729; NO-SIMD128-FAST:         .functype max_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12730; NO-SIMD128-FAST-NEXT:  # %bb.0:12731; NO-SIMD128-FAST-NEXT:    f32.max $push0=, $1, $512732; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012733; NO-SIMD128-FAST-NEXT:    f32.max $push1=, $2, $612734; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112735; NO-SIMD128-FAST-NEXT:    f32.max $push2=, $3, $712736; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212737; NO-SIMD128-FAST-NEXT:    f32.max $push3=, $4, $812738; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312739; NO-SIMD128-FAST-NEXT:    return12740  %a = call <4 x float> @llvm.maximum.v4f32(<4 x float> %x, <4 x float> %y)12741  ret <4 x float> %a12742}12743 12744declare <4 x float> @llvm.maxnum.v4f32(<4 x float>, <4 x float>)12745define <4 x float> @maxnum_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12746; SIMD128-LABEL: maxnum_intrinsic_v4f32:12747; SIMD128:         .functype maxnum_intrinsic_v4f32 (v128, v128) -> (v128)12748; SIMD128-NEXT:  # %bb.0:12749; SIMD128-NEXT:    f32x4.extract_lane $push27=, $0, 012750; SIMD128-NEXT:    local.tee $push26=, $3=, $pop2712751; SIMD128-NEXT:    f32x4.extract_lane $push25=, $1, 012752; SIMD128-NEXT:    local.tee $push24=, $2=, $pop2512753; SIMD128-NEXT:    f32.gt $push2=, $3, $212754; SIMD128-NEXT:    f32.select $push3=, $pop26, $pop24, $pop212755; SIMD128-NEXT:    f32x4.splat $push4=, $pop312756; SIMD128-NEXT:    f32x4.extract_lane $push23=, $0, 112757; SIMD128-NEXT:    local.tee $push22=, $3=, $pop2312758; SIMD128-NEXT:    f32x4.extract_lane $push21=, $1, 112759; SIMD128-NEXT:    local.tee $push20=, $2=, $pop2112760; SIMD128-NEXT:    f32.gt $push0=, $3, $212761; SIMD128-NEXT:    f32.select $push1=, $pop22, $pop20, $pop012762; SIMD128-NEXT:    f32x4.replace_lane $push5=, $pop4, 1, $pop112763; SIMD128-NEXT:    f32x4.extract_lane $push19=, $0, 212764; SIMD128-NEXT:    local.tee $push18=, $3=, $pop1912765; SIMD128-NEXT:    f32x4.extract_lane $push17=, $1, 212766; SIMD128-NEXT:    local.tee $push16=, $2=, $pop1712767; SIMD128-NEXT:    f32.gt $push6=, $3, $212768; SIMD128-NEXT:    f32.select $push7=, $pop18, $pop16, $pop612769; SIMD128-NEXT:    f32x4.replace_lane $push8=, $pop5, 2, $pop712770; SIMD128-NEXT:    f32x4.extract_lane $push15=, $0, 312771; SIMD128-NEXT:    local.tee $push14=, $3=, $pop1512772; SIMD128-NEXT:    f32x4.extract_lane $push13=, $1, 312773; SIMD128-NEXT:    local.tee $push12=, $2=, $pop1312774; SIMD128-NEXT:    f32.gt $push9=, $3, $212775; SIMD128-NEXT:    f32.select $push10=, $pop14, $pop12, $pop912776; SIMD128-NEXT:    f32x4.replace_lane $push11=, $pop8, 3, $pop1012777; SIMD128-NEXT:    return $pop1112778;12779; SIMD128-FAST-LABEL: maxnum_intrinsic_v4f32:12780; SIMD128-FAST:         .functype maxnum_intrinsic_v4f32 (v128, v128) -> (v128)12781; SIMD128-FAST-NEXT:  # %bb.0:12782; SIMD128-FAST-NEXT:    f32x4.extract_lane $push27=, $0, 012783; SIMD128-FAST-NEXT:    local.tee $push26=, $3=, $pop2712784; SIMD128-FAST-NEXT:    f32x4.extract_lane $push25=, $1, 012785; SIMD128-FAST-NEXT:    local.tee $push24=, $2=, $pop2512786; SIMD128-FAST-NEXT:    f32.gt $push3=, $3, $212787; SIMD128-FAST-NEXT:    f32.select $push4=, $pop26, $pop24, $pop312788; SIMD128-FAST-NEXT:    f32x4.splat $push5=, $pop412789; SIMD128-FAST-NEXT:    f32x4.extract_lane $push23=, $0, 112790; SIMD128-FAST-NEXT:    local.tee $push22=, $3=, $pop2312791; SIMD128-FAST-NEXT:    f32x4.extract_lane $push21=, $1, 112792; SIMD128-FAST-NEXT:    local.tee $push20=, $2=, $pop2112793; SIMD128-FAST-NEXT:    f32.gt $push1=, $3, $212794; SIMD128-FAST-NEXT:    f32.select $push2=, $pop22, $pop20, $pop112795; SIMD128-FAST-NEXT:    f32x4.replace_lane $push6=, $pop5, 1, $pop212796; SIMD128-FAST-NEXT:    f32x4.extract_lane $push19=, $0, 212797; SIMD128-FAST-NEXT:    local.tee $push18=, $3=, $pop1912798; SIMD128-FAST-NEXT:    f32x4.extract_lane $push17=, $1, 212799; SIMD128-FAST-NEXT:    local.tee $push16=, $2=, $pop1712800; SIMD128-FAST-NEXT:    f32.gt $push7=, $3, $212801; SIMD128-FAST-NEXT:    f32.select $push8=, $pop18, $pop16, $pop712802; SIMD128-FAST-NEXT:    f32x4.replace_lane $push9=, $pop6, 2, $pop812803; SIMD128-FAST-NEXT:    f32x4.extract_lane $push15=, $0, 312804; SIMD128-FAST-NEXT:    local.tee $push14=, $3=, $pop1512805; SIMD128-FAST-NEXT:    f32x4.extract_lane $push13=, $1, 312806; SIMD128-FAST-NEXT:    local.tee $push12=, $2=, $pop1312807; SIMD128-FAST-NEXT:    f32.gt $push10=, $3, $212808; SIMD128-FAST-NEXT:    f32.select $push11=, $pop14, $pop12, $pop1012809; SIMD128-FAST-NEXT:    f32x4.replace_lane $push0=, $pop9, 3, $pop1112810; SIMD128-FAST-NEXT:    return $pop012811;12812; NO-SIMD128-LABEL: maxnum_intrinsic_v4f32:12813; NO-SIMD128:         .functype maxnum_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12814; NO-SIMD128-NEXT:  # %bb.0:12815; NO-SIMD128-NEXT:    f32.gt $push0=, $4, $812816; NO-SIMD128-NEXT:    f32.select $push1=, $4, $8, $pop012817; NO-SIMD128-NEXT:    f32.store 12($0), $pop112818; NO-SIMD128-NEXT:    f32.gt $push2=, $3, $712819; NO-SIMD128-NEXT:    f32.select $push3=, $3, $7, $pop212820; NO-SIMD128-NEXT:    f32.store 8($0), $pop312821; NO-SIMD128-NEXT:    f32.gt $push4=, $2, $612822; NO-SIMD128-NEXT:    f32.select $push5=, $2, $6, $pop412823; NO-SIMD128-NEXT:    f32.store 4($0), $pop512824; NO-SIMD128-NEXT:    f32.gt $push6=, $1, $512825; NO-SIMD128-NEXT:    f32.select $push7=, $1, $5, $pop612826; NO-SIMD128-NEXT:    f32.store 0($0), $pop712827; NO-SIMD128-NEXT:    return12828;12829; NO-SIMD128-FAST-LABEL: maxnum_intrinsic_v4f32:12830; NO-SIMD128-FAST:         .functype maxnum_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12831; NO-SIMD128-FAST-NEXT:  # %bb.0:12832; NO-SIMD128-FAST-NEXT:    f32.gt $push0=, $1, $512833; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $1, $5, $pop012834; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop112835; NO-SIMD128-FAST-NEXT:    f32.gt $push2=, $2, $612836; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $2, $6, $pop212837; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop312838; NO-SIMD128-FAST-NEXT:    f32.gt $push4=, $3, $712839; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $3, $7, $pop412840; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop512841; NO-SIMD128-FAST-NEXT:    f32.gt $push6=, $4, $812842; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $4, $8, $pop612843; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop712844; NO-SIMD128-FAST-NEXT:    return12845  %a = call nnan <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float> %y)12846  ret <4 x float> %a12847}12848 12849define <4 x float> @maxnum_nsz_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12850; SIMD128-LABEL: maxnum_nsz_intrinsic_v4f32:12851; SIMD128:         .functype maxnum_nsz_intrinsic_v4f32 (v128, v128) -> (v128)12852; SIMD128-NEXT:  # %bb.0:12853; SIMD128-NEXT:    f32x4.max $push0=, $0, $112854; SIMD128-NEXT:    return $pop012855;12856; SIMD128-FAST-LABEL: maxnum_nsz_intrinsic_v4f32:12857; SIMD128-FAST:         .functype maxnum_nsz_intrinsic_v4f32 (v128, v128) -> (v128)12858; SIMD128-FAST-NEXT:  # %bb.0:12859; SIMD128-FAST-NEXT:    f32x4.max $push0=, $0, $112860; SIMD128-FAST-NEXT:    return $pop012861;12862; NO-SIMD128-LABEL: maxnum_nsz_intrinsic_v4f32:12863; NO-SIMD128:         .functype maxnum_nsz_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12864; NO-SIMD128-NEXT:  # %bb.0:12865; NO-SIMD128-NEXT:    f32.max $push0=, $4, $812866; NO-SIMD128-NEXT:    f32.store 12($0), $pop012867; NO-SIMD128-NEXT:    f32.max $push1=, $3, $712868; NO-SIMD128-NEXT:    f32.store 8($0), $pop112869; NO-SIMD128-NEXT:    f32.max $push2=, $2, $612870; NO-SIMD128-NEXT:    f32.store 4($0), $pop212871; NO-SIMD128-NEXT:    f32.max $push3=, $1, $512872; NO-SIMD128-NEXT:    f32.store 0($0), $pop312873; NO-SIMD128-NEXT:    return12874;12875; NO-SIMD128-FAST-LABEL: maxnum_nsz_intrinsic_v4f32:12876; NO-SIMD128-FAST:         .functype maxnum_nsz_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12877; NO-SIMD128-FAST-NEXT:  # %bb.0:12878; NO-SIMD128-FAST-NEXT:    f32.max $push0=, $1, $512879; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop012880; NO-SIMD128-FAST-NEXT:    f32.max $push1=, $2, $612881; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop112882; NO-SIMD128-FAST-NEXT:    f32.max $push2=, $3, $712883; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212884; NO-SIMD128-FAST-NEXT:    f32.max $push3=, $4, $812885; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop312886; NO-SIMD128-FAST-NEXT:    return12887  %a = call nnan nsz <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float> %y)12888  ret <4 x float> %a12889}12890 12891define <4 x float> @maxnum_one_zero_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {12892; SIMD128-LABEL: maxnum_one_zero_intrinsic_v4f32:12893; SIMD128:         .functype maxnum_one_zero_intrinsic_v4f32 (v128, v128) -> (v128)12894; SIMD128-NEXT:  # %bb.0:12895; SIMD128-NEXT:    f32x4.extract_lane $push27=, $0, 012896; SIMD128-NEXT:    local.tee $push26=, $2=, $pop2712897; SIMD128-NEXT:    f32.const $push3=, -0x1p012898; SIMD128-NEXT:    f32.const $push25=, -0x1p012899; SIMD128-NEXT:    f32.gt $push4=, $2, $pop2512900; SIMD128-NEXT:    f32.select $push5=, $pop26, $pop3, $pop412901; SIMD128-NEXT:    f32x4.splat $push6=, $pop512902; SIMD128-NEXT:    f32x4.extract_lane $push24=, $0, 112903; SIMD128-NEXT:    local.tee $push23=, $2=, $pop2412904; SIMD128-NEXT:    f32.const $push0=, 0x0p012905; SIMD128-NEXT:    f32.const $push22=, 0x0p012906; SIMD128-NEXT:    f32.gt $push1=, $2, $pop2212907; SIMD128-NEXT:    f32.select $push2=, $pop23, $pop0, $pop112908; SIMD128-NEXT:    f32x4.replace_lane $push7=, $pop6, 1, $pop212909; SIMD128-NEXT:    f32x4.extract_lane $push21=, $0, 212910; SIMD128-NEXT:    local.tee $push20=, $2=, $pop2112911; SIMD128-NEXT:    f32.const $push19=, -0x1p012912; SIMD128-NEXT:    f32.const $push18=, -0x1p012913; SIMD128-NEXT:    f32.gt $push8=, $2, $pop1812914; SIMD128-NEXT:    f32.select $push9=, $pop20, $pop19, $pop812915; SIMD128-NEXT:    f32x4.replace_lane $push10=, $pop7, 2, $pop912916; SIMD128-NEXT:    f32x4.extract_lane $push17=, $0, 312917; SIMD128-NEXT:    local.tee $push16=, $2=, $pop1712918; SIMD128-NEXT:    f32.const $push15=, -0x1p012919; SIMD128-NEXT:    f32.const $push14=, -0x1p012920; SIMD128-NEXT:    f32.gt $push11=, $2, $pop1412921; SIMD128-NEXT:    f32.select $push12=, $pop16, $pop15, $pop1112922; SIMD128-NEXT:    f32x4.replace_lane $push13=, $pop10, 3, $pop1212923; SIMD128-NEXT:    return $pop1312924;12925; SIMD128-FAST-LABEL: maxnum_one_zero_intrinsic_v4f32:12926; SIMD128-FAST:         .functype maxnum_one_zero_intrinsic_v4f32 (v128, v128) -> (v128)12927; SIMD128-FAST-NEXT:  # %bb.0:12928; SIMD128-FAST-NEXT:    f32x4.extract_lane $push27=, $0, 012929; SIMD128-FAST-NEXT:    local.tee $push26=, $2=, $pop2712930; SIMD128-FAST-NEXT:    f32.const $push4=, -0x1p012931; SIMD128-FAST-NEXT:    f32.const $push25=, -0x1p012932; SIMD128-FAST-NEXT:    f32.gt $push5=, $2, $pop2512933; SIMD128-FAST-NEXT:    f32.select $push6=, $pop26, $pop4, $pop512934; SIMD128-FAST-NEXT:    f32x4.splat $push7=, $pop612935; SIMD128-FAST-NEXT:    f32x4.extract_lane $push24=, $0, 112936; SIMD128-FAST-NEXT:    local.tee $push23=, $2=, $pop2412937; SIMD128-FAST-NEXT:    f32.const $push1=, 0x0p012938; SIMD128-FAST-NEXT:    f32.const $push22=, 0x0p012939; SIMD128-FAST-NEXT:    f32.gt $push2=, $2, $pop2212940; SIMD128-FAST-NEXT:    f32.select $push3=, $pop23, $pop1, $pop212941; SIMD128-FAST-NEXT:    f32x4.replace_lane $push8=, $pop7, 1, $pop312942; SIMD128-FAST-NEXT:    f32x4.extract_lane $push21=, $0, 212943; SIMD128-FAST-NEXT:    local.tee $push20=, $2=, $pop2112944; SIMD128-FAST-NEXT:    f32.const $push19=, -0x1p012945; SIMD128-FAST-NEXT:    f32.const $push18=, -0x1p012946; SIMD128-FAST-NEXT:    f32.gt $push9=, $2, $pop1812947; SIMD128-FAST-NEXT:    f32.select $push10=, $pop20, $pop19, $pop912948; SIMD128-FAST-NEXT:    f32x4.replace_lane $push11=, $pop8, 2, $pop1012949; SIMD128-FAST-NEXT:    f32x4.extract_lane $push17=, $0, 312950; SIMD128-FAST-NEXT:    local.tee $push16=, $2=, $pop1712951; SIMD128-FAST-NEXT:    f32.const $push15=, -0x1p012952; SIMD128-FAST-NEXT:    f32.const $push14=, -0x1p012953; SIMD128-FAST-NEXT:    f32.gt $push12=, $2, $pop1412954; SIMD128-FAST-NEXT:    f32.select $push13=, $pop16, $pop15, $pop1212955; SIMD128-FAST-NEXT:    f32x4.replace_lane $push0=, $pop11, 3, $pop1312956; SIMD128-FAST-NEXT:    return $pop012957;12958; NO-SIMD128-LABEL: maxnum_one_zero_intrinsic_v4f32:12959; NO-SIMD128:         .functype maxnum_one_zero_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12960; NO-SIMD128-NEXT:  # %bb.0:12961; NO-SIMD128-NEXT:    f32.const $push0=, -0x1p012962; NO-SIMD128-NEXT:    f32.max $push1=, $4, $pop012963; NO-SIMD128-NEXT:    f32.store 12($0), $pop112964; NO-SIMD128-NEXT:    f32.const $push9=, -0x1p012965; NO-SIMD128-NEXT:    f32.max $push2=, $3, $pop912966; NO-SIMD128-NEXT:    f32.store 8($0), $pop212967; NO-SIMD128-NEXT:    f32.const $push3=, 0x0p012968; NO-SIMD128-NEXT:    f32.const $push8=, 0x0p012969; NO-SIMD128-NEXT:    f32.gt $push4=, $2, $pop812970; NO-SIMD128-NEXT:    f32.select $push5=, $2, $pop3, $pop412971; NO-SIMD128-NEXT:    f32.store 4($0), $pop512972; NO-SIMD128-NEXT:    f32.const $push7=, -0x1p012973; NO-SIMD128-NEXT:    f32.max $push6=, $1, $pop712974; NO-SIMD128-NEXT:    f32.store 0($0), $pop612975; NO-SIMD128-NEXT:    return12976;12977; NO-SIMD128-FAST-LABEL: maxnum_one_zero_intrinsic_v4f32:12978; NO-SIMD128-FAST:         .functype maxnum_one_zero_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()12979; NO-SIMD128-FAST-NEXT:  # %bb.0:12980; NO-SIMD128-FAST-NEXT:    f32.const $push0=, -0x1p012981; NO-SIMD128-FAST-NEXT:    f32.max $push1=, $1, $pop012982; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop112983; NO-SIMD128-FAST-NEXT:    f32.const $push9=, -0x1p012984; NO-SIMD128-FAST-NEXT:    f32.max $push2=, $3, $pop912985; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop212986; NO-SIMD128-FAST-NEXT:    f32.const $push3=, 0x0p012987; NO-SIMD128-FAST-NEXT:    f32.const $push8=, 0x0p012988; NO-SIMD128-FAST-NEXT:    f32.gt $push4=, $2, $pop812989; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $2, $pop3, $pop412990; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop512991; NO-SIMD128-FAST-NEXT:    f32.const $push7=, -0x1p012992; NO-SIMD128-FAST-NEXT:    f32.max $push6=, $4, $pop712993; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop612994; NO-SIMD128-FAST-NEXT:    return12995  %a = call nnan <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float><float -1.0, float 0.0, float -1.0, float -1.0>)12996  ret <4 x float> %a12997}12998 12999define <4 x float> @maxnum_non_zero_intrinsic_v4f32(<4 x float> %x, <4 x float> %y) {13000; SIMD128-LABEL: maxnum_non_zero_intrinsic_v4f32:13001; SIMD128:         .functype maxnum_non_zero_intrinsic_v4f32 (v128, v128) -> (v128)13002; SIMD128-NEXT:  # %bb.0:13003; SIMD128-NEXT:    v128.const $push0=, -0x1p0, 0x1p0, -0x1p0, -0x1p013004; SIMD128-NEXT:    f32x4.max $push1=, $0, $pop013005; SIMD128-NEXT:    return $pop113006;13007; SIMD128-FAST-LABEL: maxnum_non_zero_intrinsic_v4f32:13008; SIMD128-FAST:         .functype maxnum_non_zero_intrinsic_v4f32 (v128, v128) -> (v128)13009; SIMD128-FAST-NEXT:  # %bb.0:13010; SIMD128-FAST-NEXT:    v128.const $push1=, -0x1p0, 0x1p0, -0x1p0, -0x1p013011; SIMD128-FAST-NEXT:    f32x4.max $push0=, $0, $pop113012; SIMD128-FAST-NEXT:    return $pop013013;13014; NO-SIMD128-LABEL: maxnum_non_zero_intrinsic_v4f32:13015; NO-SIMD128:         .functype maxnum_non_zero_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13016; NO-SIMD128-NEXT:  # %bb.0:13017; NO-SIMD128-NEXT:    f32.const $push0=, -0x1p013018; NO-SIMD128-NEXT:    f32.max $push1=, $4, $pop013019; NO-SIMD128-NEXT:    f32.store 12($0), $pop113020; NO-SIMD128-NEXT:    f32.const $push7=, -0x1p013021; NO-SIMD128-NEXT:    f32.max $push2=, $3, $pop713022; NO-SIMD128-NEXT:    f32.store 8($0), $pop213023; NO-SIMD128-NEXT:    f32.const $push3=, 0x1p013024; NO-SIMD128-NEXT:    f32.max $push4=, $2, $pop313025; NO-SIMD128-NEXT:    f32.store 4($0), $pop413026; NO-SIMD128-NEXT:    f32.const $push6=, -0x1p013027; NO-SIMD128-NEXT:    f32.max $push5=, $1, $pop613028; NO-SIMD128-NEXT:    f32.store 0($0), $pop513029; NO-SIMD128-NEXT:    return13030;13031; NO-SIMD128-FAST-LABEL: maxnum_non_zero_intrinsic_v4f32:13032; NO-SIMD128-FAST:         .functype maxnum_non_zero_intrinsic_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13033; NO-SIMD128-FAST-NEXT:  # %bb.0:13034; NO-SIMD128-FAST-NEXT:    f32.const $push0=, -0x1p013035; NO-SIMD128-FAST-NEXT:    f32.max $push1=, $1, $pop013036; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113037; NO-SIMD128-FAST-NEXT:    f32.const $push2=, 0x1p013038; NO-SIMD128-FAST-NEXT:    f32.max $push3=, $2, $pop213039; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313040; NO-SIMD128-FAST-NEXT:    f32.const $push7=, -0x1p013041; NO-SIMD128-FAST-NEXT:    f32.max $push4=, $3, $pop713042; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop413043; NO-SIMD128-FAST-NEXT:    f32.const $push6=, -0x1p013044; NO-SIMD128-FAST-NEXT:    f32.max $push5=, $4, $pop613045; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop513046; NO-SIMD128-FAST-NEXT:    return13047  %a = call nnan <4 x float> @llvm.maxnum.v4f32(<4 x float> %x, <4 x float><float -1.0, float 1.0, float -1.0, float -1.0>)13048  ret <4 x float> %a13049}13050 13051define <4 x float> @min_const_intrinsic_v4f32() {13052; SIMD128-LABEL: min_const_intrinsic_v4f32:13053; SIMD128:         .functype min_const_intrinsic_v4f32 () -> (v128)13054; SIMD128-NEXT:  # %bb.0:13055; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p213056; SIMD128-NEXT:    return $pop013057;13058; SIMD128-FAST-LABEL: min_const_intrinsic_v4f32:13059; SIMD128-FAST:         .functype min_const_intrinsic_v4f32 () -> (v128)13060; SIMD128-FAST-NEXT:  # %bb.0:13061; SIMD128-FAST-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p213062; SIMD128-FAST-NEXT:    return $pop013063;13064; NO-SIMD128-LABEL: min_const_intrinsic_v4f32:13065; NO-SIMD128:         .functype min_const_intrinsic_v4f32 (i32) -> ()13066; NO-SIMD128-NEXT:  # %bb.0:13067; NO-SIMD128-NEXT:    i64.const $push0=, 465672201578532044813068; NO-SIMD128-NEXT:    i64.store 8($0), $pop013069; NO-SIMD128-NEXT:    i64.const $push1=, 465672201578532044813070; NO-SIMD128-NEXT:    i64.store 0($0), $pop113071; NO-SIMD128-NEXT:    return13072;13073; NO-SIMD128-FAST-LABEL: min_const_intrinsic_v4f32:13074; NO-SIMD128-FAST:         .functype min_const_intrinsic_v4f32 (i32) -> ()13075; NO-SIMD128-FAST-NEXT:  # %bb.0:13076; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 465672201578532044813077; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop013078; NO-SIMD128-FAST-NEXT:    i64.const $push1=, 465672201578532044813079; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop113080; NO-SIMD128-FAST-NEXT:    return13081  %a = call <4 x float> @llvm.minimum.v4f32(13082    <4 x float> <float 42., float 42., float 42., float 42.>,13083    <4 x float> <float 5., float 5., float 5., float 5.>13084  )13085  ret <4 x float> %a13086}13087 13088define <4 x float> @max_const_intrinsic_v4f32() {13089; SIMD128-LABEL: max_const_intrinsic_v4f32:13090; SIMD128:         .functype max_const_intrinsic_v4f32 () -> (v128)13091; SIMD128-NEXT:  # %bb.0:13092; SIMD128-NEXT:    v128.const $push0=, 0x1.5p5, 0x1.5p5, 0x1.5p5, 0x1.5p513093; SIMD128-NEXT:    return $pop013094;13095; SIMD128-FAST-LABEL: max_const_intrinsic_v4f32:13096; SIMD128-FAST:         .functype max_const_intrinsic_v4f32 () -> (v128)13097; SIMD128-FAST-NEXT:  # %bb.0:13098; SIMD128-FAST-NEXT:    v128.const $push0=, 0x1.5p5, 0x1.5p5, 0x1.5p5, 0x1.5p513099; SIMD128-FAST-NEXT:    return $pop013100;13101; NO-SIMD128-LABEL: max_const_intrinsic_v4f32:13102; NO-SIMD128:         .functype max_const_intrinsic_v4f32 (i32) -> ()13103; NO-SIMD128-NEXT:  # %bb.0:13104; NO-SIMD128-NEXT:    i64.const $push0=, 476706020668158771213105; NO-SIMD128-NEXT:    i64.store 8($0), $pop013106; NO-SIMD128-NEXT:    i64.const $push1=, 476706020668158771213107; NO-SIMD128-NEXT:    i64.store 0($0), $pop113108; NO-SIMD128-NEXT:    return13109;13110; NO-SIMD128-FAST-LABEL: max_const_intrinsic_v4f32:13111; NO-SIMD128-FAST:         .functype max_const_intrinsic_v4f32 (i32) -> ()13112; NO-SIMD128-FAST-NEXT:  # %bb.0:13113; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 476706020668158771213114; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop013115; NO-SIMD128-FAST-NEXT:    i64.const $push1=, 476706020668158771213116; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop113117; NO-SIMD128-FAST-NEXT:    return13118  %a = call <4 x float> @llvm.maximum.v4f32(13119    <4 x float> <float 42., float 42., float 42., float 42.>,13120    <4 x float> <float 5., float 5., float 5., float 5.>13121  )13122  ret <4 x float> %a13123}13124 13125define <4 x float> @pmin_v4f32(<4 x float> %x, <4 x float> %y) {13126; SIMD128-LABEL: pmin_v4f32:13127; SIMD128:         .functype pmin_v4f32 (v128, v128) -> (v128)13128; SIMD128-NEXT:  # %bb.0:13129; SIMD128-NEXT:    f32x4.pmin $push0=, $0, $113130; SIMD128-NEXT:    return $pop013131;13132; SIMD128-FAST-LABEL: pmin_v4f32:13133; SIMD128-FAST:         .functype pmin_v4f32 (v128, v128) -> (v128)13134; SIMD128-FAST-NEXT:  # %bb.0:13135; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $113136; SIMD128-FAST-NEXT:    return $pop013137;13138; NO-SIMD128-LABEL: pmin_v4f32:13139; NO-SIMD128:         .functype pmin_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13140; NO-SIMD128-NEXT:  # %bb.0:13141; NO-SIMD128-NEXT:    f32.lt $push0=, $8, $413142; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013143; NO-SIMD128-NEXT:    f32.store 12($0), $pop113144; NO-SIMD128-NEXT:    f32.lt $push2=, $7, $313145; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213146; NO-SIMD128-NEXT:    f32.store 8($0), $pop313147; NO-SIMD128-NEXT:    f32.lt $push4=, $6, $213148; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413149; NO-SIMD128-NEXT:    f32.store 4($0), $pop513150; NO-SIMD128-NEXT:    f32.lt $push6=, $5, $113151; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613152; NO-SIMD128-NEXT:    f32.store 0($0), $pop713153; NO-SIMD128-NEXT:    return13154;13155; NO-SIMD128-FAST-LABEL: pmin_v4f32:13156; NO-SIMD128-FAST:         .functype pmin_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13157; NO-SIMD128-FAST-NEXT:  # %bb.0:13158; NO-SIMD128-FAST-NEXT:    f32.lt $push0=, $5, $113159; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013160; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113161; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $6, $213162; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213163; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313164; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $7, $313165; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413166; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513167; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $8, $413168; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613169; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713170; NO-SIMD128-FAST-NEXT:    return13171  %c = fcmp olt <4 x float> %y, %x13172  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13173  ret <4 x float> %a13174}13175 13176define <4 x float> @pmin_v4f32_fast_olt(<4 x float> %x, <4 x float> %y) {13177; SIMD128-LABEL: pmin_v4f32_fast_olt:13178; SIMD128:         .functype pmin_v4f32_fast_olt (v128, v128) -> (v128)13179; SIMD128-NEXT:  # %bb.0:13180; SIMD128-NEXT:    f32x4.pmin $push0=, $1, $013181; SIMD128-NEXT:    return $pop013182;13183; SIMD128-FAST-LABEL: pmin_v4f32_fast_olt:13184; SIMD128-FAST:         .functype pmin_v4f32_fast_olt (v128, v128) -> (v128)13185; SIMD128-FAST-NEXT:  # %bb.0:13186; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $1, $013187; SIMD128-FAST-NEXT:    return $pop013188;13189; NO-SIMD128-LABEL: pmin_v4f32_fast_olt:13190; NO-SIMD128:         .functype pmin_v4f32_fast_olt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13191; NO-SIMD128-NEXT:  # %bb.0:13192; NO-SIMD128-NEXT:    f32.lt $push0=, $8, $413193; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013194; NO-SIMD128-NEXT:    f32.store 12($0), $pop113195; NO-SIMD128-NEXT:    f32.lt $push2=, $7, $313196; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213197; NO-SIMD128-NEXT:    f32.store 8($0), $pop313198; NO-SIMD128-NEXT:    f32.lt $push4=, $6, $213199; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413200; NO-SIMD128-NEXT:    f32.store 4($0), $pop513201; NO-SIMD128-NEXT:    f32.lt $push6=, $5, $113202; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613203; NO-SIMD128-NEXT:    f32.store 0($0), $pop713204; NO-SIMD128-NEXT:    return13205;13206; NO-SIMD128-FAST-LABEL: pmin_v4f32_fast_olt:13207; NO-SIMD128-FAST:         .functype pmin_v4f32_fast_olt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13208; NO-SIMD128-FAST-NEXT:  # %bb.0:13209; NO-SIMD128-FAST-NEXT:    f32.lt $push0=, $5, $113210; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013211; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113212; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $6, $213213; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213214; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313215; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $7, $313216; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413217; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513218; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $8, $413219; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613220; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713221; NO-SIMD128-FAST-NEXT:    return13222  %c = fcmp fast olt <4 x float> %y, %x13223  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13224  ret <4 x float> %a13225}13226 13227define <4 x float> @pmin_v4f32_fast_ogt(<4 x float> %x, <4 x float> %y) {13228; SIMD128-LABEL: pmin_v4f32_fast_ogt:13229; SIMD128:         .functype pmin_v4f32_fast_ogt (v128, v128) -> (v128)13230; SIMD128-NEXT:  # %bb.0:13231; SIMD128-NEXT:    f32x4.pmin $push0=, $0, $113232; SIMD128-NEXT:    return $pop013233;13234; SIMD128-FAST-LABEL: pmin_v4f32_fast_ogt:13235; SIMD128-FAST:         .functype pmin_v4f32_fast_ogt (v128, v128) -> (v128)13236; SIMD128-FAST-NEXT:  # %bb.0:13237; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $113238; SIMD128-FAST-NEXT:    return $pop013239;13240; NO-SIMD128-LABEL: pmin_v4f32_fast_ogt:13241; NO-SIMD128:         .functype pmin_v4f32_fast_ogt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13242; NO-SIMD128-NEXT:  # %bb.0:13243; NO-SIMD128-NEXT:    f32.gt $push0=, $4, $813244; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013245; NO-SIMD128-NEXT:    f32.store 12($0), $pop113246; NO-SIMD128-NEXT:    f32.gt $push2=, $3, $713247; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213248; NO-SIMD128-NEXT:    f32.store 8($0), $pop313249; NO-SIMD128-NEXT:    f32.gt $push4=, $2, $613250; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413251; NO-SIMD128-NEXT:    f32.store 4($0), $pop513252; NO-SIMD128-NEXT:    f32.gt $push6=, $1, $513253; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613254; NO-SIMD128-NEXT:    f32.store 0($0), $pop713255; NO-SIMD128-NEXT:    return13256;13257; NO-SIMD128-FAST-LABEL: pmin_v4f32_fast_ogt:13258; NO-SIMD128-FAST:         .functype pmin_v4f32_fast_ogt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13259; NO-SIMD128-FAST-NEXT:  # %bb.0:13260; NO-SIMD128-FAST-NEXT:    f32.gt $push0=, $1, $513261; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013262; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113263; NO-SIMD128-FAST-NEXT:    f32.gt $push2=, $2, $613264; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213265; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313266; NO-SIMD128-FAST-NEXT:    f32.gt $push4=, $3, $713267; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413268; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513269; NO-SIMD128-FAST-NEXT:    f32.gt $push6=, $4, $813270; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613271; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713272; NO-SIMD128-FAST-NEXT:    return13273  %c = fcmp fast ogt <4 x float> %x, %y13274  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13275  ret <4 x float> %a13276}13277 13278define <4 x float> @pmin_v4f32_fast_ole(<4 x float> %x, <4 x float> %y) {13279; SIMD128-LABEL: pmin_v4f32_fast_ole:13280; SIMD128:         .functype pmin_v4f32_fast_ole (v128, v128) -> (v128)13281; SIMD128-NEXT:  # %bb.0:13282; SIMD128-NEXT:    f32x4.pmin $push0=, $1, $013283; SIMD128-NEXT:    return $pop013284;13285; SIMD128-FAST-LABEL: pmin_v4f32_fast_ole:13286; SIMD128-FAST:         .functype pmin_v4f32_fast_ole (v128, v128) -> (v128)13287; SIMD128-FAST-NEXT:  # %bb.0:13288; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $1, $013289; SIMD128-FAST-NEXT:    return $pop013290;13291; NO-SIMD128-LABEL: pmin_v4f32_fast_ole:13292; NO-SIMD128:         .functype pmin_v4f32_fast_ole (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13293; NO-SIMD128-NEXT:  # %bb.0:13294; NO-SIMD128-NEXT:    f32.le $push0=, $8, $413295; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013296; NO-SIMD128-NEXT:    f32.store 12($0), $pop113297; NO-SIMD128-NEXT:    f32.le $push2=, $7, $313298; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213299; NO-SIMD128-NEXT:    f32.store 8($0), $pop313300; NO-SIMD128-NEXT:    f32.le $push4=, $6, $213301; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413302; NO-SIMD128-NEXT:    f32.store 4($0), $pop513303; NO-SIMD128-NEXT:    f32.le $push6=, $5, $113304; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613305; NO-SIMD128-NEXT:    f32.store 0($0), $pop713306; NO-SIMD128-NEXT:    return13307;13308; NO-SIMD128-FAST-LABEL: pmin_v4f32_fast_ole:13309; NO-SIMD128-FAST:         .functype pmin_v4f32_fast_ole (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13310; NO-SIMD128-FAST-NEXT:  # %bb.0:13311; NO-SIMD128-FAST-NEXT:    f32.le $push0=, $5, $113312; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013313; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113314; NO-SIMD128-FAST-NEXT:    f32.le $push2=, $6, $213315; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213316; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313317; NO-SIMD128-FAST-NEXT:    f32.le $push4=, $7, $313318; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413319; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513320; NO-SIMD128-FAST-NEXT:    f32.le $push6=, $8, $413321; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613322; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713323; NO-SIMD128-FAST-NEXT:    return13324  %c = fcmp fast ole <4 x float> %y, %x13325  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13326  ret <4 x float> %a13327}13328 13329define <4 x float> @pmin_v4f32_fast_oge(<4 x float> %x, <4 x float> %y) {13330; SIMD128-LABEL: pmin_v4f32_fast_oge:13331; SIMD128:         .functype pmin_v4f32_fast_oge (v128, v128) -> (v128)13332; SIMD128-NEXT:  # %bb.0:13333; SIMD128-NEXT:    f32x4.pmin $push0=, $0, $113334; SIMD128-NEXT:    return $pop013335;13336; SIMD128-FAST-LABEL: pmin_v4f32_fast_oge:13337; SIMD128-FAST:         .functype pmin_v4f32_fast_oge (v128, v128) -> (v128)13338; SIMD128-FAST-NEXT:  # %bb.0:13339; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $113340; SIMD128-FAST-NEXT:    return $pop013341;13342; NO-SIMD128-LABEL: pmin_v4f32_fast_oge:13343; NO-SIMD128:         .functype pmin_v4f32_fast_oge (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13344; NO-SIMD128-NEXT:  # %bb.0:13345; NO-SIMD128-NEXT:    f32.ge $push0=, $4, $813346; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013347; NO-SIMD128-NEXT:    f32.store 12($0), $pop113348; NO-SIMD128-NEXT:    f32.ge $push2=, $3, $713349; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213350; NO-SIMD128-NEXT:    f32.store 8($0), $pop313351; NO-SIMD128-NEXT:    f32.ge $push4=, $2, $613352; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413353; NO-SIMD128-NEXT:    f32.store 4($0), $pop513354; NO-SIMD128-NEXT:    f32.ge $push6=, $1, $513355; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613356; NO-SIMD128-NEXT:    f32.store 0($0), $pop713357; NO-SIMD128-NEXT:    return13358;13359; NO-SIMD128-FAST-LABEL: pmin_v4f32_fast_oge:13360; NO-SIMD128-FAST:         .functype pmin_v4f32_fast_oge (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13361; NO-SIMD128-FAST-NEXT:  # %bb.0:13362; NO-SIMD128-FAST-NEXT:    f32.ge $push0=, $1, $513363; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013364; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113365; NO-SIMD128-FAST-NEXT:    f32.ge $push2=, $2, $613366; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213367; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313368; NO-SIMD128-FAST-NEXT:    f32.ge $push4=, $3, $713369; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413370; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513371; NO-SIMD128-FAST-NEXT:    f32.ge $push6=, $4, $813372; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613373; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713374; NO-SIMD128-FAST-NEXT:    return13375  %c = fcmp fast oge <4 x float> %x, %y13376  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13377  ret <4 x float> %a13378}13379 13380define <4 x i32> @pmin_int_v4f32(<4 x i32> %x, <4 x i32> %y) {13381; SIMD128-LABEL: pmin_int_v4f32:13382; SIMD128:         .functype pmin_int_v4f32 (v128, v128) -> (v128)13383; SIMD128-NEXT:  # %bb.0:13384; SIMD128-NEXT:    f32x4.pmin $push0=, $0, $113385; SIMD128-NEXT:    return $pop013386;13387; SIMD128-FAST-LABEL: pmin_int_v4f32:13388; SIMD128-FAST:         .functype pmin_int_v4f32 (v128, v128) -> (v128)13389; SIMD128-FAST-NEXT:  # %bb.0:13390; SIMD128-FAST-NEXT:    f32x4.pmin $push0=, $0, $113391; SIMD128-FAST-NEXT:    return $pop013392;13393; NO-SIMD128-LABEL: pmin_int_v4f32:13394; NO-SIMD128:         .functype pmin_int_v4f32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()13395; NO-SIMD128-NEXT:  # %bb.0:13396; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push1=, $813397; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push0=, $413398; NO-SIMD128-NEXT:    f32.lt $push2=, $pop1, $pop013399; NO-SIMD128-NEXT:    i32.select $push3=, $8, $4, $pop213400; NO-SIMD128-NEXT:    i32.store 12($0), $pop313401; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push5=, $713402; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push4=, $313403; NO-SIMD128-NEXT:    f32.lt $push6=, $pop5, $pop413404; NO-SIMD128-NEXT:    i32.select $push7=, $7, $3, $pop613405; NO-SIMD128-NEXT:    i32.store 8($0), $pop713406; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push9=, $613407; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push8=, $213408; NO-SIMD128-NEXT:    f32.lt $push10=, $pop9, $pop813409; NO-SIMD128-NEXT:    i32.select $push11=, $6, $2, $pop1013410; NO-SIMD128-NEXT:    i32.store 4($0), $pop1113411; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push13=, $513412; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push12=, $113413; NO-SIMD128-NEXT:    f32.lt $push14=, $pop13, $pop1213414; NO-SIMD128-NEXT:    i32.select $push15=, $5, $1, $pop1413415; NO-SIMD128-NEXT:    i32.store 0($0), $pop1513416; NO-SIMD128-NEXT:    return13417;13418; NO-SIMD128-FAST-LABEL: pmin_int_v4f32:13419; NO-SIMD128-FAST:         .functype pmin_int_v4f32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()13420; NO-SIMD128-FAST-NEXT:  # %bb.0:13421; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push1=, $513422; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push0=, $113423; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $pop1, $pop013424; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $5, $1, $pop213425; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop313426; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push5=, $613427; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push4=, $213428; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $pop5, $pop413429; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $6, $2, $pop613430; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop713431; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push9=, $713432; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push8=, $313433; NO-SIMD128-FAST-NEXT:    f32.lt $push10=, $pop9, $pop813434; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $7, $3, $pop1013435; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop1113436; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push13=, $813437; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push12=, $413438; NO-SIMD128-FAST-NEXT:    f32.lt $push14=, $pop13, $pop1213439; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $8, $4, $pop1413440; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1513441; NO-SIMD128-FAST-NEXT:    return13442  %fx = bitcast <4 x i32> %x to <4 x float>13443  %fy = bitcast <4 x i32> %y to <4 x float>13444  %c = fcmp olt <4 x float> %fy, %fx13445  %a = select <4 x i1> %c, <4 x i32> %y, <4 x i32> %x13446  ret <4 x i32> %a13447}13448 13449define <4 x float> @pmax_v4f32(<4 x float> %x, <4 x float> %y) {13450; SIMD128-LABEL: pmax_v4f32:13451; SIMD128:         .functype pmax_v4f32 (v128, v128) -> (v128)13452; SIMD128-NEXT:  # %bb.0:13453; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113454; SIMD128-NEXT:    return $pop013455;13456; SIMD128-FAST-LABEL: pmax_v4f32:13457; SIMD128-FAST:         .functype pmax_v4f32 (v128, v128) -> (v128)13458; SIMD128-FAST-NEXT:  # %bb.0:13459; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113460; SIMD128-FAST-NEXT:    return $pop013461;13462; NO-SIMD128-LABEL: pmax_v4f32:13463; NO-SIMD128:         .functype pmax_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13464; NO-SIMD128-NEXT:  # %bb.0:13465; NO-SIMD128-NEXT:    f32.lt $push0=, $4, $813466; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013467; NO-SIMD128-NEXT:    f32.store 12($0), $pop113468; NO-SIMD128-NEXT:    f32.lt $push2=, $3, $713469; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213470; NO-SIMD128-NEXT:    f32.store 8($0), $pop313471; NO-SIMD128-NEXT:    f32.lt $push4=, $2, $613472; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413473; NO-SIMD128-NEXT:    f32.store 4($0), $pop513474; NO-SIMD128-NEXT:    f32.lt $push6=, $1, $513475; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613476; NO-SIMD128-NEXT:    f32.store 0($0), $pop713477; NO-SIMD128-NEXT:    return13478;13479; NO-SIMD128-FAST-LABEL: pmax_v4f32:13480; NO-SIMD128-FAST:         .functype pmax_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13481; NO-SIMD128-FAST-NEXT:  # %bb.0:13482; NO-SIMD128-FAST-NEXT:    f32.lt $push0=, $1, $513483; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013484; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113485; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $2, $613486; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213487; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313488; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $3, $713489; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413490; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513491; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $4, $813492; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613493; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713494; NO-SIMD128-FAST-NEXT:    return13495  %c = fcmp olt <4 x float> %x, %y13496  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13497  ret <4 x float> %a13498}13499 13500define <4 x float> @pmax_v4f32_fast_ogt(<4 x float> %x, <4 x float> %y) {13501; SIMD128-LABEL: pmax_v4f32_fast_ogt:13502; SIMD128:         .functype pmax_v4f32_fast_ogt (v128, v128) -> (v128)13503; SIMD128-NEXT:  # %bb.0:13504; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113505; SIMD128-NEXT:    return $pop013506;13507; SIMD128-FAST-LABEL: pmax_v4f32_fast_ogt:13508; SIMD128-FAST:         .functype pmax_v4f32_fast_ogt (v128, v128) -> (v128)13509; SIMD128-FAST-NEXT:  # %bb.0:13510; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113511; SIMD128-FAST-NEXT:    return $pop013512;13513; NO-SIMD128-LABEL: pmax_v4f32_fast_ogt:13514; NO-SIMD128:         .functype pmax_v4f32_fast_ogt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13515; NO-SIMD128-NEXT:  # %bb.0:13516; NO-SIMD128-NEXT:    f32.gt $push0=, $4, $813517; NO-SIMD128-NEXT:    f32.select $push1=, $4, $8, $pop013518; NO-SIMD128-NEXT:    f32.store 12($0), $pop113519; NO-SIMD128-NEXT:    f32.gt $push2=, $3, $713520; NO-SIMD128-NEXT:    f32.select $push3=, $3, $7, $pop213521; NO-SIMD128-NEXT:    f32.store 8($0), $pop313522; NO-SIMD128-NEXT:    f32.gt $push4=, $2, $613523; NO-SIMD128-NEXT:    f32.select $push5=, $2, $6, $pop413524; NO-SIMD128-NEXT:    f32.store 4($0), $pop513525; NO-SIMD128-NEXT:    f32.gt $push6=, $1, $513526; NO-SIMD128-NEXT:    f32.select $push7=, $1, $5, $pop613527; NO-SIMD128-NEXT:    f32.store 0($0), $pop713528; NO-SIMD128-NEXT:    return13529;13530; NO-SIMD128-FAST-LABEL: pmax_v4f32_fast_ogt:13531; NO-SIMD128-FAST:         .functype pmax_v4f32_fast_ogt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13532; NO-SIMD128-FAST-NEXT:  # %bb.0:13533; NO-SIMD128-FAST-NEXT:    f32.gt $push0=, $1, $513534; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $1, $5, $pop013535; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113536; NO-SIMD128-FAST-NEXT:    f32.gt $push2=, $2, $613537; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $2, $6, $pop213538; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313539; NO-SIMD128-FAST-NEXT:    f32.gt $push4=, $3, $713540; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $3, $7, $pop413541; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513542; NO-SIMD128-FAST-NEXT:    f32.gt $push6=, $4, $813543; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $4, $8, $pop613544; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713545; NO-SIMD128-FAST-NEXT:    return13546  %c = fcmp fast ogt <4 x float> %x, %y13547  %a = select <4 x i1> %c, <4 x float> %x, <4 x float> %y13548  ret <4 x float> %a13549}13550 13551define <4 x float> @pmax_v4f32_fast_olt(<4 x float> %x, <4 x float> %y) {13552; SIMD128-LABEL: pmax_v4f32_fast_olt:13553; SIMD128:         .functype pmax_v4f32_fast_olt (v128, v128) -> (v128)13554; SIMD128-NEXT:  # %bb.0:13555; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113556; SIMD128-NEXT:    return $pop013557;13558; SIMD128-FAST-LABEL: pmax_v4f32_fast_olt:13559; SIMD128-FAST:         .functype pmax_v4f32_fast_olt (v128, v128) -> (v128)13560; SIMD128-FAST-NEXT:  # %bb.0:13561; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113562; SIMD128-FAST-NEXT:    return $pop013563;13564; NO-SIMD128-LABEL: pmax_v4f32_fast_olt:13565; NO-SIMD128:         .functype pmax_v4f32_fast_olt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13566; NO-SIMD128-NEXT:  # %bb.0:13567; NO-SIMD128-NEXT:    f32.lt $push0=, $4, $813568; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013569; NO-SIMD128-NEXT:    f32.store 12($0), $pop113570; NO-SIMD128-NEXT:    f32.lt $push2=, $3, $713571; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213572; NO-SIMD128-NEXT:    f32.store 8($0), $pop313573; NO-SIMD128-NEXT:    f32.lt $push4=, $2, $613574; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413575; NO-SIMD128-NEXT:    f32.store 4($0), $pop513576; NO-SIMD128-NEXT:    f32.lt $push6=, $1, $513577; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613578; NO-SIMD128-NEXT:    f32.store 0($0), $pop713579; NO-SIMD128-NEXT:    return13580;13581; NO-SIMD128-FAST-LABEL: pmax_v4f32_fast_olt:13582; NO-SIMD128-FAST:         .functype pmax_v4f32_fast_olt (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13583; NO-SIMD128-FAST-NEXT:  # %bb.0:13584; NO-SIMD128-FAST-NEXT:    f32.lt $push0=, $1, $513585; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013586; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113587; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $2, $613588; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213589; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313590; NO-SIMD128-FAST-NEXT:    f32.lt $push4=, $3, $713591; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413592; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513593; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $4, $813594; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613595; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713596; NO-SIMD128-FAST-NEXT:    return13597  %c = fcmp fast olt <4 x float> %x, %y13598  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13599  ret <4 x float> %a13600}13601 13602define <4 x float> @pmax_v4f32_fast_oge(<4 x float> %x, <4 x float> %y) {13603; SIMD128-LABEL: pmax_v4f32_fast_oge:13604; SIMD128:         .functype pmax_v4f32_fast_oge (v128, v128) -> (v128)13605; SIMD128-NEXT:  # %bb.0:13606; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113607; SIMD128-NEXT:    return $pop013608;13609; SIMD128-FAST-LABEL: pmax_v4f32_fast_oge:13610; SIMD128-FAST:         .functype pmax_v4f32_fast_oge (v128, v128) -> (v128)13611; SIMD128-FAST-NEXT:  # %bb.0:13612; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113613; SIMD128-FAST-NEXT:    return $pop013614;13615; NO-SIMD128-LABEL: pmax_v4f32_fast_oge:13616; NO-SIMD128:         .functype pmax_v4f32_fast_oge (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13617; NO-SIMD128-NEXT:  # %bb.0:13618; NO-SIMD128-NEXT:    f32.ge $push0=, $4, $813619; NO-SIMD128-NEXT:    f32.select $push1=, $4, $8, $pop013620; NO-SIMD128-NEXT:    f32.store 12($0), $pop113621; NO-SIMD128-NEXT:    f32.ge $push2=, $3, $713622; NO-SIMD128-NEXT:    f32.select $push3=, $3, $7, $pop213623; NO-SIMD128-NEXT:    f32.store 8($0), $pop313624; NO-SIMD128-NEXT:    f32.ge $push4=, $2, $613625; NO-SIMD128-NEXT:    f32.select $push5=, $2, $6, $pop413626; NO-SIMD128-NEXT:    f32.store 4($0), $pop513627; NO-SIMD128-NEXT:    f32.ge $push6=, $1, $513628; NO-SIMD128-NEXT:    f32.select $push7=, $1, $5, $pop613629; NO-SIMD128-NEXT:    f32.store 0($0), $pop713630; NO-SIMD128-NEXT:    return13631;13632; NO-SIMD128-FAST-LABEL: pmax_v4f32_fast_oge:13633; NO-SIMD128-FAST:         .functype pmax_v4f32_fast_oge (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13634; NO-SIMD128-FAST-NEXT:  # %bb.0:13635; NO-SIMD128-FAST-NEXT:    f32.ge $push0=, $1, $513636; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $1, $5, $pop013637; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113638; NO-SIMD128-FAST-NEXT:    f32.ge $push2=, $2, $613639; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $2, $6, $pop213640; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313641; NO-SIMD128-FAST-NEXT:    f32.ge $push4=, $3, $713642; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $3, $7, $pop413643; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513644; NO-SIMD128-FAST-NEXT:    f32.ge $push6=, $4, $813645; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $4, $8, $pop613646; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713647; NO-SIMD128-FAST-NEXT:    return13648  %c = fcmp fast oge <4 x float> %x, %y13649  %a = select <4 x i1> %c, <4 x float> %x, <4 x float> %y13650  ret <4 x float> %a13651}13652 13653define <4 x float> @pmax_v4f32_fast_ole(<4 x float> %x, <4 x float> %y) {13654; SIMD128-LABEL: pmax_v4f32_fast_ole:13655; SIMD128:         .functype pmax_v4f32_fast_ole (v128, v128) -> (v128)13656; SIMD128-NEXT:  # %bb.0:13657; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113658; SIMD128-NEXT:    return $pop013659;13660; SIMD128-FAST-LABEL: pmax_v4f32_fast_ole:13661; SIMD128-FAST:         .functype pmax_v4f32_fast_ole (v128, v128) -> (v128)13662; SIMD128-FAST-NEXT:  # %bb.0:13663; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113664; SIMD128-FAST-NEXT:    return $pop013665;13666; NO-SIMD128-LABEL: pmax_v4f32_fast_ole:13667; NO-SIMD128:         .functype pmax_v4f32_fast_ole (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13668; NO-SIMD128-NEXT:  # %bb.0:13669; NO-SIMD128-NEXT:    f32.le $push0=, $4, $813670; NO-SIMD128-NEXT:    f32.select $push1=, $8, $4, $pop013671; NO-SIMD128-NEXT:    f32.store 12($0), $pop113672; NO-SIMD128-NEXT:    f32.le $push2=, $3, $713673; NO-SIMD128-NEXT:    f32.select $push3=, $7, $3, $pop213674; NO-SIMD128-NEXT:    f32.store 8($0), $pop313675; NO-SIMD128-NEXT:    f32.le $push4=, $2, $613676; NO-SIMD128-NEXT:    f32.select $push5=, $6, $2, $pop413677; NO-SIMD128-NEXT:    f32.store 4($0), $pop513678; NO-SIMD128-NEXT:    f32.le $push6=, $1, $513679; NO-SIMD128-NEXT:    f32.select $push7=, $5, $1, $pop613680; NO-SIMD128-NEXT:    f32.store 0($0), $pop713681; NO-SIMD128-NEXT:    return13682;13683; NO-SIMD128-FAST-LABEL: pmax_v4f32_fast_ole:13684; NO-SIMD128-FAST:         .functype pmax_v4f32_fast_ole (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13685; NO-SIMD128-FAST-NEXT:  # %bb.0:13686; NO-SIMD128-FAST-NEXT:    f32.le $push0=, $1, $513687; NO-SIMD128-FAST-NEXT:    f32.select $push1=, $5, $1, $pop013688; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop113689; NO-SIMD128-FAST-NEXT:    f32.le $push2=, $2, $613690; NO-SIMD128-FAST-NEXT:    f32.select $push3=, $6, $2, $pop213691; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop313692; NO-SIMD128-FAST-NEXT:    f32.le $push4=, $3, $713693; NO-SIMD128-FAST-NEXT:    f32.select $push5=, $7, $3, $pop413694; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop513695; NO-SIMD128-FAST-NEXT:    f32.le $push6=, $4, $813696; NO-SIMD128-FAST-NEXT:    f32.select $push7=, $8, $4, $pop613697; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop713698; NO-SIMD128-FAST-NEXT:    return13699  %c = fcmp fast ole <4 x float> %x, %y13700  %a = select <4 x i1> %c, <4 x float> %y, <4 x float> %x13701  ret <4 x float> %a13702}13703 13704define <4 x i32> @pmax_int_v4f32(<4 x i32> %x, <4 x i32> %y) {13705; SIMD128-LABEL: pmax_int_v4f32:13706; SIMD128:         .functype pmax_int_v4f32 (v128, v128) -> (v128)13707; SIMD128-NEXT:  # %bb.0:13708; SIMD128-NEXT:    f32x4.pmax $push0=, $0, $113709; SIMD128-NEXT:    return $pop013710;13711; SIMD128-FAST-LABEL: pmax_int_v4f32:13712; SIMD128-FAST:         .functype pmax_int_v4f32 (v128, v128) -> (v128)13713; SIMD128-FAST-NEXT:  # %bb.0:13714; SIMD128-FAST-NEXT:    f32x4.pmax $push0=, $0, $113715; SIMD128-FAST-NEXT:    return $pop013716;13717; NO-SIMD128-LABEL: pmax_int_v4f32:13718; NO-SIMD128:         .functype pmax_int_v4f32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()13719; NO-SIMD128-NEXT:  # %bb.0:13720; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push1=, $413721; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push0=, $813722; NO-SIMD128-NEXT:    f32.lt $push2=, $pop1, $pop013723; NO-SIMD128-NEXT:    i32.select $push3=, $8, $4, $pop213724; NO-SIMD128-NEXT:    i32.store 12($0), $pop313725; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push5=, $313726; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push4=, $713727; NO-SIMD128-NEXT:    f32.lt $push6=, $pop5, $pop413728; NO-SIMD128-NEXT:    i32.select $push7=, $7, $3, $pop613729; NO-SIMD128-NEXT:    i32.store 8($0), $pop713730; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push9=, $213731; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push8=, $613732; NO-SIMD128-NEXT:    f32.lt $push10=, $pop9, $pop813733; NO-SIMD128-NEXT:    i32.select $push11=, $6, $2, $pop1013734; NO-SIMD128-NEXT:    i32.store 4($0), $pop1113735; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push13=, $113736; NO-SIMD128-NEXT:    f32.reinterpret_i32 $push12=, $513737; NO-SIMD128-NEXT:    f32.lt $push14=, $pop13, $pop1213738; NO-SIMD128-NEXT:    i32.select $push15=, $5, $1, $pop1413739; NO-SIMD128-NEXT:    i32.store 0($0), $pop1513740; NO-SIMD128-NEXT:    return13741;13742; NO-SIMD128-FAST-LABEL: pmax_int_v4f32:13743; NO-SIMD128-FAST:         .functype pmax_int_v4f32 (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> ()13744; NO-SIMD128-FAST-NEXT:  # %bb.0:13745; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push1=, $113746; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push0=, $513747; NO-SIMD128-FAST-NEXT:    f32.lt $push2=, $pop1, $pop013748; NO-SIMD128-FAST-NEXT:    i32.select $push3=, $5, $1, $pop213749; NO-SIMD128-FAST-NEXT:    i32.store 0($0), $pop313750; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push5=, $213751; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push4=, $613752; NO-SIMD128-FAST-NEXT:    f32.lt $push6=, $pop5, $pop413753; NO-SIMD128-FAST-NEXT:    i32.select $push7=, $6, $2, $pop613754; NO-SIMD128-FAST-NEXT:    i32.store 4($0), $pop713755; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push9=, $313756; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push8=, $713757; NO-SIMD128-FAST-NEXT:    f32.lt $push10=, $pop9, $pop813758; NO-SIMD128-FAST-NEXT:    i32.select $push11=, $7, $3, $pop1013759; NO-SIMD128-FAST-NEXT:    i32.store 8($0), $pop1113760; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push13=, $413761; NO-SIMD128-FAST-NEXT:    f32.reinterpret_i32 $push12=, $813762; NO-SIMD128-FAST-NEXT:    f32.lt $push14=, $pop13, $pop1213763; NO-SIMD128-FAST-NEXT:    i32.select $push15=, $8, $4, $pop1413764; NO-SIMD128-FAST-NEXT:    i32.store 12($0), $pop1513765; NO-SIMD128-FAST-NEXT:    return13766  %fx = bitcast <4 x i32> %x to <4 x float>13767  %fy = bitcast <4 x i32> %y to <4 x float>13768  %c = fcmp olt <4 x float> %fx, %fy13769  %a = select <4 x i1> %c, <4 x i32> %y, <4 x i32> %x13770  ret <4 x i32> %a13771}13772 13773define <4 x float> @add_v4f32(<4 x float> %x, <4 x float> %y) {13774; SIMD128-LABEL: add_v4f32:13775; SIMD128:         .functype add_v4f32 (v128, v128) -> (v128)13776; SIMD128-NEXT:  # %bb.0:13777; SIMD128-NEXT:    f32x4.add $push0=, $0, $113778; SIMD128-NEXT:    return $pop013779;13780; SIMD128-FAST-LABEL: add_v4f32:13781; SIMD128-FAST:         .functype add_v4f32 (v128, v128) -> (v128)13782; SIMD128-FAST-NEXT:  # %bb.0:13783; SIMD128-FAST-NEXT:    f32x4.add $push0=, $0, $113784; SIMD128-FAST-NEXT:    return $pop013785;13786; NO-SIMD128-LABEL: add_v4f32:13787; NO-SIMD128:         .functype add_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13788; NO-SIMD128-NEXT:  # %bb.0:13789; NO-SIMD128-NEXT:    f32.add $push0=, $4, $813790; NO-SIMD128-NEXT:    f32.store 12($0), $pop013791; NO-SIMD128-NEXT:    f32.add $push1=, $3, $713792; NO-SIMD128-NEXT:    f32.store 8($0), $pop113793; NO-SIMD128-NEXT:    f32.add $push2=, $2, $613794; NO-SIMD128-NEXT:    f32.store 4($0), $pop213795; NO-SIMD128-NEXT:    f32.add $push3=, $1, $513796; NO-SIMD128-NEXT:    f32.store 0($0), $pop313797; NO-SIMD128-NEXT:    return13798;13799; NO-SIMD128-FAST-LABEL: add_v4f32:13800; NO-SIMD128-FAST:         .functype add_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13801; NO-SIMD128-FAST-NEXT:  # %bb.0:13802; NO-SIMD128-FAST-NEXT:    f32.add $push0=, $1, $513803; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop013804; NO-SIMD128-FAST-NEXT:    f32.add $push1=, $2, $613805; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop113806; NO-SIMD128-FAST-NEXT:    f32.add $push2=, $3, $713807; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop213808; NO-SIMD128-FAST-NEXT:    f32.add $push3=, $4, $813809; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop313810; NO-SIMD128-FAST-NEXT:    return13811  %a = fadd <4 x float> %x, %y13812  ret <4 x float> %a13813}13814 13815define <4 x float> @sub_v4f32(<4 x float> %x, <4 x float> %y) {13816; SIMD128-LABEL: sub_v4f32:13817; SIMD128:         .functype sub_v4f32 (v128, v128) -> (v128)13818; SIMD128-NEXT:  # %bb.0:13819; SIMD128-NEXT:    f32x4.sub $push0=, $0, $113820; SIMD128-NEXT:    return $pop013821;13822; SIMD128-FAST-LABEL: sub_v4f32:13823; SIMD128-FAST:         .functype sub_v4f32 (v128, v128) -> (v128)13824; SIMD128-FAST-NEXT:  # %bb.0:13825; SIMD128-FAST-NEXT:    f32x4.sub $push0=, $0, $113826; SIMD128-FAST-NEXT:    return $pop013827;13828; NO-SIMD128-LABEL: sub_v4f32:13829; NO-SIMD128:         .functype sub_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13830; NO-SIMD128-NEXT:  # %bb.0:13831; NO-SIMD128-NEXT:    f32.sub $push0=, $4, $813832; NO-SIMD128-NEXT:    f32.store 12($0), $pop013833; NO-SIMD128-NEXT:    f32.sub $push1=, $3, $713834; NO-SIMD128-NEXT:    f32.store 8($0), $pop113835; NO-SIMD128-NEXT:    f32.sub $push2=, $2, $613836; NO-SIMD128-NEXT:    f32.store 4($0), $pop213837; NO-SIMD128-NEXT:    f32.sub $push3=, $1, $513838; NO-SIMD128-NEXT:    f32.store 0($0), $pop313839; NO-SIMD128-NEXT:    return13840;13841; NO-SIMD128-FAST-LABEL: sub_v4f32:13842; NO-SIMD128-FAST:         .functype sub_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13843; NO-SIMD128-FAST-NEXT:  # %bb.0:13844; NO-SIMD128-FAST-NEXT:    f32.sub $push0=, $1, $513845; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop013846; NO-SIMD128-FAST-NEXT:    f32.sub $push1=, $2, $613847; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop113848; NO-SIMD128-FAST-NEXT:    f32.sub $push2=, $3, $713849; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop213850; NO-SIMD128-FAST-NEXT:    f32.sub $push3=, $4, $813851; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop313852; NO-SIMD128-FAST-NEXT:    return13853  %a = fsub <4 x float> %x, %y13854  ret <4 x float> %a13855}13856 13857define <4 x float> @div_v4f32(<4 x float> %x, <4 x float> %y) {13858; SIMD128-LABEL: div_v4f32:13859; SIMD128:         .functype div_v4f32 (v128, v128) -> (v128)13860; SIMD128-NEXT:  # %bb.0:13861; SIMD128-NEXT:    f32x4.div $push0=, $0, $113862; SIMD128-NEXT:    return $pop013863;13864; SIMD128-FAST-LABEL: div_v4f32:13865; SIMD128-FAST:         .functype div_v4f32 (v128, v128) -> (v128)13866; SIMD128-FAST-NEXT:  # %bb.0:13867; SIMD128-FAST-NEXT:    f32x4.div $push0=, $0, $113868; SIMD128-FAST-NEXT:    return $pop013869;13870; NO-SIMD128-LABEL: div_v4f32:13871; NO-SIMD128:         .functype div_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13872; NO-SIMD128-NEXT:  # %bb.0:13873; NO-SIMD128-NEXT:    f32.div $push0=, $4, $813874; NO-SIMD128-NEXT:    f32.store 12($0), $pop013875; NO-SIMD128-NEXT:    f32.div $push1=, $3, $713876; NO-SIMD128-NEXT:    f32.store 8($0), $pop113877; NO-SIMD128-NEXT:    f32.div $push2=, $2, $613878; NO-SIMD128-NEXT:    f32.store 4($0), $pop213879; NO-SIMD128-NEXT:    f32.div $push3=, $1, $513880; NO-SIMD128-NEXT:    f32.store 0($0), $pop313881; NO-SIMD128-NEXT:    return13882;13883; NO-SIMD128-FAST-LABEL: div_v4f32:13884; NO-SIMD128-FAST:         .functype div_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13885; NO-SIMD128-FAST-NEXT:  # %bb.0:13886; NO-SIMD128-FAST-NEXT:    f32.div $push0=, $1, $513887; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop013888; NO-SIMD128-FAST-NEXT:    f32.div $push1=, $2, $613889; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop113890; NO-SIMD128-FAST-NEXT:    f32.div $push2=, $3, $713891; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop213892; NO-SIMD128-FAST-NEXT:    f32.div $push3=, $4, $813893; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop313894; NO-SIMD128-FAST-NEXT:    return13895  %a = fdiv <4 x float> %x, %y13896  ret <4 x float> %a13897}13898 13899define <4 x float> @mul_v4f32(<4 x float> %x, <4 x float> %y) {13900; SIMD128-LABEL: mul_v4f32:13901; SIMD128:         .functype mul_v4f32 (v128, v128) -> (v128)13902; SIMD128-NEXT:  # %bb.0:13903; SIMD128-NEXT:    f32x4.mul $push0=, $0, $113904; SIMD128-NEXT:    return $pop013905;13906; SIMD128-FAST-LABEL: mul_v4f32:13907; SIMD128-FAST:         .functype mul_v4f32 (v128, v128) -> (v128)13908; SIMD128-FAST-NEXT:  # %bb.0:13909; SIMD128-FAST-NEXT:    f32x4.mul $push0=, $0, $113910; SIMD128-FAST-NEXT:    return $pop013911;13912; NO-SIMD128-LABEL: mul_v4f32:13913; NO-SIMD128:         .functype mul_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13914; NO-SIMD128-NEXT:  # %bb.0:13915; NO-SIMD128-NEXT:    f32.mul $push0=, $4, $813916; NO-SIMD128-NEXT:    f32.store 12($0), $pop013917; NO-SIMD128-NEXT:    f32.mul $push1=, $3, $713918; NO-SIMD128-NEXT:    f32.store 8($0), $pop113919; NO-SIMD128-NEXT:    f32.mul $push2=, $2, $613920; NO-SIMD128-NEXT:    f32.store 4($0), $pop213921; NO-SIMD128-NEXT:    f32.mul $push3=, $1, $513922; NO-SIMD128-NEXT:    f32.store 0($0), $pop313923; NO-SIMD128-NEXT:    return13924;13925; NO-SIMD128-FAST-LABEL: mul_v4f32:13926; NO-SIMD128-FAST:         .functype mul_v4f32 (i32, f32, f32, f32, f32, f32, f32, f32, f32) -> ()13927; NO-SIMD128-FAST-NEXT:  # %bb.0:13928; NO-SIMD128-FAST-NEXT:    f32.mul $push0=, $1, $513929; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop013930; NO-SIMD128-FAST-NEXT:    f32.mul $push1=, $2, $613931; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop113932; NO-SIMD128-FAST-NEXT:    f32.mul $push2=, $3, $713933; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop213934; NO-SIMD128-FAST-NEXT:    f32.mul $push3=, $4, $813935; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop313936; NO-SIMD128-FAST-NEXT:    return13937  %a = fmul <4 x float> %x, %y13938  ret <4 x float> %a13939}13940 13941declare <4 x float> @llvm.sqrt.v4f32(<4 x float> %x)13942define <4 x float> @sqrt_v4f32(<4 x float> %x) {13943; SIMD128-LABEL: sqrt_v4f32:13944; SIMD128:         .functype sqrt_v4f32 (v128) -> (v128)13945; SIMD128-NEXT:  # %bb.0:13946; SIMD128-NEXT:    f32x4.sqrt $push0=, $013947; SIMD128-NEXT:    return $pop013948;13949; SIMD128-FAST-LABEL: sqrt_v4f32:13950; SIMD128-FAST:         .functype sqrt_v4f32 (v128) -> (v128)13951; SIMD128-FAST-NEXT:  # %bb.0:13952; SIMD128-FAST-NEXT:    f32x4.sqrt $push0=, $013953; SIMD128-FAST-NEXT:    return $pop013954;13955; NO-SIMD128-LABEL: sqrt_v4f32:13956; NO-SIMD128:         .functype sqrt_v4f32 (i32, f32, f32, f32, f32) -> ()13957; NO-SIMD128-NEXT:  # %bb.0:13958; NO-SIMD128-NEXT:    f32.sqrt $push0=, $413959; NO-SIMD128-NEXT:    f32.store 12($0), $pop013960; NO-SIMD128-NEXT:    f32.sqrt $push1=, $313961; NO-SIMD128-NEXT:    f32.store 8($0), $pop113962; NO-SIMD128-NEXT:    f32.sqrt $push2=, $213963; NO-SIMD128-NEXT:    f32.store 4($0), $pop213964; NO-SIMD128-NEXT:    f32.sqrt $push3=, $113965; NO-SIMD128-NEXT:    f32.store 0($0), $pop313966; NO-SIMD128-NEXT:    return13967;13968; NO-SIMD128-FAST-LABEL: sqrt_v4f32:13969; NO-SIMD128-FAST:         .functype sqrt_v4f32 (i32, f32, f32, f32, f32) -> ()13970; NO-SIMD128-FAST-NEXT:  # %bb.0:13971; NO-SIMD128-FAST-NEXT:    f32.sqrt $push0=, $113972; NO-SIMD128-FAST-NEXT:    f32.store 0($0), $pop013973; NO-SIMD128-FAST-NEXT:    f32.sqrt $push1=, $213974; NO-SIMD128-FAST-NEXT:    f32.store 4($0), $pop113975; NO-SIMD128-FAST-NEXT:    f32.sqrt $push2=, $313976; NO-SIMD128-FAST-NEXT:    f32.store 8($0), $pop213977; NO-SIMD128-FAST-NEXT:    f32.sqrt $push3=, $413978; NO-SIMD128-FAST-NEXT:    f32.store 12($0), $pop313979; NO-SIMD128-FAST-NEXT:    return13980  %a = call <4 x float> @llvm.sqrt.v4f32(<4 x float> %x)13981  ret <4 x float> %a13982}13983 13984; ==============================================================================13985; 2 x double13986; ==============================================================================13987define <2 x double> @neg_v2f64(<2 x double> %x) {13988  ; nsz makes this semantically equivalent to flipping sign bit13989; SIMD128-LABEL: neg_v2f64:13990; SIMD128:         .functype neg_v2f64 (v128) -> (v128)13991; SIMD128-NEXT:  # %bb.0:13992; SIMD128-NEXT:    f64x2.neg $push0=, $013993; SIMD128-NEXT:    return $pop013994;13995; SIMD128-FAST-LABEL: neg_v2f64:13996; SIMD128-FAST:         .functype neg_v2f64 (v128) -> (v128)13997; SIMD128-FAST-NEXT:  # %bb.0:13998; SIMD128-FAST-NEXT:    f64x2.neg $push0=, $013999; SIMD128-FAST-NEXT:    return $pop014000;14001; NO-SIMD128-LABEL: neg_v2f64:14002; NO-SIMD128:         .functype neg_v2f64 (i32, f64, f64) -> ()14003; NO-SIMD128-NEXT:  # %bb.0:14004; NO-SIMD128-NEXT:    f64.neg $push0=, $214005; NO-SIMD128-NEXT:    f64.store 8($0), $pop014006; NO-SIMD128-NEXT:    f64.neg $push1=, $114007; NO-SIMD128-NEXT:    f64.store 0($0), $pop114008; NO-SIMD128-NEXT:    return14009;14010; NO-SIMD128-FAST-LABEL: neg_v2f64:14011; NO-SIMD128-FAST:         .functype neg_v2f64 (i32, f64, f64) -> ()14012; NO-SIMD128-FAST-NEXT:  # %bb.0:14013; NO-SIMD128-FAST-NEXT:    f64.neg $push0=, $114014; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014015; NO-SIMD128-FAST-NEXT:    f64.neg $push1=, $214016; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114017; NO-SIMD128-FAST-NEXT:    return14018  %a = fsub nsz <2 x double> <double 0., double 0.>, %x14019  ret <2 x double> %a14020}14021 14022declare <2 x double> @llvm.fabs.v2f64(<2 x double>) nounwind readnone14023define <2 x double> @abs_v2f64(<2 x double> %x) {14024; SIMD128-LABEL: abs_v2f64:14025; SIMD128:         .functype abs_v2f64 (v128) -> (v128)14026; SIMD128-NEXT:  # %bb.0:14027; SIMD128-NEXT:    f64x2.abs $push0=, $014028; SIMD128-NEXT:    return $pop014029;14030; SIMD128-FAST-LABEL: abs_v2f64:14031; SIMD128-FAST:         .functype abs_v2f64 (v128) -> (v128)14032; SIMD128-FAST-NEXT:  # %bb.0:14033; SIMD128-FAST-NEXT:    f64x2.abs $push0=, $014034; SIMD128-FAST-NEXT:    return $pop014035;14036; NO-SIMD128-LABEL: abs_v2f64:14037; NO-SIMD128:         .functype abs_v2f64 (i32, f64, f64) -> ()14038; NO-SIMD128-NEXT:  # %bb.0:14039; NO-SIMD128-NEXT:    f64.abs $push0=, $214040; NO-SIMD128-NEXT:    f64.store 8($0), $pop014041; NO-SIMD128-NEXT:    f64.abs $push1=, $114042; NO-SIMD128-NEXT:    f64.store 0($0), $pop114043; NO-SIMD128-NEXT:    return14044;14045; NO-SIMD128-FAST-LABEL: abs_v2f64:14046; NO-SIMD128-FAST:         .functype abs_v2f64 (i32, f64, f64) -> ()14047; NO-SIMD128-FAST-NEXT:  # %bb.0:14048; NO-SIMD128-FAST-NEXT:    f64.abs $push0=, $114049; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014050; NO-SIMD128-FAST-NEXT:    f64.abs $push1=, $214051; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114052; NO-SIMD128-FAST-NEXT:    return14053  %a = call <2 x double> @llvm.fabs.v2f64(<2 x double> %x)14054  ret <2 x double> %a14055}14056 14057define <2 x double> @min_unordered_v2f64(<2 x double> %x) {14058; SIMD128-LABEL: min_unordered_v2f64:14059; SIMD128:         .functype min_unordered_v2f64 (v128) -> (v128)14060; SIMD128-NEXT:  # %bb.0:14061; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214062; SIMD128-NEXT:    f64x2.pmin $push1=, $0, $pop014063; SIMD128-NEXT:    return $pop114064;14065; SIMD128-FAST-LABEL: min_unordered_v2f64:14066; SIMD128-FAST:         .functype min_unordered_v2f64 (v128) -> (v128)14067; SIMD128-FAST-NEXT:  # %bb.0:14068; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p214069; SIMD128-FAST-NEXT:    f64x2.pmin $push0=, $0, $pop114070; SIMD128-FAST-NEXT:    return $pop014071;14072; NO-SIMD128-LABEL: min_unordered_v2f64:14073; NO-SIMD128:         .functype min_unordered_v2f64 (i32, f64, f64) -> ()14074; NO-SIMD128-NEXT:  # %bb.0:14075; NO-SIMD128-NEXT:    f64.const $push0=, 0x1.4p214076; NO-SIMD128-NEXT:    f64.const $push7=, 0x1.4p214077; NO-SIMD128-NEXT:    f64.gt $push1=, $2, $pop714078; NO-SIMD128-NEXT:    f64.select $push2=, $pop0, $2, $pop114079; NO-SIMD128-NEXT:    f64.store 8($0), $pop214080; NO-SIMD128-NEXT:    f64.const $push6=, 0x1.4p214081; NO-SIMD128-NEXT:    f64.const $push5=, 0x1.4p214082; NO-SIMD128-NEXT:    f64.gt $push3=, $1, $pop514083; NO-SIMD128-NEXT:    f64.select $push4=, $pop6, $1, $pop314084; NO-SIMD128-NEXT:    f64.store 0($0), $pop414085; NO-SIMD128-NEXT:    return14086;14087; NO-SIMD128-FAST-LABEL: min_unordered_v2f64:14088; NO-SIMD128-FAST:         .functype min_unordered_v2f64 (i32, f64, f64) -> ()14089; NO-SIMD128-FAST-NEXT:  # %bb.0:14090; NO-SIMD128-FAST-NEXT:    f64.const $push0=, 0x1.4p214091; NO-SIMD128-FAST-NEXT:    f64.const $push7=, 0x1.4p214092; NO-SIMD128-FAST-NEXT:    f64.gt $push1=, $1, $pop714093; NO-SIMD128-FAST-NEXT:    f64.select $push2=, $pop0, $1, $pop114094; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop214095; NO-SIMD128-FAST-NEXT:    f64.const $push6=, 0x1.4p214096; NO-SIMD128-FAST-NEXT:    f64.const $push5=, 0x1.4p214097; NO-SIMD128-FAST-NEXT:    f64.gt $push3=, $2, $pop514098; NO-SIMD128-FAST-NEXT:    f64.select $push4=, $pop6, $2, $pop314099; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop414100; NO-SIMD128-FAST-NEXT:    return14101  %cmps = fcmp ule <2 x double> %x, <double 5., double 5.>14102  %a = select <2 x i1> %cmps, <2 x double> %x,14103    <2 x double> <double 5., double 5.>14104  ret <2 x double> %a14105}14106 14107define <2 x double> @max_unordered_v2f64(<2 x double> %x) {14108; SIMD128-LABEL: max_unordered_v2f64:14109; SIMD128:         .functype max_unordered_v2f64 (v128) -> (v128)14110; SIMD128-NEXT:  # %bb.0:14111; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214112; SIMD128-NEXT:    f64x2.pmax $push1=, $0, $pop014113; SIMD128-NEXT:    return $pop114114;14115; SIMD128-FAST-LABEL: max_unordered_v2f64:14116; SIMD128-FAST:         .functype max_unordered_v2f64 (v128) -> (v128)14117; SIMD128-FAST-NEXT:  # %bb.0:14118; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p214119; SIMD128-FAST-NEXT:    f64x2.pmax $push0=, $0, $pop114120; SIMD128-FAST-NEXT:    return $pop014121;14122; NO-SIMD128-LABEL: max_unordered_v2f64:14123; NO-SIMD128:         .functype max_unordered_v2f64 (i32, f64, f64) -> ()14124; NO-SIMD128-NEXT:  # %bb.0:14125; NO-SIMD128-NEXT:    f64.const $push0=, 0x1.4p214126; NO-SIMD128-NEXT:    f64.const $push7=, 0x1.4p214127; NO-SIMD128-NEXT:    f64.lt $push1=, $2, $pop714128; NO-SIMD128-NEXT:    f64.select $push2=, $pop0, $2, $pop114129; NO-SIMD128-NEXT:    f64.store 8($0), $pop214130; NO-SIMD128-NEXT:    f64.const $push6=, 0x1.4p214131; NO-SIMD128-NEXT:    f64.const $push5=, 0x1.4p214132; NO-SIMD128-NEXT:    f64.lt $push3=, $1, $pop514133; NO-SIMD128-NEXT:    f64.select $push4=, $pop6, $1, $pop314134; NO-SIMD128-NEXT:    f64.store 0($0), $pop414135; NO-SIMD128-NEXT:    return14136;14137; NO-SIMD128-FAST-LABEL: max_unordered_v2f64:14138; NO-SIMD128-FAST:         .functype max_unordered_v2f64 (i32, f64, f64) -> ()14139; NO-SIMD128-FAST-NEXT:  # %bb.0:14140; NO-SIMD128-FAST-NEXT:    f64.const $push0=, 0x1.4p214141; NO-SIMD128-FAST-NEXT:    f64.const $push7=, 0x1.4p214142; NO-SIMD128-FAST-NEXT:    f64.lt $push1=, $1, $pop714143; NO-SIMD128-FAST-NEXT:    f64.select $push2=, $pop0, $1, $pop114144; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop214145; NO-SIMD128-FAST-NEXT:    f64.const $push6=, 0x1.4p214146; NO-SIMD128-FAST-NEXT:    f64.const $push5=, 0x1.4p214147; NO-SIMD128-FAST-NEXT:    f64.lt $push3=, $2, $pop514148; NO-SIMD128-FAST-NEXT:    f64.select $push4=, $pop6, $2, $pop314149; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop414150; NO-SIMD128-FAST-NEXT:    return14151  %cmps = fcmp uge <2 x double> %x, <double 5., double 5.>14152  %a = select <2 x i1> %cmps, <2 x double> %x,14153    <2 x double> <double 5., double 5.>14154  ret <2 x double> %a14155}14156 14157define <2 x double> @min_ordered_v2f64(<2 x double> %x) {14158; SIMD128-LABEL: min_ordered_v2f64:14159; SIMD128:         .functype min_ordered_v2f64 (v128) -> (v128)14160; SIMD128-NEXT:  # %bb.0:14161; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214162; SIMD128-NEXT:    f64x2.pmin $push1=, $0, $pop014163; SIMD128-NEXT:    return $pop114164;14165; SIMD128-FAST-LABEL: min_ordered_v2f64:14166; SIMD128-FAST:         .functype min_ordered_v2f64 (v128) -> (v128)14167; SIMD128-FAST-NEXT:  # %bb.0:14168; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p214169; SIMD128-FAST-NEXT:    f64x2.pmin $push0=, $0, $pop114170; SIMD128-FAST-NEXT:    return $pop014171;14172; NO-SIMD128-LABEL: min_ordered_v2f64:14173; NO-SIMD128:         .functype min_ordered_v2f64 (i32, f64, f64) -> ()14174; NO-SIMD128-NEXT:  # %bb.0:14175; NO-SIMD128-NEXT:    f64.const $push0=, 0x1.4p214176; NO-SIMD128-NEXT:    f64.const $push7=, 0x1.4p214177; NO-SIMD128-NEXT:    f64.ge $push1=, $2, $pop714178; NO-SIMD128-NEXT:    f64.select $push2=, $pop0, $2, $pop114179; NO-SIMD128-NEXT:    f64.store 8($0), $pop214180; NO-SIMD128-NEXT:    f64.const $push6=, 0x1.4p214181; NO-SIMD128-NEXT:    f64.const $push5=, 0x1.4p214182; NO-SIMD128-NEXT:    f64.ge $push3=, $1, $pop514183; NO-SIMD128-NEXT:    f64.select $push4=, $pop6, $1, $pop314184; NO-SIMD128-NEXT:    f64.store 0($0), $pop414185; NO-SIMD128-NEXT:    return14186;14187; NO-SIMD128-FAST-LABEL: min_ordered_v2f64:14188; NO-SIMD128-FAST:         .functype min_ordered_v2f64 (i32, f64, f64) -> ()14189; NO-SIMD128-FAST-NEXT:  # %bb.0:14190; NO-SIMD128-FAST-NEXT:    f64.const $push0=, 0x1.4p214191; NO-SIMD128-FAST-NEXT:    f64.const $push7=, 0x1.4p214192; NO-SIMD128-FAST-NEXT:    f64.ge $push1=, $1, $pop714193; NO-SIMD128-FAST-NEXT:    f64.select $push2=, $pop0, $1, $pop114194; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop214195; NO-SIMD128-FAST-NEXT:    f64.const $push6=, 0x1.4p214196; NO-SIMD128-FAST-NEXT:    f64.const $push5=, 0x1.4p214197; NO-SIMD128-FAST-NEXT:    f64.ge $push3=, $2, $pop514198; NO-SIMD128-FAST-NEXT:    f64.select $push4=, $pop6, $2, $pop314199; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop414200; NO-SIMD128-FAST-NEXT:    return14201  %cmps = fcmp ole <2 x double> <double 5., double 5.>, %x14202  %a = select <2 x i1> %cmps, <2 x double> <double 5., double 5.>,14203    <2 x double> %x14204  ret <2 x double> %a14205}14206 14207define <2 x double> @max_ordered_v2f64(<2 x double> %x) {14208; SIMD128-LABEL: max_ordered_v2f64:14209; SIMD128:         .functype max_ordered_v2f64 (v128) -> (v128)14210; SIMD128-NEXT:  # %bb.0:14211; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214212; SIMD128-NEXT:    f64x2.pmax $push1=, $0, $pop014213; SIMD128-NEXT:    return $pop114214;14215; SIMD128-FAST-LABEL: max_ordered_v2f64:14216; SIMD128-FAST:         .functype max_ordered_v2f64 (v128) -> (v128)14217; SIMD128-FAST-NEXT:  # %bb.0:14218; SIMD128-FAST-NEXT:    v128.const $push1=, 0x1.4p2, 0x1.4p214219; SIMD128-FAST-NEXT:    f64x2.pmax $push0=, $0, $pop114220; SIMD128-FAST-NEXT:    return $pop014221;14222; NO-SIMD128-LABEL: max_ordered_v2f64:14223; NO-SIMD128:         .functype max_ordered_v2f64 (i32, f64, f64) -> ()14224; NO-SIMD128-NEXT:  # %bb.0:14225; NO-SIMD128-NEXT:    f64.const $push0=, 0x1.4p214226; NO-SIMD128-NEXT:    f64.const $push7=, 0x1.4p214227; NO-SIMD128-NEXT:    f64.le $push1=, $2, $pop714228; NO-SIMD128-NEXT:    f64.select $push2=, $pop0, $2, $pop114229; NO-SIMD128-NEXT:    f64.store 8($0), $pop214230; NO-SIMD128-NEXT:    f64.const $push6=, 0x1.4p214231; NO-SIMD128-NEXT:    f64.const $push5=, 0x1.4p214232; NO-SIMD128-NEXT:    f64.le $push3=, $1, $pop514233; NO-SIMD128-NEXT:    f64.select $push4=, $pop6, $1, $pop314234; NO-SIMD128-NEXT:    f64.store 0($0), $pop414235; NO-SIMD128-NEXT:    return14236;14237; NO-SIMD128-FAST-LABEL: max_ordered_v2f64:14238; NO-SIMD128-FAST:         .functype max_ordered_v2f64 (i32, f64, f64) -> ()14239; NO-SIMD128-FAST-NEXT:  # %bb.0:14240; NO-SIMD128-FAST-NEXT:    f64.const $push0=, 0x1.4p214241; NO-SIMD128-FAST-NEXT:    f64.const $push7=, 0x1.4p214242; NO-SIMD128-FAST-NEXT:    f64.le $push1=, $1, $pop714243; NO-SIMD128-FAST-NEXT:    f64.select $push2=, $pop0, $1, $pop114244; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop214245; NO-SIMD128-FAST-NEXT:    f64.const $push6=, 0x1.4p214246; NO-SIMD128-FAST-NEXT:    f64.const $push5=, 0x1.4p214247; NO-SIMD128-FAST-NEXT:    f64.le $push3=, $2, $pop514248; NO-SIMD128-FAST-NEXT:    f64.select $push4=, $pop6, $2, $pop314249; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop414250; NO-SIMD128-FAST-NEXT:    return14251  %cmps = fcmp oge <2 x double> <double 5., double 5.>, %x14252  %a = select <2 x i1> %cmps, <2 x double> <double 5., double 5.>,14253    <2 x double> %x14254  ret <2 x double> %a14255}14256 14257declare <2 x double> @llvm.minimum.v2f64(<2 x double>, <2 x double>)14258define <2 x double> @min_intrinsic_v2f64(<2 x double> %x, <2 x double> %y) {14259; SIMD128-LABEL: min_intrinsic_v2f64:14260; SIMD128:         .functype min_intrinsic_v2f64 (v128, v128) -> (v128)14261; SIMD128-NEXT:  # %bb.0:14262; SIMD128-NEXT:    f64x2.min $push0=, $0, $114263; SIMD128-NEXT:    return $pop014264;14265; SIMD128-FAST-LABEL: min_intrinsic_v2f64:14266; SIMD128-FAST:         .functype min_intrinsic_v2f64 (v128, v128) -> (v128)14267; SIMD128-FAST-NEXT:  # %bb.0:14268; SIMD128-FAST-NEXT:    f64x2.min $push0=, $0, $114269; SIMD128-FAST-NEXT:    return $pop014270;14271; NO-SIMD128-LABEL: min_intrinsic_v2f64:14272; NO-SIMD128:         .functype min_intrinsic_v2f64 (i32, f64, f64, f64, f64) -> ()14273; NO-SIMD128-NEXT:  # %bb.0:14274; NO-SIMD128-NEXT:    f64.min $push0=, $2, $414275; NO-SIMD128-NEXT:    f64.store 8($0), $pop014276; NO-SIMD128-NEXT:    f64.min $push1=, $1, $314277; NO-SIMD128-NEXT:    f64.store 0($0), $pop114278; NO-SIMD128-NEXT:    return14279;14280; NO-SIMD128-FAST-LABEL: min_intrinsic_v2f64:14281; NO-SIMD128-FAST:         .functype min_intrinsic_v2f64 (i32, f64, f64, f64, f64) -> ()14282; NO-SIMD128-FAST-NEXT:  # %bb.0:14283; NO-SIMD128-FAST-NEXT:    f64.min $push0=, $1, $314284; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014285; NO-SIMD128-FAST-NEXT:    f64.min $push1=, $2, $414286; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114287; NO-SIMD128-FAST-NEXT:    return14288  %a = call <2 x double> @llvm.minimum.v2f64(<2 x double> %x, <2 x double> %y)14289  ret <2 x double> %a14290}14291 14292declare <2 x double> @llvm.maximum.v2f64(<2 x double>, <2 x double>)14293define <2 x double> @max_intrinsic_v2f64(<2 x double> %x, <2 x double> %y) {14294; SIMD128-LABEL: max_intrinsic_v2f64:14295; SIMD128:         .functype max_intrinsic_v2f64 (v128, v128) -> (v128)14296; SIMD128-NEXT:  # %bb.0:14297; SIMD128-NEXT:    f64x2.max $push0=, $0, $114298; SIMD128-NEXT:    return $pop014299;14300; SIMD128-FAST-LABEL: max_intrinsic_v2f64:14301; SIMD128-FAST:         .functype max_intrinsic_v2f64 (v128, v128) -> (v128)14302; SIMD128-FAST-NEXT:  # %bb.0:14303; SIMD128-FAST-NEXT:    f64x2.max $push0=, $0, $114304; SIMD128-FAST-NEXT:    return $pop014305;14306; NO-SIMD128-LABEL: max_intrinsic_v2f64:14307; NO-SIMD128:         .functype max_intrinsic_v2f64 (i32, f64, f64, f64, f64) -> ()14308; NO-SIMD128-NEXT:  # %bb.0:14309; NO-SIMD128-NEXT:    f64.max $push0=, $2, $414310; NO-SIMD128-NEXT:    f64.store 8($0), $pop014311; NO-SIMD128-NEXT:    f64.max $push1=, $1, $314312; NO-SIMD128-NEXT:    f64.store 0($0), $pop114313; NO-SIMD128-NEXT:    return14314;14315; NO-SIMD128-FAST-LABEL: max_intrinsic_v2f64:14316; NO-SIMD128-FAST:         .functype max_intrinsic_v2f64 (i32, f64, f64, f64, f64) -> ()14317; NO-SIMD128-FAST-NEXT:  # %bb.0:14318; NO-SIMD128-FAST-NEXT:    f64.max $push0=, $1, $314319; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014320; NO-SIMD128-FAST-NEXT:    f64.max $push1=, $2, $414321; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114322; NO-SIMD128-FAST-NEXT:    return14323  %a = call <2 x double> @llvm.maximum.v2f64(<2 x double> %x, <2 x double> %y)14324  ret <2 x double> %a14325}14326 14327define <2 x double> @min_const_intrinsic_v2f64() {14328; SIMD128-LABEL: min_const_intrinsic_v2f64:14329; SIMD128:         .functype min_const_intrinsic_v2f64 () -> (v128)14330; SIMD128-NEXT:  # %bb.0:14331; SIMD128-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214332; SIMD128-NEXT:    return $pop014333;14334; SIMD128-FAST-LABEL: min_const_intrinsic_v2f64:14335; SIMD128-FAST:         .functype min_const_intrinsic_v2f64 () -> (v128)14336; SIMD128-FAST-NEXT:  # %bb.0:14337; SIMD128-FAST-NEXT:    v128.const $push0=, 0x1.4p2, 0x1.4p214338; SIMD128-FAST-NEXT:    return $pop014339;14340; NO-SIMD128-LABEL: min_const_intrinsic_v2f64:14341; NO-SIMD128:         .functype min_const_intrinsic_v2f64 (i32) -> ()14342; NO-SIMD128-NEXT:  # %bb.0:14343; NO-SIMD128-NEXT:    i64.const $push0=, 461731551796160102414344; NO-SIMD128-NEXT:    i64.store 8($0), $pop014345; NO-SIMD128-NEXT:    i64.const $push1=, 461731551796160102414346; NO-SIMD128-NEXT:    i64.store 0($0), $pop114347; NO-SIMD128-NEXT:    return14348;14349; NO-SIMD128-FAST-LABEL: min_const_intrinsic_v2f64:14350; NO-SIMD128-FAST:         .functype min_const_intrinsic_v2f64 (i32) -> ()14351; NO-SIMD128-FAST-NEXT:  # %bb.0:14352; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 461731551796160102414353; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop014354; NO-SIMD128-FAST-NEXT:    i64.const $push1=, 461731551796160102414355; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop114356; NO-SIMD128-FAST-NEXT:    return14357  %a = call <2 x double> @llvm.minimum.v2f64(14358    <2 x double> <double 42., double 42.>,14359    <2 x double> <double 5., double 5.>14360  )14361  ret <2 x double> %a14362}14363 14364define <2 x double> @max_const_intrinsic_v2f64() {14365; SIMD128-LABEL: max_const_intrinsic_v2f64:14366; SIMD128:         .functype max_const_intrinsic_v2f64 () -> (v128)14367; SIMD128-NEXT:  # %bb.0:14368; SIMD128-NEXT:    v128.const $push0=, 0x1.5p5, 0x1.5p514369; SIMD128-NEXT:    return $pop014370;14371; SIMD128-FAST-LABEL: max_const_intrinsic_v2f64:14372; SIMD128-FAST:         .functype max_const_intrinsic_v2f64 () -> (v128)14373; SIMD128-FAST-NEXT:  # %bb.0:14374; SIMD128-FAST-NEXT:    v128.const $push0=, 0x1.5p5, 0x1.5p514375; SIMD128-FAST-NEXT:    return $pop014376;14377; NO-SIMD128-LABEL: max_const_intrinsic_v2f64:14378; NO-SIMD128:         .functype max_const_intrinsic_v2f64 (i32) -> ()14379; NO-SIMD128-NEXT:  # %bb.0:14380; NO-SIMD128-NEXT:    i64.const $push0=, 463110779182042316814381; NO-SIMD128-NEXT:    i64.store 8($0), $pop014382; NO-SIMD128-NEXT:    i64.const $push1=, 463110779182042316814383; NO-SIMD128-NEXT:    i64.store 0($0), $pop114384; NO-SIMD128-NEXT:    return14385;14386; NO-SIMD128-FAST-LABEL: max_const_intrinsic_v2f64:14387; NO-SIMD128-FAST:         .functype max_const_intrinsic_v2f64 (i32) -> ()14388; NO-SIMD128-FAST-NEXT:  # %bb.0:14389; NO-SIMD128-FAST-NEXT:    i64.const $push0=, 463110779182042316814390; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop014391; NO-SIMD128-FAST-NEXT:    i64.const $push1=, 463110779182042316814392; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop114393; NO-SIMD128-FAST-NEXT:    return14394  %a = call <2 x double> @llvm.maximum.v2f64(14395    <2 x double> <double 42., double 42.>,14396    <2 x double> <double 5., double 5.>14397  )14398  ret <2 x double> %a14399}14400 14401define <2 x double> @pmin_v2f64(<2 x double> %x, <2 x double> %y) {14402; SIMD128-LABEL: pmin_v2f64:14403; SIMD128:         .functype pmin_v2f64 (v128, v128) -> (v128)14404; SIMD128-NEXT:  # %bb.0:14405; SIMD128-NEXT:    f64x2.pmin $push0=, $0, $114406; SIMD128-NEXT:    return $pop014407;14408; SIMD128-FAST-LABEL: pmin_v2f64:14409; SIMD128-FAST:         .functype pmin_v2f64 (v128, v128) -> (v128)14410; SIMD128-FAST-NEXT:  # %bb.0:14411; SIMD128-FAST-NEXT:    f64x2.pmin $push0=, $0, $114412; SIMD128-FAST-NEXT:    return $pop014413;14414; NO-SIMD128-LABEL: pmin_v2f64:14415; NO-SIMD128:         .functype pmin_v2f64 (i32, f64, f64, f64, f64) -> ()14416; NO-SIMD128-NEXT:  # %bb.0:14417; NO-SIMD128-NEXT:    f64.lt $push0=, $4, $214418; NO-SIMD128-NEXT:    f64.select $push1=, $4, $2, $pop014419; NO-SIMD128-NEXT:    f64.store 8($0), $pop114420; NO-SIMD128-NEXT:    f64.lt $push2=, $3, $114421; NO-SIMD128-NEXT:    f64.select $push3=, $3, $1, $pop214422; NO-SIMD128-NEXT:    f64.store 0($0), $pop314423; NO-SIMD128-NEXT:    return14424;14425; NO-SIMD128-FAST-LABEL: pmin_v2f64:14426; NO-SIMD128-FAST:         .functype pmin_v2f64 (i32, f64, f64, f64, f64) -> ()14427; NO-SIMD128-FAST-NEXT:  # %bb.0:14428; NO-SIMD128-FAST-NEXT:    f64.lt $push0=, $3, $114429; NO-SIMD128-FAST-NEXT:    f64.select $push1=, $3, $1, $pop014430; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop114431; NO-SIMD128-FAST-NEXT:    f64.lt $push2=, $4, $214432; NO-SIMD128-FAST-NEXT:    f64.select $push3=, $4, $2, $pop214433; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop314434; NO-SIMD128-FAST-NEXT:    return14435  %c = fcmp olt <2 x double> %y, %x14436  %a = select <2 x i1> %c, <2 x double> %y, <2 x double> %x14437  ret <2 x double> %a14438}14439 14440define <2 x i64> @pmin_int_v2f64(<2 x i64> %x, <2 x i64> %y) {14441; SIMD128-LABEL: pmin_int_v2f64:14442; SIMD128:         .functype pmin_int_v2f64 (v128, v128) -> (v128)14443; SIMD128-NEXT:  # %bb.0:14444; SIMD128-NEXT:    f64x2.pmin $push0=, $0, $114445; SIMD128-NEXT:    return $pop014446;14447; SIMD128-FAST-LABEL: pmin_int_v2f64:14448; SIMD128-FAST:         .functype pmin_int_v2f64 (v128, v128) -> (v128)14449; SIMD128-FAST-NEXT:  # %bb.0:14450; SIMD128-FAST-NEXT:    f64x2.pmin $push0=, $0, $114451; SIMD128-FAST-NEXT:    return $pop014452;14453; NO-SIMD128-LABEL: pmin_int_v2f64:14454; NO-SIMD128:         .functype pmin_int_v2f64 (i32, i64, i64, i64, i64) -> ()14455; NO-SIMD128-NEXT:  # %bb.0:14456; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push1=, $414457; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push0=, $214458; NO-SIMD128-NEXT:    f64.lt $push2=, $pop1, $pop014459; NO-SIMD128-NEXT:    i64.select $push3=, $4, $2, $pop214460; NO-SIMD128-NEXT:    i64.store 8($0), $pop314461; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push5=, $314462; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push4=, $114463; NO-SIMD128-NEXT:    f64.lt $push6=, $pop5, $pop414464; NO-SIMD128-NEXT:    i64.select $push7=, $3, $1, $pop614465; NO-SIMD128-NEXT:    i64.store 0($0), $pop714466; NO-SIMD128-NEXT:    return14467;14468; NO-SIMD128-FAST-LABEL: pmin_int_v2f64:14469; NO-SIMD128-FAST:         .functype pmin_int_v2f64 (i32, i64, i64, i64, i64) -> ()14470; NO-SIMD128-FAST-NEXT:  # %bb.0:14471; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push1=, $314472; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push0=, $114473; NO-SIMD128-FAST-NEXT:    f64.lt $push2=, $pop1, $pop014474; NO-SIMD128-FAST-NEXT:    i64.select $push3=, $3, $1, $pop214475; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop314476; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push5=, $414477; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push4=, $214478; NO-SIMD128-FAST-NEXT:    f64.lt $push6=, $pop5, $pop414479; NO-SIMD128-FAST-NEXT:    i64.select $push7=, $4, $2, $pop614480; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop714481; NO-SIMD128-FAST-NEXT:    return14482  %fx = bitcast <2 x i64> %x to <2 x double>14483  %fy = bitcast <2 x i64> %y to <2 x double>14484  %c = fcmp olt <2 x double> %fy, %fx14485  %a = select <2 x i1> %c, <2 x i64> %y, <2 x i64> %x14486  ret <2 x i64> %a14487}14488 14489define <2 x double> @pmax_v2f64(<2 x double> %x, <2 x double> %y) {14490; SIMD128-LABEL: pmax_v2f64:14491; SIMD128:         .functype pmax_v2f64 (v128, v128) -> (v128)14492; SIMD128-NEXT:  # %bb.0:14493; SIMD128-NEXT:    f64x2.pmax $push0=, $0, $114494; SIMD128-NEXT:    return $pop014495;14496; SIMD128-FAST-LABEL: pmax_v2f64:14497; SIMD128-FAST:         .functype pmax_v2f64 (v128, v128) -> (v128)14498; SIMD128-FAST-NEXT:  # %bb.0:14499; SIMD128-FAST-NEXT:    f64x2.pmax $push0=, $0, $114500; SIMD128-FAST-NEXT:    return $pop014501;14502; NO-SIMD128-LABEL: pmax_v2f64:14503; NO-SIMD128:         .functype pmax_v2f64 (i32, f64, f64, f64, f64) -> ()14504; NO-SIMD128-NEXT:  # %bb.0:14505; NO-SIMD128-NEXT:    f64.lt $push0=, $2, $414506; NO-SIMD128-NEXT:    f64.select $push1=, $4, $2, $pop014507; NO-SIMD128-NEXT:    f64.store 8($0), $pop114508; NO-SIMD128-NEXT:    f64.lt $push2=, $1, $314509; NO-SIMD128-NEXT:    f64.select $push3=, $3, $1, $pop214510; NO-SIMD128-NEXT:    f64.store 0($0), $pop314511; NO-SIMD128-NEXT:    return14512;14513; NO-SIMD128-FAST-LABEL: pmax_v2f64:14514; NO-SIMD128-FAST:         .functype pmax_v2f64 (i32, f64, f64, f64, f64) -> ()14515; NO-SIMD128-FAST-NEXT:  # %bb.0:14516; NO-SIMD128-FAST-NEXT:    f64.lt $push0=, $1, $314517; NO-SIMD128-FAST-NEXT:    f64.select $push1=, $3, $1, $pop014518; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop114519; NO-SIMD128-FAST-NEXT:    f64.lt $push2=, $2, $414520; NO-SIMD128-FAST-NEXT:    f64.select $push3=, $4, $2, $pop214521; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop314522; NO-SIMD128-FAST-NEXT:    return14523  %c = fcmp olt <2 x double> %x, %y14524  %a = select <2 x i1> %c, <2 x double> %y, <2 x double> %x14525  ret <2 x double> %a14526}14527 14528define <2 x i64> @pmax_int_v2f64(<2 x i64> %x, <2 x i64> %y) {14529; SIMD128-LABEL: pmax_int_v2f64:14530; SIMD128:         .functype pmax_int_v2f64 (v128, v128) -> (v128)14531; SIMD128-NEXT:  # %bb.0:14532; SIMD128-NEXT:    f64x2.pmax $push0=, $0, $114533; SIMD128-NEXT:    return $pop014534;14535; SIMD128-FAST-LABEL: pmax_int_v2f64:14536; SIMD128-FAST:         .functype pmax_int_v2f64 (v128, v128) -> (v128)14537; SIMD128-FAST-NEXT:  # %bb.0:14538; SIMD128-FAST-NEXT:    f64x2.pmax $push0=, $0, $114539; SIMD128-FAST-NEXT:    return $pop014540;14541; NO-SIMD128-LABEL: pmax_int_v2f64:14542; NO-SIMD128:         .functype pmax_int_v2f64 (i32, i64, i64, i64, i64) -> ()14543; NO-SIMD128-NEXT:  # %bb.0:14544; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push1=, $214545; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push0=, $414546; NO-SIMD128-NEXT:    f64.lt $push2=, $pop1, $pop014547; NO-SIMD128-NEXT:    i64.select $push3=, $4, $2, $pop214548; NO-SIMD128-NEXT:    i64.store 8($0), $pop314549; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push5=, $114550; NO-SIMD128-NEXT:    f64.reinterpret_i64 $push4=, $314551; NO-SIMD128-NEXT:    f64.lt $push6=, $pop5, $pop414552; NO-SIMD128-NEXT:    i64.select $push7=, $3, $1, $pop614553; NO-SIMD128-NEXT:    i64.store 0($0), $pop714554; NO-SIMD128-NEXT:    return14555;14556; NO-SIMD128-FAST-LABEL: pmax_int_v2f64:14557; NO-SIMD128-FAST:         .functype pmax_int_v2f64 (i32, i64, i64, i64, i64) -> ()14558; NO-SIMD128-FAST-NEXT:  # %bb.0:14559; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push1=, $114560; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push0=, $314561; NO-SIMD128-FAST-NEXT:    f64.lt $push2=, $pop1, $pop014562; NO-SIMD128-FAST-NEXT:    i64.select $push3=, $3, $1, $pop214563; NO-SIMD128-FAST-NEXT:    i64.store 0($0), $pop314564; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push5=, $214565; NO-SIMD128-FAST-NEXT:    f64.reinterpret_i64 $push4=, $414566; NO-SIMD128-FAST-NEXT:    f64.lt $push6=, $pop5, $pop414567; NO-SIMD128-FAST-NEXT:    i64.select $push7=, $4, $2, $pop614568; NO-SIMD128-FAST-NEXT:    i64.store 8($0), $pop714569; NO-SIMD128-FAST-NEXT:    return14570  %fx = bitcast <2 x i64> %x to <2 x double>14571  %fy = bitcast <2 x i64> %y to <2 x double>14572  %c = fcmp olt <2 x double> %fx, %fy14573  %a = select <2 x i1> %c, <2 x i64> %y, <2 x i64> %x14574  ret <2 x i64> %a14575}14576 14577define <2 x double> @add_v2f64(<2 x double> %x, <2 x double> %y) {14578; SIMD128-LABEL: add_v2f64:14579; SIMD128:         .functype add_v2f64 (v128, v128) -> (v128)14580; SIMD128-NEXT:  # %bb.0:14581; SIMD128-NEXT:    f64x2.add $push0=, $0, $114582; SIMD128-NEXT:    return $pop014583;14584; SIMD128-FAST-LABEL: add_v2f64:14585; SIMD128-FAST:         .functype add_v2f64 (v128, v128) -> (v128)14586; SIMD128-FAST-NEXT:  # %bb.0:14587; SIMD128-FAST-NEXT:    f64x2.add $push0=, $0, $114588; SIMD128-FAST-NEXT:    return $pop014589;14590; NO-SIMD128-LABEL: add_v2f64:14591; NO-SIMD128:         .functype add_v2f64 (i32, f64, f64, f64, f64) -> ()14592; NO-SIMD128-NEXT:  # %bb.0:14593; NO-SIMD128-NEXT:    f64.add $push0=, $2, $414594; NO-SIMD128-NEXT:    f64.store 8($0), $pop014595; NO-SIMD128-NEXT:    f64.add $push1=, $1, $314596; NO-SIMD128-NEXT:    f64.store 0($0), $pop114597; NO-SIMD128-NEXT:    return14598;14599; NO-SIMD128-FAST-LABEL: add_v2f64:14600; NO-SIMD128-FAST:         .functype add_v2f64 (i32, f64, f64, f64, f64) -> ()14601; NO-SIMD128-FAST-NEXT:  # %bb.0:14602; NO-SIMD128-FAST-NEXT:    f64.add $push0=, $1, $314603; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014604; NO-SIMD128-FAST-NEXT:    f64.add $push1=, $2, $414605; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114606; NO-SIMD128-FAST-NEXT:    return14607  %a = fadd <2 x double> %x, %y14608  ret <2 x double> %a14609}14610 14611define <2 x double> @sub_v2f64(<2 x double> %x, <2 x double> %y) {14612; SIMD128-LABEL: sub_v2f64:14613; SIMD128:         .functype sub_v2f64 (v128, v128) -> (v128)14614; SIMD128-NEXT:  # %bb.0:14615; SIMD128-NEXT:    f64x2.sub $push0=, $0, $114616; SIMD128-NEXT:    return $pop014617;14618; SIMD128-FAST-LABEL: sub_v2f64:14619; SIMD128-FAST:         .functype sub_v2f64 (v128, v128) -> (v128)14620; SIMD128-FAST-NEXT:  # %bb.0:14621; SIMD128-FAST-NEXT:    f64x2.sub $push0=, $0, $114622; SIMD128-FAST-NEXT:    return $pop014623;14624; NO-SIMD128-LABEL: sub_v2f64:14625; NO-SIMD128:         .functype sub_v2f64 (i32, f64, f64, f64, f64) -> ()14626; NO-SIMD128-NEXT:  # %bb.0:14627; NO-SIMD128-NEXT:    f64.sub $push0=, $2, $414628; NO-SIMD128-NEXT:    f64.store 8($0), $pop014629; NO-SIMD128-NEXT:    f64.sub $push1=, $1, $314630; NO-SIMD128-NEXT:    f64.store 0($0), $pop114631; NO-SIMD128-NEXT:    return14632;14633; NO-SIMD128-FAST-LABEL: sub_v2f64:14634; NO-SIMD128-FAST:         .functype sub_v2f64 (i32, f64, f64, f64, f64) -> ()14635; NO-SIMD128-FAST-NEXT:  # %bb.0:14636; NO-SIMD128-FAST-NEXT:    f64.sub $push0=, $1, $314637; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014638; NO-SIMD128-FAST-NEXT:    f64.sub $push1=, $2, $414639; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114640; NO-SIMD128-FAST-NEXT:    return14641  %a = fsub <2 x double> %x, %y14642  ret <2 x double> %a14643}14644 14645define <2 x double> @div_v2f64(<2 x double> %x, <2 x double> %y) {14646; SIMD128-LABEL: div_v2f64:14647; SIMD128:         .functype div_v2f64 (v128, v128) -> (v128)14648; SIMD128-NEXT:  # %bb.0:14649; SIMD128-NEXT:    f64x2.div $push0=, $0, $114650; SIMD128-NEXT:    return $pop014651;14652; SIMD128-FAST-LABEL: div_v2f64:14653; SIMD128-FAST:         .functype div_v2f64 (v128, v128) -> (v128)14654; SIMD128-FAST-NEXT:  # %bb.0:14655; SIMD128-FAST-NEXT:    f64x2.div $push0=, $0, $114656; SIMD128-FAST-NEXT:    return $pop014657;14658; NO-SIMD128-LABEL: div_v2f64:14659; NO-SIMD128:         .functype div_v2f64 (i32, f64, f64, f64, f64) -> ()14660; NO-SIMD128-NEXT:  # %bb.0:14661; NO-SIMD128-NEXT:    f64.div $push0=, $2, $414662; NO-SIMD128-NEXT:    f64.store 8($0), $pop014663; NO-SIMD128-NEXT:    f64.div $push1=, $1, $314664; NO-SIMD128-NEXT:    f64.store 0($0), $pop114665; NO-SIMD128-NEXT:    return14666;14667; NO-SIMD128-FAST-LABEL: div_v2f64:14668; NO-SIMD128-FAST:         .functype div_v2f64 (i32, f64, f64, f64, f64) -> ()14669; NO-SIMD128-FAST-NEXT:  # %bb.0:14670; NO-SIMD128-FAST-NEXT:    f64.div $push0=, $1, $314671; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014672; NO-SIMD128-FAST-NEXT:    f64.div $push1=, $2, $414673; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114674; NO-SIMD128-FAST-NEXT:    return14675  %a = fdiv <2 x double> %x, %y14676  ret <2 x double> %a14677}14678 14679define <2 x double> @mul_v2f64(<2 x double> %x, <2 x double> %y) {14680; SIMD128-LABEL: mul_v2f64:14681; SIMD128:         .functype mul_v2f64 (v128, v128) -> (v128)14682; SIMD128-NEXT:  # %bb.0:14683; SIMD128-NEXT:    f64x2.mul $push0=, $0, $114684; SIMD128-NEXT:    return $pop014685;14686; SIMD128-FAST-LABEL: mul_v2f64:14687; SIMD128-FAST:         .functype mul_v2f64 (v128, v128) -> (v128)14688; SIMD128-FAST-NEXT:  # %bb.0:14689; SIMD128-FAST-NEXT:    f64x2.mul $push0=, $0, $114690; SIMD128-FAST-NEXT:    return $pop014691;14692; NO-SIMD128-LABEL: mul_v2f64:14693; NO-SIMD128:         .functype mul_v2f64 (i32, f64, f64, f64, f64) -> ()14694; NO-SIMD128-NEXT:  # %bb.0:14695; NO-SIMD128-NEXT:    f64.mul $push0=, $2, $414696; NO-SIMD128-NEXT:    f64.store 8($0), $pop014697; NO-SIMD128-NEXT:    f64.mul $push1=, $1, $314698; NO-SIMD128-NEXT:    f64.store 0($0), $pop114699; NO-SIMD128-NEXT:    return14700;14701; NO-SIMD128-FAST-LABEL: mul_v2f64:14702; NO-SIMD128-FAST:         .functype mul_v2f64 (i32, f64, f64, f64, f64) -> ()14703; NO-SIMD128-FAST-NEXT:  # %bb.0:14704; NO-SIMD128-FAST-NEXT:    f64.mul $push0=, $1, $314705; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014706; NO-SIMD128-FAST-NEXT:    f64.mul $push1=, $2, $414707; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114708; NO-SIMD128-FAST-NEXT:    return14709  %a = fmul <2 x double> %x, %y14710  ret <2 x double> %a14711}14712 14713declare <2 x double> @llvm.sqrt.v2f64(<2 x double> %x)14714define <2 x double> @sqrt_v2f64(<2 x double> %x) {14715; SIMD128-LABEL: sqrt_v2f64:14716; SIMD128:         .functype sqrt_v2f64 (v128) -> (v128)14717; SIMD128-NEXT:  # %bb.0:14718; SIMD128-NEXT:    f64x2.sqrt $push0=, $014719; SIMD128-NEXT:    return $pop014720;14721; SIMD128-FAST-LABEL: sqrt_v2f64:14722; SIMD128-FAST:         .functype sqrt_v2f64 (v128) -> (v128)14723; SIMD128-FAST-NEXT:  # %bb.0:14724; SIMD128-FAST-NEXT:    f64x2.sqrt $push0=, $014725; SIMD128-FAST-NEXT:    return $pop014726;14727; NO-SIMD128-LABEL: sqrt_v2f64:14728; NO-SIMD128:         .functype sqrt_v2f64 (i32, f64, f64) -> ()14729; NO-SIMD128-NEXT:  # %bb.0:14730; NO-SIMD128-NEXT:    f64.sqrt $push0=, $214731; NO-SIMD128-NEXT:    f64.store 8($0), $pop014732; NO-SIMD128-NEXT:    f64.sqrt $push1=, $114733; NO-SIMD128-NEXT:    f64.store 0($0), $pop114734; NO-SIMD128-NEXT:    return14735;14736; NO-SIMD128-FAST-LABEL: sqrt_v2f64:14737; NO-SIMD128-FAST:         .functype sqrt_v2f64 (i32, f64, f64) -> ()14738; NO-SIMD128-FAST-NEXT:  # %bb.0:14739; NO-SIMD128-FAST-NEXT:    f64.sqrt $push0=, $114740; NO-SIMD128-FAST-NEXT:    f64.store 0($0), $pop014741; NO-SIMD128-FAST-NEXT:    f64.sqrt $push1=, $214742; NO-SIMD128-FAST-NEXT:    f64.store 8($0), $pop114743; NO-SIMD128-FAST-NEXT:    return14744  %a = call <2 x double> @llvm.sqrt.v2f64(<2 x double> %x)14745  ret <2 x double> %a14746}14747