[SystemZ] Handle extensions in RxSBG optimizations

The input to an RxSBG operation can be narrower as long as the upper bits
are don't care.  This fixes a FIXME added in r192783.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192790 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Sandiford
2013-10-16 13:35:13 +00:00
parent 648a2e6714
commit d77a7669ec
2 changed files with 28 additions and 11 deletions

View File

@@ -52,11 +52,10 @@ define i64 @f4(i32 %a) {
}
; Repeat the previous test in a case where all bits outside the
; bottom 3 matter. FIXME: can still use RISBG here.
; bottom 3 matter.
define i64 @f5(i32 %a) {
; CHECK-LABEL: f5:
; CHECK: srl %r2, 30
; CHECK: sllg %r2, %r2, 33
; CHECK: risbg %r2, %r2, 29, 158, 3
; CHECK: lhi %r2, 7
; CHECK: br %r14
%shr = lshr i32 %a, 30