1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 2; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 < %s | FileCheck %s --check-prefix=CHECK-SD 3; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 < %s | FileCheck %s --check-prefix=CHECK-GI 4 5define i1 @ule_11111111(i32 noundef %in) { 6; CHECK-SD-LABEL: ule_11111111: 7; CHECK-SD: // %bb.0: 8; CHECK-SD-NEXT: mov w8, #4370 // =0x1112 9; CHECK-SD-NEXT: movk w8, #4369, lsl #16 10; CHECK-SD-NEXT: cmp w0, w8 11; CHECK-SD-NEXT: cset w0, lo 12; CHECK-SD-NEXT: ret 13; 14; CHECK-GI-LABEL: ule_11111111: 15; CHECK-GI: // %bb.0: 16; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111 17; CHECK-GI-NEXT: cmp w0, w8 18; CHECK-GI-NEXT: cset w0, ls 19; CHECK-GI-NEXT: ret 20 %out = icmp ult i32 %in, 286331154 21 ret i1 %out 22} 23 24define i1 @ule_22222222(i32 noundef %in) { 25; CHECK-SD-LABEL: ule_22222222: 26; CHECK-SD: // %bb.0: 27; CHECK-SD-NEXT: mov w8, #8739 // =0x2223 28; CHECK-SD-NEXT: movk w8, #8738, lsl #16 29; CHECK-SD-NEXT: cmp w0, w8 30; CHECK-SD-NEXT: cset w0, lo 31; CHECK-SD-NEXT: ret 32; 33; CHECK-GI-LABEL: ule_22222222: 34; CHECK-GI: // %bb.0: 35; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222 36; CHECK-GI-NEXT: cmp w0, w8 37; CHECK-GI-NEXT: cset w0, ls 38; CHECK-GI-NEXT: ret 39 %out = icmp ult i32 %in, 572662307 40 ret i1 %out 41} 42 43define i1 @ule_33333333(i32 noundef %in) { 44; CHECK-SD-LABEL: ule_33333333: 45; CHECK-SD: // %bb.0: 46; CHECK-SD-NEXT: mov w8, #13108 // =0x3334 47; CHECK-SD-NEXT: movk w8, #13107, lsl #16 48; CHECK-SD-NEXT: cmp w0, w8 49; CHECK-SD-NEXT: cset w0, lo 50; CHECK-SD-NEXT: ret 51; 52; CHECK-GI-LABEL: ule_33333333: 53; CHECK-GI: // %bb.0: 54; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333 55; CHECK-GI-NEXT: cmp w0, w8 56; CHECK-GI-NEXT: cset w0, ls 57; CHECK-GI-NEXT: ret 58 %out = icmp ult i32 %in, 858993460 59 ret i1 %out 60} 61 62define i1 @ule_44444444(i32 noundef %in) { 63; CHECK-SD-LABEL: ule_44444444: 64; CHECK-SD: // %bb.0: 65; CHECK-SD-NEXT: mov w8, #17477 // =0x4445 66; CHECK-SD-NEXT: movk w8, #17476, lsl #16 67; CHECK-SD-NEXT: cmp w0, w8 68; CHECK-SD-NEXT: cset w0, lo 69; CHECK-SD-NEXT: ret 70; 71; CHECK-GI-LABEL: ule_44444444: 72; CHECK-GI: // %bb.0: 73; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444 74; CHECK-GI-NEXT: cmp w0, w8 75; CHECK-GI-NEXT: cset w0, ls 76; CHECK-GI-NEXT: ret 77 %out = icmp ult i32 %in, 1145324613 78 ret i1 %out 79} 80 81define i1 @ule_55555555(i32 noundef %in) { 82; CHECK-SD-LABEL: ule_55555555: 83; CHECK-SD: // %bb.0: 84; CHECK-SD-NEXT: mov w8, #21846 // =0x5556 85; CHECK-SD-NEXT: movk w8, #21845, lsl #16 86; CHECK-SD-NEXT: cmp w0, w8 87; CHECK-SD-NEXT: cset w0, lo 88; CHECK-SD-NEXT: ret 89; 90; CHECK-GI-LABEL: ule_55555555: 91; CHECK-GI: // %bb.0: 92; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555 93; CHECK-GI-NEXT: cmp w0, w8 94; CHECK-GI-NEXT: cset w0, ls 95; CHECK-GI-NEXT: ret 96 %out = icmp ult i32 %in, 1431655766 97 ret i1 %out 98} 99 100define i1 @ule_66666666(i32 noundef %in) { 101; CHECK-SD-LABEL: ule_66666666: 102; CHECK-SD: // %bb.0: 103; CHECK-SD-NEXT: mov w8, #26215 // =0x6667 104; CHECK-SD-NEXT: movk w8, #26214, lsl #16 105; CHECK-SD-NEXT: cmp w0, w8 106; CHECK-SD-NEXT: cset w0, lo 107; CHECK-SD-NEXT: ret 108; 109; CHECK-GI-LABEL: ule_66666666: 110; CHECK-GI: // %bb.0: 111; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666 112; CHECK-GI-NEXT: cmp w0, w8 113; CHECK-GI-NEXT: cset w0, ls 114; CHECK-GI-NEXT: ret 115 %out = icmp ult i32 %in, 1717986919 116 ret i1 %out 117} 118 119define i1 @ule_77777777(i32 noundef %in) { 120; CHECK-SD-LABEL: ule_77777777: 121; CHECK-SD: // %bb.0: 122; CHECK-SD-NEXT: mov w8, #30584 // =0x7778 123; CHECK-SD-NEXT: movk w8, #30583, lsl #16 124; CHECK-SD-NEXT: cmp w0, w8 125; CHECK-SD-NEXT: cset w0, lo 126; CHECK-SD-NEXT: ret 127; 128; CHECK-GI-LABEL: ule_77777777: 129; CHECK-GI: // %bb.0: 130; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777 131; CHECK-GI-NEXT: cmp w0, w8 132; CHECK-GI-NEXT: cset w0, ls 133; CHECK-GI-NEXT: ret 134 %out = icmp ult i32 %in, 2004318072 135 ret i1 %out 136} 137 138define i1 @ule_88888888(i32 noundef %in) { 139; CHECK-SD-LABEL: ule_88888888: 140; CHECK-SD: // %bb.0: 141; CHECK-SD-NEXT: mov w8, #34953 // =0x8889 142; CHECK-SD-NEXT: movk w8, #34952, lsl #16 143; CHECK-SD-NEXT: cmp w0, w8 144; CHECK-SD-NEXT: cset w0, lo 145; CHECK-SD-NEXT: ret 146; 147; CHECK-GI-LABEL: ule_88888888: 148; CHECK-GI: // %bb.0: 149; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888 150; CHECK-GI-NEXT: cmp w0, w8 151; CHECK-GI-NEXT: cset w0, ls 152; CHECK-GI-NEXT: ret 153 %out = icmp ult i32 %in, -2004318071 154 ret i1 %out 155} 156 157define i1 @ule_99999999(i32 noundef %in) { 158; CHECK-SD-LABEL: ule_99999999: 159; CHECK-SD: // %bb.0: 160; CHECK-SD-NEXT: mov w8, #39322 // =0x999a 161; CHECK-SD-NEXT: movk w8, #39321, lsl #16 162; CHECK-SD-NEXT: cmp w0, w8 163; CHECK-SD-NEXT: cset w0, lo 164; CHECK-SD-NEXT: ret 165; 166; CHECK-GI-LABEL: ule_99999999: 167; CHECK-GI: // %bb.0: 168; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999 169; CHECK-GI-NEXT: cmp w0, w8 170; CHECK-GI-NEXT: cset w0, ls 171; CHECK-GI-NEXT: ret 172 %out = icmp ult i32 %in, -1717986918 173 ret i1 %out 174} 175 176define i1 @uge_11111111(i32 noundef %in) { 177; CHECK-SD-LABEL: uge_11111111: 178; CHECK-SD: // %bb.0: 179; CHECK-SD-NEXT: mov w8, #4368 // =0x1110 180; CHECK-SD-NEXT: movk w8, #4369, lsl #16 181; CHECK-SD-NEXT: cmp w0, w8 182; CHECK-SD-NEXT: cset w0, hi 183; CHECK-SD-NEXT: ret 184; 185; CHECK-GI-LABEL: uge_11111111: 186; CHECK-GI: // %bb.0: 187; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111 188; CHECK-GI-NEXT: cmp w0, w8 189; CHECK-GI-NEXT: cset w0, hs 190; CHECK-GI-NEXT: ret 191 %out = icmp ugt i32 %in, 286331152 192 ret i1 %out 193} 194 195define i1 @uge_22222222(i32 noundef %in) { 196; CHECK-SD-LABEL: uge_22222222: 197; CHECK-SD: // %bb.0: 198; CHECK-SD-NEXT: mov w8, #8737 // =0x2221 199; CHECK-SD-NEXT: movk w8, #8738, lsl #16 200; CHECK-SD-NEXT: cmp w0, w8 201; CHECK-SD-NEXT: cset w0, hi 202; CHECK-SD-NEXT: ret 203; 204; CHECK-GI-LABEL: uge_22222222: 205; CHECK-GI: // %bb.0: 206; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222 207; CHECK-GI-NEXT: cmp w0, w8 208; CHECK-GI-NEXT: cset w0, hs 209; CHECK-GI-NEXT: ret 210 %out = icmp ugt i32 %in, 572662305 211 ret i1 %out 212} 213 214define i1 @uge_33333333(i32 noundef %in) { 215; CHECK-SD-LABEL: uge_33333333: 216; CHECK-SD: // %bb.0: 217; CHECK-SD-NEXT: mov w8, #13106 // =0x3332 218; CHECK-SD-NEXT: movk w8, #13107, lsl #16 219; CHECK-SD-NEXT: cmp w0, w8 220; CHECK-SD-NEXT: cset w0, hi 221; CHECK-SD-NEXT: ret 222; 223; CHECK-GI-LABEL: uge_33333333: 224; CHECK-GI: // %bb.0: 225; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333 226; CHECK-GI-NEXT: cmp w0, w8 227; CHECK-GI-NEXT: cset w0, hs 228; CHECK-GI-NEXT: ret 229 %out = icmp ugt i32 %in, 858993458 230 ret i1 %out 231} 232 233define i1 @uge_44444444(i32 noundef %in) { 234; CHECK-SD-LABEL: uge_44444444: 235; CHECK-SD: // %bb.0: 236; CHECK-SD-NEXT: mov w8, #17475 // =0x4443 237; CHECK-SD-NEXT: movk w8, #17476, lsl #16 238; CHECK-SD-NEXT: cmp w0, w8 239; CHECK-SD-NEXT: cset w0, hi 240; CHECK-SD-NEXT: ret 241; 242; CHECK-GI-LABEL: uge_44444444: 243; CHECK-GI: // %bb.0: 244; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444 245; CHECK-GI-NEXT: cmp w0, w8 246; CHECK-GI-NEXT: cset w0, hs 247; CHECK-GI-NEXT: ret 248 %out = icmp ugt i32 %in, 1145324611 249 ret i1 %out 250} 251 252define i1 @uge_55555555(i32 noundef %in) { 253; CHECK-SD-LABEL: uge_55555555: 254; CHECK-SD: // %bb.0: 255; CHECK-SD-NEXT: mov w8, #21844 // =0x5554 256; CHECK-SD-NEXT: movk w8, #21845, lsl #16 257; CHECK-SD-NEXT: cmp w0, w8 258; CHECK-SD-NEXT: cset w0, hi 259; CHECK-SD-NEXT: ret 260; 261; CHECK-GI-LABEL: uge_55555555: 262; CHECK-GI: // %bb.0: 263; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555 264; CHECK-GI-NEXT: cmp w0, w8 265; CHECK-GI-NEXT: cset w0, hs 266; CHECK-GI-NEXT: ret 267 %out = icmp ugt i32 %in, 1431655764 268 ret i1 %out 269} 270 271define i1 @uge_66666666(i32 noundef %in) { 272; CHECK-SD-LABEL: uge_66666666: 273; CHECK-SD: // %bb.0: 274; CHECK-SD-NEXT: mov w8, #26213 // =0x6665 275; CHECK-SD-NEXT: movk w8, #26214, lsl #16 276; CHECK-SD-NEXT: cmp w0, w8 277; CHECK-SD-NEXT: cset w0, hi 278; CHECK-SD-NEXT: ret 279; 280; CHECK-GI-LABEL: uge_66666666: 281; CHECK-GI: // %bb.0: 282; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666 283; CHECK-GI-NEXT: cmp w0, w8 284; CHECK-GI-NEXT: cset w0, hs 285; CHECK-GI-NEXT: ret 286 %out = icmp ugt i32 %in, 1717986917 287 ret i1 %out 288} 289 290define i1 @uge_77777777(i32 noundef %in) { 291; CHECK-SD-LABEL: uge_77777777: 292; CHECK-SD: // %bb.0: 293; CHECK-SD-NEXT: mov w8, #30582 // =0x7776 294; CHECK-SD-NEXT: movk w8, #30583, lsl #16 295; CHECK-SD-NEXT: cmp w0, w8 296; CHECK-SD-NEXT: cset w0, hi 297; CHECK-SD-NEXT: ret 298; 299; CHECK-GI-LABEL: uge_77777777: 300; CHECK-GI: // %bb.0: 301; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777 302; CHECK-GI-NEXT: cmp w0, w8 303; CHECK-GI-NEXT: cset w0, hs 304; CHECK-GI-NEXT: ret 305 %out = icmp ugt i32 %in, 2004318070 306 ret i1 %out 307} 308 309define i1 @uge_88888888(i32 noundef %in) { 310; CHECK-SD-LABEL: uge_88888888: 311; CHECK-SD: // %bb.0: 312; CHECK-SD-NEXT: mov w8, #34951 // =0x8887 313; CHECK-SD-NEXT: movk w8, #34952, lsl #16 314; CHECK-SD-NEXT: cmp w0, w8 315; CHECK-SD-NEXT: cset w0, hi 316; CHECK-SD-NEXT: ret 317; 318; CHECK-GI-LABEL: uge_88888888: 319; CHECK-GI: // %bb.0: 320; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888 321; CHECK-GI-NEXT: cmp w0, w8 322; CHECK-GI-NEXT: cset w0, hs 323; CHECK-GI-NEXT: ret 324 %out = icmp ugt i32 %in, -2004318073 325 ret i1 %out 326} 327 328define i1 @uge_99999999(i32 noundef %in) { 329; CHECK-SD-LABEL: uge_99999999: 330; CHECK-SD: // %bb.0: 331; CHECK-SD-NEXT: mov w8, #39320 // =0x9998 332; CHECK-SD-NEXT: movk w8, #39321, lsl #16 333; CHECK-SD-NEXT: cmp w0, w8 334; CHECK-SD-NEXT: cset w0, hi 335; CHECK-SD-NEXT: ret 336; 337; CHECK-GI-LABEL: uge_99999999: 338; CHECK-GI: // %bb.0: 339; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999 340; CHECK-GI-NEXT: cmp w0, w8 341; CHECK-GI-NEXT: cset w0, hs 342; CHECK-GI-NEXT: ret 343 %out = icmp ugt i32 %in, -1717986920 344 ret i1 %out 345} 346 347define i1 @sle_11111111(i32 noundef %in) { 348; CHECK-SD-LABEL: sle_11111111: 349; CHECK-SD: // %bb.0: 350; CHECK-SD-NEXT: mov w8, #4370 // =0x1112 351; CHECK-SD-NEXT: movk w8, #4369, lsl #16 352; CHECK-SD-NEXT: cmp w0, w8 353; CHECK-SD-NEXT: cset w0, lt 354; CHECK-SD-NEXT: ret 355; 356; CHECK-GI-LABEL: sle_11111111: 357; CHECK-GI: // %bb.0: 358; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111 359; CHECK-GI-NEXT: cmp w0, w8 360; CHECK-GI-NEXT: cset w0, le 361; CHECK-GI-NEXT: ret 362 %out = icmp slt i32 %in, 286331154 363 ret i1 %out 364} 365 366define i1 @sle_22222222(i32 noundef %in) { 367; CHECK-SD-LABEL: sle_22222222: 368; CHECK-SD: // %bb.0: 369; CHECK-SD-NEXT: mov w8, #8739 // =0x2223 370; CHECK-SD-NEXT: movk w8, #8738, lsl #16 371; CHECK-SD-NEXT: cmp w0, w8 372; CHECK-SD-NEXT: cset w0, lt 373; CHECK-SD-NEXT: ret 374; 375; CHECK-GI-LABEL: sle_22222222: 376; CHECK-GI: // %bb.0: 377; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222 378; CHECK-GI-NEXT: cmp w0, w8 379; CHECK-GI-NEXT: cset w0, le 380; CHECK-GI-NEXT: ret 381 %out = icmp slt i32 %in, 572662307 382 ret i1 %out 383} 384 385define i1 @sle_33333333(i32 noundef %in) { 386; CHECK-SD-LABEL: sle_33333333: 387; CHECK-SD: // %bb.0: 388; CHECK-SD-NEXT: mov w8, #13108 // =0x3334 389; CHECK-SD-NEXT: movk w8, #13107, lsl #16 390; CHECK-SD-NEXT: cmp w0, w8 391; CHECK-SD-NEXT: cset w0, lt 392; CHECK-SD-NEXT: ret 393; 394; CHECK-GI-LABEL: sle_33333333: 395; CHECK-GI: // %bb.0: 396; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333 397; CHECK-GI-NEXT: cmp w0, w8 398; CHECK-GI-NEXT: cset w0, le 399; CHECK-GI-NEXT: ret 400 %out = icmp slt i32 %in, 858993460 401 ret i1 %out 402} 403 404define i1 @sle_44444444(i32 noundef %in) { 405; CHECK-SD-LABEL: sle_44444444: 406; CHECK-SD: // %bb.0: 407; CHECK-SD-NEXT: mov w8, #17477 // =0x4445 408; CHECK-SD-NEXT: movk w8, #17476, lsl #16 409; CHECK-SD-NEXT: cmp w0, w8 410; CHECK-SD-NEXT: cset w0, lt 411; CHECK-SD-NEXT: ret 412; 413; CHECK-GI-LABEL: sle_44444444: 414; CHECK-GI: // %bb.0: 415; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444 416; CHECK-GI-NEXT: cmp w0, w8 417; CHECK-GI-NEXT: cset w0, le 418; CHECK-GI-NEXT: ret 419 %out = icmp slt i32 %in, 1145324613 420 ret i1 %out 421} 422 423define i1 @sle_55555555(i32 noundef %in) { 424; CHECK-SD-LABEL: sle_55555555: 425; CHECK-SD: // %bb.0: 426; CHECK-SD-NEXT: mov w8, #21846 // =0x5556 427; CHECK-SD-NEXT: movk w8, #21845, lsl #16 428; CHECK-SD-NEXT: cmp w0, w8 429; CHECK-SD-NEXT: cset w0, lt 430; CHECK-SD-NEXT: ret 431; 432; CHECK-GI-LABEL: sle_55555555: 433; CHECK-GI: // %bb.0: 434; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555 435; CHECK-GI-NEXT: cmp w0, w8 436; CHECK-GI-NEXT: cset w0, le 437; CHECK-GI-NEXT: ret 438 %out = icmp slt i32 %in, 1431655766 439 ret i1 %out 440} 441 442define i1 @sle_66666666(i32 noundef %in) { 443; CHECK-SD-LABEL: sle_66666666: 444; CHECK-SD: // %bb.0: 445; CHECK-SD-NEXT: mov w8, #26215 // =0x6667 446; CHECK-SD-NEXT: movk w8, #26214, lsl #16 447; CHECK-SD-NEXT: cmp w0, w8 448; CHECK-SD-NEXT: cset w0, lt 449; CHECK-SD-NEXT: ret 450; 451; CHECK-GI-LABEL: sle_66666666: 452; CHECK-GI: // %bb.0: 453; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666 454; CHECK-GI-NEXT: cmp w0, w8 455; CHECK-GI-NEXT: cset w0, le 456; CHECK-GI-NEXT: ret 457 %out = icmp slt i32 %in, 1717986919 458 ret i1 %out 459} 460 461define i1 @sle_77777777(i32 noundef %in) { 462; CHECK-SD-LABEL: sle_77777777: 463; CHECK-SD: // %bb.0: 464; CHECK-SD-NEXT: mov w8, #30584 // =0x7778 465; CHECK-SD-NEXT: movk w8, #30583, lsl #16 466; CHECK-SD-NEXT: cmp w0, w8 467; CHECK-SD-NEXT: cset w0, lt 468; CHECK-SD-NEXT: ret 469; 470; CHECK-GI-LABEL: sle_77777777: 471; CHECK-GI: // %bb.0: 472; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777 473; CHECK-GI-NEXT: cmp w0, w8 474; CHECK-GI-NEXT: cset w0, le 475; CHECK-GI-NEXT: ret 476 %out = icmp slt i32 %in, 2004318072 477 ret i1 %out 478} 479 480define i1 @sle_88888888(i32 noundef %in) { 481; CHECK-SD-LABEL: sle_88888888: 482; CHECK-SD: // %bb.0: 483; CHECK-SD-NEXT: mov w8, #34953 // =0x8889 484; CHECK-SD-NEXT: movk w8, #34952, lsl #16 485; CHECK-SD-NEXT: cmp w0, w8 486; CHECK-SD-NEXT: cset w0, lo 487; CHECK-SD-NEXT: ret 488; 489; CHECK-GI-LABEL: sle_88888888: 490; CHECK-GI: // %bb.0: 491; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888 492; CHECK-GI-NEXT: cmp w0, w8 493; CHECK-GI-NEXT: cset w0, ls 494; CHECK-GI-NEXT: ret 495 %out = icmp ult i32 %in, -2004318071 496 ret i1 %out 497} 498 499define i1 @sle_99999999(i32 noundef %in) { 500; CHECK-SD-LABEL: sle_99999999: 501; CHECK-SD: // %bb.0: 502; CHECK-SD-NEXT: mov w8, #39322 // =0x999a 503; CHECK-SD-NEXT: movk w8, #39321, lsl #16 504; CHECK-SD-NEXT: cmp w0, w8 505; CHECK-SD-NEXT: cset w0, lo 506; CHECK-SD-NEXT: ret 507; 508; CHECK-GI-LABEL: sle_99999999: 509; CHECK-GI: // %bb.0: 510; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999 511; CHECK-GI-NEXT: cmp w0, w8 512; CHECK-GI-NEXT: cset w0, ls 513; CHECK-GI-NEXT: ret 514 %out = icmp ult i32 %in, -1717986918 515 ret i1 %out 516} 517 518define i1 @sge_11111111(i32 noundef %in) { 519; CHECK-SD-LABEL: sge_11111111: 520; CHECK-SD: // %bb.0: 521; CHECK-SD-NEXT: mov w8, #4368 // =0x1110 522; CHECK-SD-NEXT: movk w8, #4369, lsl #16 523; CHECK-SD-NEXT: cmp w0, w8 524; CHECK-SD-NEXT: cset w0, gt 525; CHECK-SD-NEXT: ret 526; 527; CHECK-GI-LABEL: sge_11111111: 528; CHECK-GI: // %bb.0: 529; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111 530; CHECK-GI-NEXT: cmp w0, w8 531; CHECK-GI-NEXT: cset w0, ge 532; CHECK-GI-NEXT: ret 533 %out = icmp sgt i32 %in, 286331152 534 ret i1 %out 535} 536 537define i1 @sge_22222222(i32 noundef %in) { 538; CHECK-SD-LABEL: sge_22222222: 539; CHECK-SD: // %bb.0: 540; CHECK-SD-NEXT: mov w8, #8737 // =0x2221 541; CHECK-SD-NEXT: movk w8, #8738, lsl #16 542; CHECK-SD-NEXT: cmp w0, w8 543; CHECK-SD-NEXT: cset w0, gt 544; CHECK-SD-NEXT: ret 545; 546; CHECK-GI-LABEL: sge_22222222: 547; CHECK-GI: // %bb.0: 548; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222 549; CHECK-GI-NEXT: cmp w0, w8 550; CHECK-GI-NEXT: cset w0, ge 551; CHECK-GI-NEXT: ret 552 %out = icmp sgt i32 %in, 572662305 553 ret i1 %out 554} 555 556define i1 @sge_33333333(i32 noundef %in) { 557; CHECK-SD-LABEL: sge_33333333: 558; CHECK-SD: // %bb.0: 559; CHECK-SD-NEXT: mov w8, #13106 // =0x3332 560; CHECK-SD-NEXT: movk w8, #13107, lsl #16 561; CHECK-SD-NEXT: cmp w0, w8 562; CHECK-SD-NEXT: cset w0, gt 563; CHECK-SD-NEXT: ret 564; 565; CHECK-GI-LABEL: sge_33333333: 566; CHECK-GI: // %bb.0: 567; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333 568; CHECK-GI-NEXT: cmp w0, w8 569; CHECK-GI-NEXT: cset w0, ge 570; CHECK-GI-NEXT: ret 571 %out = icmp sgt i32 %in, 858993458 572 ret i1 %out 573} 574 575define i1 @sge_44444444(i32 noundef %in) { 576; CHECK-SD-LABEL: sge_44444444: 577; CHECK-SD: // %bb.0: 578; CHECK-SD-NEXT: mov w8, #17475 // =0x4443 579; CHECK-SD-NEXT: movk w8, #17476, lsl #16 580; CHECK-SD-NEXT: cmp w0, w8 581; CHECK-SD-NEXT: cset w0, gt 582; CHECK-SD-NEXT: ret 583; 584; CHECK-GI-LABEL: sge_44444444: 585; CHECK-GI: // %bb.0: 586; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444 587; CHECK-GI-NEXT: cmp w0, w8 588; CHECK-GI-NEXT: cset w0, ge 589; CHECK-GI-NEXT: ret 590 %out = icmp sgt i32 %in, 1145324611 591 ret i1 %out 592} 593 594define i1 @sge_55555555(i32 noundef %in) { 595; CHECK-SD-LABEL: sge_55555555: 596; CHECK-SD: // %bb.0: 597; CHECK-SD-NEXT: mov w8, #21844 // =0x5554 598; CHECK-SD-NEXT: movk w8, #21845, lsl #16 599; CHECK-SD-NEXT: cmp w0, w8 600; CHECK-SD-NEXT: cset w0, gt 601; CHECK-SD-NEXT: ret 602; 603; CHECK-GI-LABEL: sge_55555555: 604; CHECK-GI: // %bb.0: 605; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555 606; CHECK-GI-NEXT: cmp w0, w8 607; CHECK-GI-NEXT: cset w0, ge 608; CHECK-GI-NEXT: ret 609 %out = icmp sgt i32 %in, 1431655764 610 ret i1 %out 611} 612 613define i1 @sge_66666666(i32 noundef %in) { 614; CHECK-SD-LABEL: sge_66666666: 615; CHECK-SD: // %bb.0: 616; CHECK-SD-NEXT: mov w8, #26213 // =0x6665 617; CHECK-SD-NEXT: movk w8, #26214, lsl #16 618; CHECK-SD-NEXT: cmp w0, w8 619; CHECK-SD-NEXT: cset w0, gt 620; CHECK-SD-NEXT: ret 621; 622; CHECK-GI-LABEL: sge_66666666: 623; CHECK-GI: // %bb.0: 624; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666 625; CHECK-GI-NEXT: cmp w0, w8 626; CHECK-GI-NEXT: cset w0, ge 627; CHECK-GI-NEXT: ret 628 %out = icmp sgt i32 %in, 1717986917 629 ret i1 %out 630} 631 632define i1 @sge_77777777(i32 noundef %in) { 633; CHECK-SD-LABEL: sge_77777777: 634; CHECK-SD: // %bb.0: 635; CHECK-SD-NEXT: mov w8, #30582 // =0x7776 636; CHECK-SD-NEXT: movk w8, #30583, lsl #16 637; CHECK-SD-NEXT: cmp w0, w8 638; CHECK-SD-NEXT: cset w0, gt 639; CHECK-SD-NEXT: ret 640; 641; CHECK-GI-LABEL: sge_77777777: 642; CHECK-GI: // %bb.0: 643; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777 644; CHECK-GI-NEXT: cmp w0, w8 645; CHECK-GI-NEXT: cset w0, ge 646; CHECK-GI-NEXT: ret 647 %out = icmp sgt i32 %in, 2004318070 648 ret i1 %out 649} 650 651define i1 @sge_88888888(i32 noundef %in) { 652; CHECK-SD-LABEL: sge_88888888: 653; CHECK-SD: // %bb.0: 654; CHECK-SD-NEXT: mov w8, #34951 // =0x8887 655; CHECK-SD-NEXT: movk w8, #34952, lsl #16 656; CHECK-SD-NEXT: cmp w0, w8 657; CHECK-SD-NEXT: cset w0, hi 658; CHECK-SD-NEXT: ret 659; 660; CHECK-GI-LABEL: sge_88888888: 661; CHECK-GI: // %bb.0: 662; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888 663; CHECK-GI-NEXT: cmp w0, w8 664; CHECK-GI-NEXT: cset w0, hs 665; CHECK-GI-NEXT: ret 666 %out = icmp ugt i32 %in, -2004318073 667 ret i1 %out 668} 669 670define i1 @sge_99999999(i32 noundef %in) { 671; CHECK-SD-LABEL: sge_99999999: 672; CHECK-SD: // %bb.0: 673; CHECK-SD-NEXT: mov w8, #39320 // =0x9998 674; CHECK-SD-NEXT: movk w8, #39321, lsl #16 675; CHECK-SD-NEXT: cmp w0, w8 676; CHECK-SD-NEXT: cset w0, hi 677; CHECK-SD-NEXT: ret 678; 679; CHECK-GI-LABEL: sge_99999999: 680; CHECK-GI: // %bb.0: 681; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999 682; CHECK-GI-NEXT: cmp w0, w8 683; CHECK-GI-NEXT: cset w0, hs 684; CHECK-GI-NEXT: ret 685 %out = icmp ugt i32 %in, -1717986920 686 ret i1 %out 687} 688