@@ -1997,38 +1997,30 @@ define void @avgr_undef_shuffle_lanes(ptr %res, <8 x i8> %a, <8 x i8> %b, <8 x i
19971997; SIMD128: .functype avgr_undef_shuffle_lanes (i32, v128, v128, v128, v128) -> ()
19981998; SIMD128-NEXT: # %bb.0:
19991999; SIMD128-NEXT: i8x16.avgr_u $push1=, $1, $2
2000- ; SIMD128-NEXT: i8x16.shuffle $push12 =, $pop1, $4, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0
2001- ; SIMD128-NEXT: local.tee $push11 =, $2=, $pop12
2000+ ; SIMD128-NEXT: i16x8.extend_low_i8x16_u $push8 =, $pop1
2001+ ; SIMD128-NEXT: local.tee $push7 =, $2=, $pop8
20022002; SIMD128-NEXT: i8x16.avgr_u $push0=, $3, $4
2003- ; SIMD128-NEXT: i8x16.shuffle $push10=, $pop0, $4, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0
2004- ; SIMD128-NEXT: local.tee $push9=, $4=, $pop10
2005- ; SIMD128-NEXT: i8x16.shuffle $push4=, $pop11, $pop9, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 23
2006- ; SIMD128-NEXT: v128.const $push8=, 255, 255, 255, 255, 255, 255, 255, 255
2007- ; SIMD128-NEXT: local.tee $push7=, $3=, $pop8
2008- ; SIMD128-NEXT: v128.and $push5=, $pop4, $pop7
2003+ ; SIMD128-NEXT: i16x8.extend_low_i8x16_u $push6=, $pop0
2004+ ; SIMD128-NEXT: local.tee $push5=, $4=, $pop6
2005+ ; SIMD128-NEXT: i8x16.shuffle $push3=, $pop7, $pop5, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 23
20092006; SIMD128-NEXT: i8x16.shuffle $push2=, $2, $4, 8, 9, 24, 25, 10, 11, 26, 27, 12, 13, 28, 29, 14, 15, 30, 31
2010- ; SIMD128-NEXT: v128.and $push3=, $pop2, $3
2011- ; SIMD128-NEXT: i8x16.narrow_i16x8_u $push6=, $pop5, $pop3
2012- ; SIMD128-NEXT: v128.store 0($0):p2align=0, $pop6
2007+ ; SIMD128-NEXT: i8x16.narrow_i16x8_u $push4=, $pop3, $pop2
2008+ ; SIMD128-NEXT: v128.store 0($0):p2align=0, $pop4
20132009; SIMD128-NEXT: return
20142010;
20152011; SIMD128-FAST-LABEL: avgr_undef_shuffle_lanes:
20162012; SIMD128-FAST: .functype avgr_undef_shuffle_lanes (i32, v128, v128, v128, v128) -> ()
20172013; SIMD128-FAST-NEXT: # %bb.0:
20182014; SIMD128-FAST-NEXT: i8x16.avgr_u $push1=, $1, $2
2019- ; SIMD128-FAST-NEXT: i8x16.shuffle $push12 =, $pop1, $4, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0
2020- ; SIMD128-FAST-NEXT: local.tee $push11 =, $2=, $pop12
2015+ ; SIMD128-FAST-NEXT: i16x8.extend_low_i8x16_u $push8 =, $pop1
2016+ ; SIMD128-FAST-NEXT: local.tee $push7 =, $2=, $pop8
20212017; SIMD128-FAST-NEXT: i8x16.avgr_u $push0=, $3, $4
2022- ; SIMD128-FAST-NEXT: i8x16.shuffle $push10=, $pop0, $4, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0
2023- ; SIMD128-FAST-NEXT: local.tee $push9=, $4=, $pop10
2024- ; SIMD128-FAST-NEXT: i8x16.shuffle $push4=, $pop11, $pop9, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 23
2025- ; SIMD128-FAST-NEXT: v128.const $push8=, 255, 255, 255, 255, 255, 255, 255, 255
2026- ; SIMD128-FAST-NEXT: local.tee $push7=, $3=, $pop8
2027- ; SIMD128-FAST-NEXT: v128.and $push5=, $pop4, $pop7
2018+ ; SIMD128-FAST-NEXT: i16x8.extend_low_i8x16_u $push6=, $pop0
2019+ ; SIMD128-FAST-NEXT: local.tee $push5=, $4=, $pop6
2020+ ; SIMD128-FAST-NEXT: i8x16.shuffle $push3=, $pop7, $pop5, 0, 1, 16, 17, 2, 3, 18, 19, 4, 5, 20, 21, 6, 7, 22, 23
20282021; SIMD128-FAST-NEXT: i8x16.shuffle $push2=, $2, $4, 8, 9, 24, 25, 10, 11, 26, 27, 12, 13, 28, 29, 14, 15, 30, 31
2029- ; SIMD128-FAST-NEXT: v128.and $push3=, $pop2, $3
2030- ; SIMD128-FAST-NEXT: i8x16.narrow_i16x8_u $push6=, $pop5, $pop3
2031- ; SIMD128-FAST-NEXT: v128.store 0($0):p2align=0, $pop6
2022+ ; SIMD128-FAST-NEXT: i8x16.narrow_i16x8_u $push4=, $pop3, $pop2
2023+ ; SIMD128-FAST-NEXT: v128.store 0($0):p2align=0, $pop4
20322024; SIMD128-FAST-NEXT: return
20332025;
20342026; NO-SIMD128-LABEL: avgr_undef_shuffle_lanes:
0 commit comments