diff options
Diffstat (limited to 'test/Transforms/InstSimplify/rem.ll')
-rw-r--r-- | test/Transforms/InstSimplify/rem.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Transforms/InstSimplify/rem.ll b/test/Transforms/InstSimplify/rem.ll index 80fa8e7..f5ea451 100644 --- a/test/Transforms/InstSimplify/rem.ll +++ b/test/Transforms/InstSimplify/rem.ll @@ -15,3 +15,31 @@ define i32 @select2(i32 %x, i1 %b) { ret i32 %rem ; CHECK: ret i32 0 } + +define i32 @rem1(i32 %x, i32 %n) { +; CHECK-LABEL: @rem1( +; CHECK-NEXT: %mod = srem i32 %x, %n +; CHECK-NEXT: ret i32 %mod + %mod = srem i32 %x, %n + %mod1 = srem i32 %mod, %n + ret i32 %mod1 +} + +define i32 @rem2(i32 %x, i32 %n) { +; CHECK-LABEL: @rem2( +; CHECK-NEXT: %mod = urem i32 %x, %n +; CHECK-NEXT: ret i32 %mod + %mod = urem i32 %x, %n + %mod1 = urem i32 %mod, %n + ret i32 %mod1 +} + +define i32 @rem3(i32 %x, i32 %n) { +; CHECK-LABEL: @rem3( +; CHECK-NEXT: %[[srem:.*]] = srem i32 %x, %n +; CHECK-NEXT: %[[urem:.*]] = urem i32 %[[srem]], %n +; CHECK-NEXT: ret i32 %[[urem]] + %mod = srem i32 %x, %n + %mod1 = urem i32 %mod, %n + ret i32 %mod1 +} |