1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=ppc64 | grep rotld 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=ppc64 | grep rotldi 3*9880d681SAndroid Build Coastguard Worker; PR1613 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i64 @t1(i64 %A) { 6*9880d681SAndroid Build Coastguard Worker %tmp1 = lshr i64 %A, 57 7*9880d681SAndroid Build Coastguard Worker %tmp2 = shl i64 %A, 7 8*9880d681SAndroid Build Coastguard Worker %tmp3 = or i64 %tmp1, %tmp2 9*9880d681SAndroid Build Coastguard Worker ret i64 %tmp3 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine i64 @t2(i64 %A, i8 zeroext %Amt) { 13*9880d681SAndroid Build Coastguard Worker %Amt1 = zext i8 %Amt to i64 14*9880d681SAndroid Build Coastguard Worker %tmp1 = lshr i64 %A, %Amt1 15*9880d681SAndroid Build Coastguard Worker %Amt2 = sub i8 64, %Amt 16*9880d681SAndroid Build Coastguard Worker %Amt3 = zext i8 %Amt2 to i64 17*9880d681SAndroid Build Coastguard Worker %tmp2 = shl i64 %A, %Amt3 18*9880d681SAndroid Build Coastguard Worker %tmp3 = or i64 %tmp1, %tmp2 19*9880d681SAndroid Build Coastguard Worker ret i64 %tmp3 20*9880d681SAndroid Build Coastguard Worker} 21