brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · be064d5 Raw
123 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=aarch64-unknown-unknown < %s -o -| FileCheck %s3 4define i1 @lsr_1_ne_0_16(i16 %x) {5; CHECK-LABEL: lsr_1_ne_0_16:6; CHECK:       // %bb.0:7; CHECK-NEXT:    tst w0, #0xfffe8; CHECK-NEXT:    cset w0, ne9; CHECK-NEXT:    ret10  %shr = lshr i16 %x, 111  %cmp = icmp ne i16 %shr, 012  ret i1 %cmp13}14 15define i1 @lsr_1_ne_0_32(i32 %x) {16; CHECK-LABEL: lsr_1_ne_0_32:17; CHECK:       // %bb.0:18; CHECK-NEXT:    tst w0, #0xfffffffe19; CHECK-NEXT:    cset w0, ne20; CHECK-NEXT:    ret21  %shr = lshr i32 %x, 122  %cmp = icmp ne i32 %shr, 023  ret i1 %cmp24}25 26define i1 @lsr_30_ne_0_32(i32 %x) {27; CHECK-LABEL: lsr_30_ne_0_32:28; CHECK:       // %bb.0:29; CHECK-NEXT:    tst w0, #0xc000000030; CHECK-NEXT:    cset w0, ne31; CHECK-NEXT:    ret32  %shr = lshr i32 %x, 3033  %cmp = icmp ne i32 %shr, 034  ret i1 %cmp35}36 37define i1 @lsr_31_ne_0_32(i32 %x) {38; CHECK-LABEL: lsr_31_ne_0_32:39; CHECK:       // %bb.0:40; CHECK-NEXT:    lsr w0, w0, #3141; CHECK-NEXT:    ret42  %shr = lshr i32 %x, 3143  %cmp = icmp ne i32 %shr, 044  ret i1 %cmp45}46 47define i1 @lsr_1_ne_0_64(i64 %x) {48; CHECK-LABEL: lsr_1_ne_0_64:49; CHECK:       // %bb.0:50; CHECK-NEXT:    tst x0, #0xfffffffffffffffe51; CHECK-NEXT:    cset w0, ne52; CHECK-NEXT:    ret53  %shr = lshr i64 %x, 154  %cmp = icmp ne i64 %shr, 055  ret i1 %cmp56}57 58define i1 @lsr_31_ne_0_64(i64 %x) {59; CHECK-LABEL: lsr_31_ne_0_64:60; CHECK:       // %bb.0:61; CHECK-NEXT:    tst x0, #0xffffffff8000000062; CHECK-NEXT:    cset w0, ne63; CHECK-NEXT:    ret64  %shr = lshr i64 %x, 3165  %cmp = icmp ne i64 %shr, 066  ret i1 %cmp67}68 69define i1 @lsr_32_ne_0_64(i64 %x) {70; CHECK-LABEL: lsr_32_ne_0_64:71; CHECK:       // %bb.0:72; CHECK-NEXT:    tst x0, #0xffffffff0000000073; CHECK-NEXT:    cset w0, ne74; CHECK-NEXT:    ret75  %shr = lshr i64 %x, 3276  %cmp = icmp ne i64 %shr, 077  ret i1 %cmp78}79 80define i1 @lsr_33_ne_0_64(i64 %x) {81; CHECK-LABEL: lsr_33_ne_0_64:82; CHECK:       // %bb.0:83; CHECK-NEXT:    tst x0, #0xfffffffe0000000084; CHECK-NEXT:    cset w0, ne85; CHECK-NEXT:    ret86  %shr = lshr i64 %x, 3387  %cmp = icmp ne i64 %shr, 088  ret i1 %cmp89}90 91define i1 @lsr_62_ne_0_64(i64 %x) {92; CHECK-LABEL: lsr_62_ne_0_64:93; CHECK:       // %bb.0:94; CHECK-NEXT:    tst x0, #0xc00000000000000095; CHECK-NEXT:    cset w0, ne96; CHECK-NEXT:    ret97  %shr = lshr i64 %x, 6298  %cmp = icmp ne i64 %shr, 099  ret i1 %cmp100}101 102define i1 @lsr_63_ne_0_64(i64 %x) {103; CHECK-LABEL: lsr_63_ne_0_64:104; CHECK:       // %bb.0:105; CHECK-NEXT:    lsr x0, x0, #63106; CHECK-NEXT:    // kill: def $w0 killed $w0 killed $x0107; CHECK-NEXT:    ret108  %shr = lshr i64 %x, 63109  %cmp = icmp ne i64 %shr, 0110  ret i1 %cmp111}112 113define <4 x i1> @lsr_1_ne_0_v4i16(<4 x i16> %x) {114; CHECK-LABEL: lsr_1_ne_0_v4i16:115; CHECK:       // %bb.0:116; CHECK-NEXT:    ushr v0.4h, v0.4h, #1117; CHECK-NEXT:    cmtst v0.4h, v0.4h, v0.4h118; CHECK-NEXT:    ret119  %shr = lshr <4 x i16> %x, <i16 1, i16 1, i16 1, i16 1>120  %cmp = icmp ne <4 x i16> %shr, <i16 0, i16 0, i16 0, i16 0>121  ret <4 x i1> %cmp122}123