107 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4; Function Attrs: nounwind readnone5define i32 @f0(i32 %a0, i32 %a1) #0 {6; CHECK-LABEL: f0:7; CHECK: // %bb.0: // %b08; CHECK-NEXT: {9; CHECK-NEXT: p0 = tstbit(r0,r1)10; CHECK-NEXT: }11; CHECK-NEXT: {12; CHECK-NEXT: r0 = mux(p0,#1,#0)13; CHECK-NEXT: jumpr r3114; CHECK-NEXT: }15b0:16 %v0 = shl i32 1, %a117 %v1 = and i32 %v0, %a018 %v2 = icmp ne i32 %v1, 019 %v3 = zext i1 %v2 to i3220 ret i32 %v321}22 23define i64 @is_upper_bit_clear_i64(i64 %x) #0 {24; CHECK-LABEL: is_upper_bit_clear_i64:25; CHECK: // %bb.0:26; CHECK-NEXT: {27; CHECK-NEXT: p0 = !tstbit(r1,#5)28; CHECK-NEXT: r1 = #029; CHECK-NEXT: }30; CHECK-NEXT: {31; CHECK-NEXT: r0 = mux(p0,#1,#0)32; CHECK-NEXT: jumpr r3133; CHECK-NEXT: }34 %sh = lshr i64 %x, 3735 %m = and i64 %sh, 136 %r = xor i64 %m, 137 ret i64 %r38}39 40define i64 @is_lower_bit_clear_i64(i64 %x) #0 {41; CHECK-LABEL: is_lower_bit_clear_i64:42; CHECK: // %bb.0:43; CHECK-NEXT: {44; CHECK-NEXT: p0 = !tstbit(r0,#27)45; CHECK-NEXT: r1 = #046; CHECK-NEXT: }47; CHECK-NEXT: {48; CHECK-NEXT: r0 = mux(p0,#1,#0)49; CHECK-NEXT: jumpr r3150; CHECK-NEXT: }51 %sh = lshr i64 %x, 2752 %m = and i64 %sh, 153 %r = xor i64 %m, 154 ret i64 %r55}56 57define i32 @is_bit_clear_i32(i32 %x) #0 {58; CHECK-LABEL: is_bit_clear_i32:59; CHECK: // %bb.0:60; CHECK-NEXT: {61; CHECK-NEXT: p0 = !tstbit(r0,#27)62; CHECK-NEXT: }63; CHECK-NEXT: {64; CHECK-NEXT: r0 = mux(p0,#1,#0)65; CHECK-NEXT: jumpr r3166; CHECK-NEXT: }67 %sh = lshr i32 %x, 2768 %n = xor i32 %sh, -169 %r = and i32 %n, 170 ret i32 %r71}72 73define i16 @is_bit_clear_i16(i16 %x) #0 {74; CHECK-LABEL: is_bit_clear_i16:75; CHECK: // %bb.0:76; CHECK-NEXT: {77; CHECK-NEXT: p0 = !tstbit(r0,#7)78; CHECK-NEXT: }79; CHECK-NEXT: {80; CHECK-NEXT: r0 = mux(p0,#1,#0)81; CHECK-NEXT: jumpr r3182; CHECK-NEXT: }83 %sh = lshr i16 %x, 784 %m = and i16 %sh, 185 %r = xor i16 %m, 186 ret i16 %r87}88 89define i8 @is_bit_clear_i8(i8 %x) #0 {90; CHECK-LABEL: is_bit_clear_i8:91; CHECK: // %bb.0:92; CHECK-NEXT: {93; CHECK-NEXT: p0 = !tstbit(r0,#3)94; CHECK-NEXT: }95; CHECK-NEXT: {96; CHECK-NEXT: r0 = mux(p0,#1,#0)97; CHECK-NEXT: jumpr r3198; CHECK-NEXT: }99 %sh = lshr i8 %x, 3100 %m = and i8 %sh, 1101 %r = xor i8 %m, 1102 ret i8 %r103}104 105 106attributes #0 = { nounwind readnone }107