1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i32 @shl() nounwind { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; ELF64: shl 6*9880d681SAndroid Build Coastguard Worker; ELF64: slw 7*9880d681SAndroid Build Coastguard Worker %shl = shl i32 -1, 2 8*9880d681SAndroid Build Coastguard Worker ret i32 %shl 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine i32 @shl_reg(i32 %src1, i32 %src2) nounwind { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker; ELF64: shl_reg 14*9880d681SAndroid Build Coastguard Worker; ELF64: slw 15*9880d681SAndroid Build Coastguard Worker %shl = shl i32 %src1, %src2 16*9880d681SAndroid Build Coastguard Worker ret i32 %shl 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine i32 @lshr() nounwind { 20*9880d681SAndroid Build Coastguard Workerentry: 21*9880d681SAndroid Build Coastguard Worker; ELF64: lshr 22*9880d681SAndroid Build Coastguard Worker; ELF64: srw 23*9880d681SAndroid Build Coastguard Worker %lshr = lshr i32 -1, 2 24*9880d681SAndroid Build Coastguard Worker ret i32 %lshr 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine i32 @lshr_reg(i32 %src1, i32 %src2) nounwind { 28*9880d681SAndroid Build Coastguard Workerentry: 29*9880d681SAndroid Build Coastguard Worker; ELF64: lshr_reg 30*9880d681SAndroid Build Coastguard Worker; ELF64: srw 31*9880d681SAndroid Build Coastguard Worker %lshr = lshr i32 %src1, %src2 32*9880d681SAndroid Build Coastguard Worker ret i32 %lshr 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine i32 @ashr() nounwind { 36*9880d681SAndroid Build Coastguard Workerentry: 37*9880d681SAndroid Build Coastguard Worker; ELF64: ashr 38*9880d681SAndroid Build Coastguard Worker; ELF64: srawi 39*9880d681SAndroid Build Coastguard Worker %ashr = ashr i32 -1, 2 40*9880d681SAndroid Build Coastguard Worker ret i32 %ashr 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine i32 @ashr_reg(i32 %src1, i32 %src2) nounwind { 44*9880d681SAndroid Build Coastguard Workerentry: 45*9880d681SAndroid Build Coastguard Worker; ELF64: ashr_reg 46*9880d681SAndroid Build Coastguard Worker; ELF64: sraw 47*9880d681SAndroid Build Coastguard Worker %ashr = ashr i32 %src1, %src2 48*9880d681SAndroid Build Coastguard Worker ret i32 %ashr 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51