brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · b75e353 Raw
416 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-SD3; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-GI4 5define i1 @ule_11111111(i32 noundef %in) {6; CHECK-LABEL: ule_11111111:7; CHECK:       // %bb.0:8; CHECK-NEXT:    mov w8, #286331153 // =0x111111119; CHECK-NEXT:    cmp w0, w810; CHECK-NEXT:    cset w0, ls11; CHECK-NEXT:    ret12  %out = icmp ult i32 %in, 28633115413  ret i1 %out14}15 16define i1 @ule_22222222(i32 noundef %in) {17; CHECK-LABEL: ule_22222222:18; CHECK:       // %bb.0:19; CHECK-NEXT:    mov w8, #572662306 // =0x2222222220; CHECK-NEXT:    cmp w0, w821; CHECK-NEXT:    cset w0, ls22; CHECK-NEXT:    ret23  %out = icmp ult i32 %in, 57266230724  ret i1 %out25}26 27define i1 @ule_33333333(i32 noundef %in) {28; CHECK-LABEL: ule_33333333:29; CHECK:       // %bb.0:30; CHECK-NEXT:    mov w8, #858993459 // =0x3333333331; CHECK-NEXT:    cmp w0, w832; CHECK-NEXT:    cset w0, ls33; CHECK-NEXT:    ret34  %out = icmp ult i32 %in, 85899346035  ret i1 %out36}37 38define i1 @ule_44444444(i32 noundef %in) {39; CHECK-LABEL: ule_44444444:40; CHECK:       // %bb.0:41; CHECK-NEXT:    mov w8, #1145324612 // =0x4444444442; CHECK-NEXT:    cmp w0, w843; CHECK-NEXT:    cset w0, ls44; CHECK-NEXT:    ret45  %out = icmp ult i32 %in, 114532461346  ret i1 %out47}48 49define i1 @ule_55555555(i32 noundef %in) {50; CHECK-LABEL: ule_55555555:51; CHECK:       // %bb.0:52; CHECK-NEXT:    mov w8, #1431655765 // =0x5555555553; CHECK-NEXT:    cmp w0, w854; CHECK-NEXT:    cset w0, ls55; CHECK-NEXT:    ret56  %out = icmp ult i32 %in, 143165576657  ret i1 %out58}59 60define i1 @ule_66666666(i32 noundef %in) {61; CHECK-LABEL: ule_66666666:62; CHECK:       // %bb.0:63; CHECK-NEXT:    mov w8, #1717986918 // =0x6666666664; CHECK-NEXT:    cmp w0, w865; CHECK-NEXT:    cset w0, ls66; CHECK-NEXT:    ret67  %out = icmp ult i32 %in, 171798691968  ret i1 %out69}70 71define i1 @ule_77777777(i32 noundef %in) {72; CHECK-LABEL: ule_77777777:73; CHECK:       // %bb.0:74; CHECK-NEXT:    mov w8, #2004318071 // =0x7777777775; CHECK-NEXT:    cmp w0, w876; CHECK-NEXT:    cset w0, ls77; CHECK-NEXT:    ret78  %out = icmp ult i32 %in, 200431807279  ret i1 %out80}81 82define i1 @ule_88888888(i32 noundef %in) {83; CHECK-LABEL: ule_88888888:84; CHECK:       // %bb.0:85; CHECK-NEXT:    mov w8, #-2004318072 // =0x8888888886; CHECK-NEXT:    cmp w0, w887; CHECK-NEXT:    cset w0, ls88; CHECK-NEXT:    ret89  %out = icmp ult i32 %in, -200431807190  ret i1 %out91}92 93define i1 @ule_99999999(i32 noundef %in) {94; CHECK-LABEL: ule_99999999:95; CHECK:       // %bb.0:96; CHECK-NEXT:    mov w8, #-1717986919 // =0x9999999997; CHECK-NEXT:    cmp w0, w898; CHECK-NEXT:    cset w0, ls99; CHECK-NEXT:    ret100  %out = icmp ult i32 %in, -1717986918101  ret i1 %out102}103 104define i1 @uge_11111111(i32 noundef %in) {105; CHECK-LABEL: uge_11111111:106; CHECK:       // %bb.0:107; CHECK-NEXT:    mov w8, #286331153 // =0x11111111108; CHECK-NEXT:    cmp w0, w8109; CHECK-NEXT:    cset w0, hs110; CHECK-NEXT:    ret111  %out = icmp ugt i32 %in, 286331152112  ret i1 %out113}114 115define i1 @uge_22222222(i32 noundef %in) {116; CHECK-LABEL: uge_22222222:117; CHECK:       // %bb.0:118; CHECK-NEXT:    mov w8, #572662306 // =0x22222222119; CHECK-NEXT:    cmp w0, w8120; CHECK-NEXT:    cset w0, hs121; CHECK-NEXT:    ret122  %out = icmp ugt i32 %in, 572662305123  ret i1 %out124}125 126define i1 @uge_33333333(i32 noundef %in) {127; CHECK-LABEL: uge_33333333:128; CHECK:       // %bb.0:129; CHECK-NEXT:    mov w8, #858993459 // =0x33333333130; CHECK-NEXT:    cmp w0, w8131; CHECK-NEXT:    cset w0, hs132; CHECK-NEXT:    ret133  %out = icmp ugt i32 %in, 858993458134  ret i1 %out135}136 137define i1 @uge_44444444(i32 noundef %in) {138; CHECK-LABEL: uge_44444444:139; CHECK:       // %bb.0:140; CHECK-NEXT:    mov w8, #1145324612 // =0x44444444141; CHECK-NEXT:    cmp w0, w8142; CHECK-NEXT:    cset w0, hs143; CHECK-NEXT:    ret144  %out = icmp ugt i32 %in, 1145324611145  ret i1 %out146}147 148define i1 @uge_55555555(i32 noundef %in) {149; CHECK-LABEL: uge_55555555:150; CHECK:       // %bb.0:151; CHECK-NEXT:    mov w8, #1431655765 // =0x55555555152; CHECK-NEXT:    cmp w0, w8153; CHECK-NEXT:    cset w0, hs154; CHECK-NEXT:    ret155  %out = icmp ugt i32 %in, 1431655764156  ret i1 %out157}158 159define i1 @uge_66666666(i32 noundef %in) {160; CHECK-LABEL: uge_66666666:161; CHECK:       // %bb.0:162; CHECK-NEXT:    mov w8, #1717986918 // =0x66666666163; CHECK-NEXT:    cmp w0, w8164; CHECK-NEXT:    cset w0, hs165; CHECK-NEXT:    ret166  %out = icmp ugt i32 %in, 1717986917167  ret i1 %out168}169 170define i1 @uge_77777777(i32 noundef %in) {171; CHECK-LABEL: uge_77777777:172; CHECK:       // %bb.0:173; CHECK-NEXT:    mov w8, #2004318071 // =0x77777777174; CHECK-NEXT:    cmp w0, w8175; CHECK-NEXT:    cset w0, hs176; CHECK-NEXT:    ret177  %out = icmp ugt i32 %in, 2004318070178  ret i1 %out179}180 181define i1 @uge_88888888(i32 noundef %in) {182; CHECK-LABEL: uge_88888888:183; CHECK:       // %bb.0:184; CHECK-NEXT:    mov w8, #-2004318072 // =0x88888888185; CHECK-NEXT:    cmp w0, w8186; CHECK-NEXT:    cset w0, hs187; CHECK-NEXT:    ret188  %out = icmp ugt i32 %in, -2004318073189  ret i1 %out190}191 192define i1 @uge_99999999(i32 noundef %in) {193; CHECK-LABEL: uge_99999999:194; CHECK:       // %bb.0:195; CHECK-NEXT:    mov w8, #-1717986919 // =0x99999999196; CHECK-NEXT:    cmp w0, w8197; CHECK-NEXT:    cset w0, hs198; CHECK-NEXT:    ret199  %out = icmp ugt i32 %in, -1717986920200  ret i1 %out201}202 203define i1 @sle_11111111(i32 noundef %in) {204; CHECK-LABEL: sle_11111111:205; CHECK:       // %bb.0:206; CHECK-NEXT:    mov w8, #286331153 // =0x11111111207; CHECK-NEXT:    cmp w0, w8208; CHECK-NEXT:    cset w0, le209; CHECK-NEXT:    ret210  %out = icmp slt i32 %in, 286331154211  ret i1 %out212}213 214define i1 @sle_22222222(i32 noundef %in) {215; CHECK-LABEL: sle_22222222:216; CHECK:       // %bb.0:217; CHECK-NEXT:    mov w8, #572662306 // =0x22222222218; CHECK-NEXT:    cmp w0, w8219; CHECK-NEXT:    cset w0, le220; CHECK-NEXT:    ret221  %out = icmp slt i32 %in, 572662307222  ret i1 %out223}224 225define i1 @sle_33333333(i32 noundef %in) {226; CHECK-LABEL: sle_33333333:227; CHECK:       // %bb.0:228; CHECK-NEXT:    mov w8, #858993459 // =0x33333333229; CHECK-NEXT:    cmp w0, w8230; CHECK-NEXT:    cset w0, le231; CHECK-NEXT:    ret232  %out = icmp slt i32 %in, 858993460233  ret i1 %out234}235 236define i1 @sle_44444444(i32 noundef %in) {237; CHECK-LABEL: sle_44444444:238; CHECK:       // %bb.0:239; CHECK-NEXT:    mov w8, #1145324612 // =0x44444444240; CHECK-NEXT:    cmp w0, w8241; CHECK-NEXT:    cset w0, le242; CHECK-NEXT:    ret243  %out = icmp slt i32 %in, 1145324613244  ret i1 %out245}246 247define i1 @sle_55555555(i32 noundef %in) {248; CHECK-LABEL: sle_55555555:249; CHECK:       // %bb.0:250; CHECK-NEXT:    mov w8, #1431655765 // =0x55555555251; CHECK-NEXT:    cmp w0, w8252; CHECK-NEXT:    cset w0, le253; CHECK-NEXT:    ret254  %out = icmp slt i32 %in, 1431655766255  ret i1 %out256}257 258define i1 @sle_66666666(i32 noundef %in) {259; CHECK-LABEL: sle_66666666:260; CHECK:       // %bb.0:261; CHECK-NEXT:    mov w8, #1717986918 // =0x66666666262; CHECK-NEXT:    cmp w0, w8263; CHECK-NEXT:    cset w0, le264; CHECK-NEXT:    ret265  %out = icmp slt i32 %in, 1717986919266  ret i1 %out267}268 269define i1 @sle_77777777(i32 noundef %in) {270; CHECK-LABEL: sle_77777777:271; CHECK:       // %bb.0:272; CHECK-NEXT:    mov w8, #2004318071 // =0x77777777273; CHECK-NEXT:    cmp w0, w8274; CHECK-NEXT:    cset w0, le275; CHECK-NEXT:    ret276  %out = icmp slt i32 %in, 2004318072277  ret i1 %out278}279 280define i1 @sle_88888888(i32 noundef %in) {281; CHECK-LABEL: sle_88888888:282; CHECK:       // %bb.0:283; CHECK-NEXT:    mov w8, #-2004318072 // =0x88888888284; CHECK-NEXT:    cmp w0, w8285; CHECK-NEXT:    cset w0, ls286; CHECK-NEXT:    ret287  %out = icmp ult i32 %in, -2004318071288  ret i1 %out289}290 291define i1 @sle_99999999(i32 noundef %in) {292; CHECK-LABEL: sle_99999999:293; CHECK:       // %bb.0:294; CHECK-NEXT:    mov w8, #-1717986919 // =0x99999999295; CHECK-NEXT:    cmp w0, w8296; CHECK-NEXT:    cset w0, ls297; CHECK-NEXT:    ret298  %out = icmp ult i32 %in, -1717986918299  ret i1 %out300}301 302define i1 @sge_11111111(i32 noundef %in) {303; CHECK-LABEL: sge_11111111:304; CHECK:       // %bb.0:305; CHECK-NEXT:    mov w8, #286331153 // =0x11111111306; CHECK-NEXT:    cmp w0, w8307; CHECK-NEXT:    cset w0, ge308; CHECK-NEXT:    ret309  %out = icmp sgt i32 %in, 286331152310  ret i1 %out311}312 313define i1 @sge_22222222(i32 noundef %in) {314; CHECK-LABEL: sge_22222222:315; CHECK:       // %bb.0:316; CHECK-NEXT:    mov w8, #572662306 // =0x22222222317; CHECK-NEXT:    cmp w0, w8318; CHECK-NEXT:    cset w0, ge319; CHECK-NEXT:    ret320  %out = icmp sgt i32 %in, 572662305321  ret i1 %out322}323 324define i1 @sge_33333333(i32 noundef %in) {325; CHECK-LABEL: sge_33333333:326; CHECK:       // %bb.0:327; CHECK-NEXT:    mov w8, #858993459 // =0x33333333328; CHECK-NEXT:    cmp w0, w8329; CHECK-NEXT:    cset w0, ge330; CHECK-NEXT:    ret331  %out = icmp sgt i32 %in, 858993458332  ret i1 %out333}334 335define i1 @sge_44444444(i32 noundef %in) {336; CHECK-LABEL: sge_44444444:337; CHECK:       // %bb.0:338; CHECK-NEXT:    mov w8, #1145324612 // =0x44444444339; CHECK-NEXT:    cmp w0, w8340; CHECK-NEXT:    cset w0, ge341; CHECK-NEXT:    ret342  %out = icmp sgt i32 %in, 1145324611343  ret i1 %out344}345 346define i1 @sge_55555555(i32 noundef %in) {347; CHECK-LABEL: sge_55555555:348; CHECK:       // %bb.0:349; CHECK-NEXT:    mov w8, #1431655765 // =0x55555555350; CHECK-NEXT:    cmp w0, w8351; CHECK-NEXT:    cset w0, ge352; CHECK-NEXT:    ret353  %out = icmp sgt i32 %in, 1431655764354  ret i1 %out355}356 357define i1 @sge_66666666(i32 noundef %in) {358; CHECK-LABEL: sge_66666666:359; CHECK:       // %bb.0:360; CHECK-NEXT:    mov w8, #1717986918 // =0x66666666361; CHECK-NEXT:    cmp w0, w8362; CHECK-NEXT:    cset w0, ge363; CHECK-NEXT:    ret364  %out = icmp sgt i32 %in, 1717986917365  ret i1 %out366}367 368define i1 @sge_77777777(i32 noundef %in) {369; CHECK-LABEL: sge_77777777:370; CHECK:       // %bb.0:371; CHECK-NEXT:    mov w8, #2004318071 // =0x77777777372; CHECK-NEXT:    cmp w0, w8373; CHECK-NEXT:    cset w0, ge374; CHECK-NEXT:    ret375  %out = icmp sgt i32 %in, 2004318070376  ret i1 %out377}378 379define i1 @sge_88888888(i32 noundef %in) {380; CHECK-LABEL: sge_88888888:381; CHECK:       // %bb.0:382; CHECK-NEXT:    mov w8, #-2004318072 // =0x88888888383; CHECK-NEXT:    cmp w0, w8384; CHECK-NEXT:    cset w0, hs385; CHECK-NEXT:    ret386  %out = icmp ugt i32 %in, -2004318073387  ret i1 %out388}389 390define i1 @sge_99999999(i32 noundef %in) {391; CHECK-LABEL: sge_99999999:392; CHECK:       // %bb.0:393; CHECK-NEXT:    mov w8, #-1717986919 // =0x99999999394; CHECK-NEXT:    cmp w0, w8395; CHECK-NEXT:    cset w0, hs396; CHECK-NEXT:    ret397  %out = icmp ugt i32 %in, -1717986920398  ret i1 %out399}400 401define i1 @ult_20014852997121(i64 noundef %in) {402; CHECK-LABEL: ult_20014852997121:403; CHECK:       // %bb.0:404; CHECK-NEXT:    mov x8, #305397760 // =0x12340000405; CHECK-NEXT:    movk x8, #4660, lsl #32406; CHECK-NEXT:    cmp x0, x8407; CHECK-NEXT:    cset w0, ls408; CHECK-NEXT:    ret409  %out = icmp ult i64 %in, 20014852997121410  ret i1 %out411}412 413;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:414; CHECK-GI: {{.*}}415; CHECK-SD: {{.*}}416