| ; RUN: llc -mtriple=i686-- < %s | FileCheck %s | |
| ; No attributes, should not use idiv | |
| define i32 @test1(i32 inreg %x) { | |
| entry: | |
| %div = sdiv i32 %x, 16 | |
| ret i32 %div | |
| ; CHECK-LABEL: test1: | |
| ; CHECK-NOT: idivl | |
| ; CHECK: ret | |
| } | |
| ; Has minsize (-Oz) attribute, should generate idiv | |
| define i32 @test2(i32 inreg %x) minsize { | |
| entry: | |
| %div = sdiv i32 %x, 16 | |
| ret i32 %div | |
| ; CHECK-LABEL: test2: | |
| ; CHECK: idivl | |
| ; CHECK: ret | |
| } | |
| ; Has optsize (-Os) attribute, should not generate idiv | |
| define i32 @test3(i32 inreg %x) optsize { | |
| entry: | |
| %div = sdiv i32 %x, 16 | |
| ret i32 %div | |
| ; CHECK-LABEL: test3: | |
| ; CHECK-NOT: idivl | |
| ; CHECK: ret | |
| } | |