// (shift x (and y, 63)) ==> (shift x, y)
def : Pat<(frag GR64:$src1, (and CL, immShift64)),
(!cast<Instruction>(name # "64rCL") GR64:$src1)>;
- def : Pat<(store (frag (loadi64 addr:$dst), (and CL, 63)), addr:$dst),
+ def : Pat<(store (frag (loadi64 addr:$dst), (and CL, immShift64)), addr:$dst),
(!cast<Instruction>(name # "64mCL") addr:$dst)>;
}
define void @t5ptr(i64 %t, i64* %ptr) nounwind {
; X64-LABEL: t5ptr:
; X64: ## BB#0:
-; X64-NEXT: andb $-65, %dil
; X64-NEXT: movl %edi, %ecx
; X64-NEXT: shrq %cl, (%rsi)
; X64-NEXT: retq