In s390_irgen_VSLDB there was special handling for the case that the
immediate operand i4 has the value 16, which would mean that the result v1
were a full copy of the third operand v3. However, this is impossible
because i4 can only assume values from 0 to 15; thus the special handling
can be removed.
{
UChar imm = i4 & 0b00001111;
- if (imm == 0)
- {
+ if (imm == 0) {
+ /* Just copy v2. */
put_vr_qw(v1, get_vr_qw(v2));
- }
- else if (imm == 16)
- {
- put_vr_qw(v1, get_vr_qw(v3));
- }
- else
- {
+ } else {
+ /* Concatenate v2's tail with v3's head. */
put_vr_qw(v1,
binop(Iop_OrV128,
binop(Iop_ShlV128, get_vr_qw(v2), mkU8(imm * 8)),