1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s 3 4define i32 @test_minsize(i32 %X) optsize minsize nounwind readnone { 5; CHECK-LABEL: test_minsize: 6; CHECK: // %bb.0: 7; CHECK-NEXT: mov w8, #5 // =0x5 8; CHECK-NEXT: mov w9, #42 // =0x2a 9; CHECK-NEXT: udiv w8, w0, w8 10; CHECK-NEXT: add w8, w8, w8, lsl #2 11; CHECK-NEXT: cmp w0, w8 12; CHECK-NEXT: mov w8, #-10 // =0xfffffff6 13; CHECK-NEXT: csel w0, w9, w8, eq 14; CHECK-NEXT: ret 15 %rem = urem i32 %X, 5 16 %cmp = icmp eq i32 %rem, 0 17 %ret = select i1 %cmp, i32 42, i32 -10 18 ret i32 %ret 19} 20 21define i32 @test_optsize(i32 %X) optsize nounwind readnone { 22; CHECK-LABEL: test_optsize: 23; CHECK: // %bb.0: 24; CHECK-NEXT: mov w8, #52429 // =0xcccd 25; CHECK-NEXT: mov w9, #13108 // =0x3334 26; CHECK-NEXT: movk w8, #52428, lsl #16 27; CHECK-NEXT: movk w9, #13107, lsl #16 28; CHECK-NEXT: mul w8, w0, w8 29; CHECK-NEXT: cmp w8, w9 30; CHECK-NEXT: mov w8, #-10 // =0xfffffff6 31; CHECK-NEXT: mov w9, #42 // =0x2a 32; CHECK-NEXT: csel w0, w9, w8, lo 33; CHECK-NEXT: ret 34 %rem = urem i32 %X, 5 35 %cmp = icmp eq i32 %rem, 0 36 %ret = select i1 %cmp, i32 42, i32 -10 37 ret i32 %ret 38} 39