I would also have a look at the table in the Intel 64 and IA-32 Architectures Software Developer's Manuals Volume 2 "SAL/SAR/SHL/SHR—Shift" which contains a table with:
D0 /4 SHL r/m8, 1
REX + D0 /4 SHL r/m8**, 1
D2 /4 SHL r/m8, CL
REX + D2 /4 SHL r/m8**, CL
C0 /4 ib SHL r/m8, imm8
REX + C0 /4 ib SHL r/m8**, imm8
D1 /4 SHL r/m16,1
D3 /4 SHL r/m16, CL
C1 /4 ib SHL r/m16, imm8
D1 /4 SHL r/m32,1
REX.W + D1 /4 SHL r/m64,1
D3 /4 SHL r/m32, CL
REX.W + D3 /4 SHL r/m64, CL
C1 /4 ib SHL r/m32, imm8
REX.W + C1 /4 ib SHL r/m64, imm8
D0 /4 SAL r/m8, 1
REX + D0 /4 SAL r/m8**, 1
D2 /4 SAL r/m8, CL
REX + D2 /4 SAL r/m8**, CL
C0 /4 ib SAL r/m8, imm8
REX + C0 /4 ib SAL r/m8**, imm8
D1 /4 SAL r/m16, 1
D3 /4 SAL r/m16, CL
C1 /4 ib SAL r/m16, imm8
D1 /4 SAL r/m32, 1
REX.W + D1 /4 SAL r/m64, 1
D3 /4 SAL r/m32, CL
REX.W + D3 /4 SAL r/m64, CL
C1 /4 ib SAL r/m32, imm8
REX.W + C1 /4 ib SAL r/m64, imm8
By comparing both parts, we see that each operand choice has the same encoding for both SHL and SAL, so they are identical.
Mystical's quote follows in the same section further confirming it.