; REQUIRES: asserts | |
; RUN: opt -passes=slsr -S -debug-counter=slsr-counter=1 < %s | FileCheck %s | |
; Test that, with debug counters on, we will skip the first slsr opportunity. | |
define void @stride_is_2s(i32 %b, i32 %s) { | |
; CHECK-LABEL: @stride_is_2s( | |
; CHECK-NEXT: %s2 = shl i32 %s, 1 | |
; CHECK-NEXT: %t1 = add i32 %b, %s2 | |
; CHECK-NEXT: call void @foo(i32 %t1) | |
; CHECK-NEXT: %s4 = shl i32 %s, 2 | |
; CHECK-NEXT: %t2 = add i32 %b, %s4 | |
; CHECK-NEXT: call void @foo(i32 %t2) | |
; CHECK-NEXT: ret void | |
; | |
%s2 = shl i32 %s, 1 | |
%t1 = add i32 %b, %s2 | |
call void @foo(i32 %t1) | |
%s4 = shl i32 %s, 2 | |
%t2 = add i32 %b, %s4 | |
call void @foo(i32 %t2) | |
ret void | |
} | |
declare void @foo(i32) | |