@@ -3329,9 +3329,7 @@ define i16 @v_fshl_i16(i16 %lhs, i16 %rhs, i16 %amt) {
33293329; GFX6-NEXT: v_and_b32_e32 v3, 15, v2
33303330; GFX6-NEXT: v_xor_b32_e32 v2, -1, v2
33313331; GFX6-NEXT: v_and_b32_e32 v2, 15, v2
3332- ; GFX6-NEXT: v_and_b32_e32 v3, 0xffff, v3
33333332; GFX6-NEXT: v_bfe_u32 v1, v1, 1, 15
3334- ; GFX6-NEXT: v_and_b32_e32 v2, 0xffff, v2
33353333; GFX6-NEXT: v_lshlrev_b32_e32 v0, v3, v0
33363334; GFX6-NEXT: v_lshrrev_b32_e32 v1, v2, v1
33373335; GFX6-NEXT: v_or_b32_e32 v0, v0, v1
@@ -3486,10 +3484,8 @@ define amdgpu_ps half @v_fshl_i16_ssv(i16 inreg %lhs, i16 inreg %rhs, i16 %amt)
34863484; GFX6-NEXT: v_and_b32_e32 v1, 15, v0
34873485; GFX6-NEXT: v_xor_b32_e32 v0, -1, v0
34883486; GFX6-NEXT: v_and_b32_e32 v0, 15, v0
3489- ; GFX6-NEXT: v_and_b32_e32 v1, 0xffff, v1
34903487; GFX6-NEXT: v_lshl_b32_e32 v1, s0, v1
34913488; GFX6-NEXT: s_bfe_u32 s0, s1, 0xf0001
3492- ; GFX6-NEXT: v_and_b32_e32 v0, 0xffff, v0
34933489; GFX6-NEXT: v_lshr_b32_e32 v0, s0, v0
34943490; GFX6-NEXT: v_or_b32_e32 v0, v1, v0
34953491; GFX6-NEXT: ; return to shader part epilog
@@ -3793,20 +3789,16 @@ define <2 x i16> @v_fshl_v2i16(<2 x i16> %lhs, <2 x i16> %rhs, <2 x i16> %amt) {
37933789; GFX6-NEXT: v_and_b32_e32 v6, 15, v4
37943790; GFX6-NEXT: v_xor_b32_e32 v4, -1, v4
37953791; GFX6-NEXT: v_and_b32_e32 v4, 15, v4
3796- ; GFX6-NEXT: v_and_b32_e32 v6, 0xffff, v6
37973792; GFX6-NEXT: v_bfe_u32 v2, v2, 1, 15
3798- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v4
37993793; GFX6-NEXT: v_lshlrev_b32_e32 v0, v6, v0
38003794; GFX6-NEXT: v_lshrrev_b32_e32 v2, v4, v2
38013795; GFX6-NEXT: v_or_b32_e32 v0, v0, v2
38023796; GFX6-NEXT: v_and_b32_e32 v2, 15, v5
38033797; GFX6-NEXT: v_xor_b32_e32 v4, -1, v5
38043798; GFX6-NEXT: v_and_b32_e32 v4, 15, v4
3805- ; GFX6-NEXT: v_and_b32_e32 v2, 0xffff, v2
38063799; GFX6-NEXT: v_lshlrev_b32_e32 v1, v2, v1
38073800; GFX6-NEXT: v_bfe_u32 v2, v3, 1, 15
3808- ; GFX6-NEXT: v_and_b32_e32 v3, 0xffff, v4
3809- ; GFX6-NEXT: v_lshrrev_b32_e32 v2, v3, v2
3801+ ; GFX6-NEXT: v_lshrrev_b32_e32 v2, v4, v2
38103802; GFX6-NEXT: v_or_b32_e32 v1, v1, v2
38113803; GFX6-NEXT: s_setpc_b64 s[30:31]
38123804;
@@ -3942,18 +3934,14 @@ define amdgpu_ps float @v_fshl_v2i16_ssv(<2 x i16> inreg %lhs, <2 x i16> inreg %
39423934; GFX6-NEXT: v_and_b32_e32 v2, 15, v0
39433935; GFX6-NEXT: v_xor_b32_e32 v0, -1, v0
39443936; GFX6-NEXT: v_and_b32_e32 v0, 15, v0
3945- ; GFX6-NEXT: v_and_b32_e32 v2, 0xffff, v2
39463937; GFX6-NEXT: v_lshl_b32_e32 v2, s0, v2
39473938; GFX6-NEXT: s_bfe_u32 s0, s2, 0xf0001
3948- ; GFX6-NEXT: v_and_b32_e32 v0, 0xffff, v0
39493939; GFX6-NEXT: v_lshr_b32_e32 v0, s0, v0
39503940; GFX6-NEXT: v_or_b32_e32 v0, v2, v0
39513941; GFX6-NEXT: v_and_b32_e32 v2, 15, v1
39523942; GFX6-NEXT: v_xor_b32_e32 v1, -1, v1
39533943; GFX6-NEXT: v_and_b32_e32 v1, 15, v1
3954- ; GFX6-NEXT: v_and_b32_e32 v2, 0xffff, v2
39553944; GFX6-NEXT: s_bfe_u32 s0, s3, 0xf0001
3956- ; GFX6-NEXT: v_and_b32_e32 v1, 0xffff, v1
39573945; GFX6-NEXT: v_lshl_b32_e32 v2, s1, v2
39583946; GFX6-NEXT: v_lshr_b32_e32 v1, s0, v1
39593947; GFX6-NEXT: v_or_b32_e32 v1, v2, v1
@@ -4450,28 +4438,22 @@ define <3 x half> @v_fshl_v3i16(<3 x i16> %lhs, <3 x i16> %rhs, <3 x i16> %amt)
44504438; GFX6-NEXT: v_and_b32_e32 v9, 15, v6
44514439; GFX6-NEXT: v_xor_b32_e32 v6, -1, v6
44524440; GFX6-NEXT: v_and_b32_e32 v6, 15, v6
4453- ; GFX6-NEXT: v_and_b32_e32 v9, 0xffff, v9
44544441; GFX6-NEXT: v_bfe_u32 v3, v3, 1, 15
4455- ; GFX6-NEXT: v_and_b32_e32 v6, 0xffff, v6
44564442; GFX6-NEXT: v_lshlrev_b32_e32 v0, v9, v0
44574443; GFX6-NEXT: v_lshrrev_b32_e32 v3, v6, v3
44584444; GFX6-NEXT: v_or_b32_e32 v0, v0, v3
44594445; GFX6-NEXT: v_and_b32_e32 v3, 15, v7
44604446; GFX6-NEXT: v_xor_b32_e32 v6, -1, v7
44614447; GFX6-NEXT: v_and_b32_e32 v6, 15, v6
4462- ; GFX6-NEXT: v_and_b32_e32 v3, 0xffff, v3
44634448; GFX6-NEXT: v_lshlrev_b32_e32 v1, v3, v1
44644449; GFX6-NEXT: v_bfe_u32 v3, v4, 1, 15
4465- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v6
4466- ; GFX6-NEXT: v_lshrrev_b32_e32 v3, v4, v3
4450+ ; GFX6-NEXT: v_lshrrev_b32_e32 v3, v6, v3
44674451; GFX6-NEXT: v_or_b32_e32 v1, v1, v3
44684452; GFX6-NEXT: v_and_b32_e32 v3, 15, v8
44694453; GFX6-NEXT: v_xor_b32_e32 v4, -1, v8
44704454; GFX6-NEXT: v_and_b32_e32 v4, 15, v4
4471- ; GFX6-NEXT: v_and_b32_e32 v3, 0xffff, v3
44724455; GFX6-NEXT: v_lshlrev_b32_e32 v2, v3, v2
44734456; GFX6-NEXT: v_bfe_u32 v3, v5, 1, 15
4474- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v4
44754457; GFX6-NEXT: v_lshrrev_b32_e32 v3, v4, v3
44764458; GFX6-NEXT: v_or_b32_e32 v2, v2, v3
44774459; GFX6-NEXT: s_setpc_b64 s[30:31]
@@ -4790,37 +4772,29 @@ define <4 x half> @v_fshl_v4i16(<4 x i16> %lhs, <4 x i16> %rhs, <4 x i16> %amt)
47904772; GFX6-NEXT: v_and_b32_e32 v12, 15, v8
47914773; GFX6-NEXT: v_xor_b32_e32 v8, -1, v8
47924774; GFX6-NEXT: v_and_b32_e32 v8, 15, v8
4793- ; GFX6-NEXT: v_and_b32_e32 v12, 0xffff, v12
47944775; GFX6-NEXT: v_bfe_u32 v4, v4, 1, 15
4795- ; GFX6-NEXT: v_and_b32_e32 v8, 0xffff, v8
47964776; GFX6-NEXT: v_lshlrev_b32_e32 v0, v12, v0
47974777; GFX6-NEXT: v_lshrrev_b32_e32 v4, v8, v4
47984778; GFX6-NEXT: v_or_b32_e32 v0, v0, v4
47994779; GFX6-NEXT: v_and_b32_e32 v4, 15, v9
48004780; GFX6-NEXT: v_xor_b32_e32 v8, -1, v9
48014781; GFX6-NEXT: v_and_b32_e32 v8, 15, v8
4802- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v4
48034782; GFX6-NEXT: v_lshlrev_b32_e32 v1, v4, v1
48044783; GFX6-NEXT: v_bfe_u32 v4, v5, 1, 15
4805- ; GFX6-NEXT: v_and_b32_e32 v5, 0xffff, v8
4806- ; GFX6-NEXT: v_lshrrev_b32_e32 v4, v5, v4
4784+ ; GFX6-NEXT: v_lshrrev_b32_e32 v4, v8, v4
48074785; GFX6-NEXT: v_or_b32_e32 v1, v1, v4
48084786; GFX6-NEXT: v_and_b32_e32 v4, 15, v10
48094787; GFX6-NEXT: v_xor_b32_e32 v5, -1, v10
48104788; GFX6-NEXT: v_and_b32_e32 v5, 15, v5
4811- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v4
48124789; GFX6-NEXT: v_lshlrev_b32_e32 v2, v4, v2
48134790; GFX6-NEXT: v_bfe_u32 v4, v6, 1, 15
4814- ; GFX6-NEXT: v_and_b32_e32 v5, 0xffff, v5
48154791; GFX6-NEXT: v_lshrrev_b32_e32 v4, v5, v4
48164792; GFX6-NEXT: v_or_b32_e32 v2, v2, v4
48174793; GFX6-NEXT: v_and_b32_e32 v4, 15, v11
48184794; GFX6-NEXT: v_xor_b32_e32 v5, -1, v11
48194795; GFX6-NEXT: v_and_b32_e32 v5, 15, v5
4820- ; GFX6-NEXT: v_and_b32_e32 v4, 0xffff, v4
48214796; GFX6-NEXT: v_lshlrev_b32_e32 v3, v4, v3
48224797; GFX6-NEXT: v_bfe_u32 v4, v7, 1, 15
4823- ; GFX6-NEXT: v_and_b32_e32 v5, 0xffff, v5
48244798; GFX6-NEXT: v_lshrrev_b32_e32 v4, v5, v4
48254799; GFX6-NEXT: v_or_b32_e32 v3, v3, v4
48264800; GFX6-NEXT: s_setpc_b64 s[30:31]
0 commit comments