We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent efda335 commit e554cecCopy full SHA for e554cec
llvm/test/CodeGen/X86/test-vs-bittest.ll
@@ -571,6 +571,22 @@ define i64 @is_upper_bit_clear_i64(i64 %x) {
571
ret i64 %r
572
}
573
574
+define i32 @is_upper_bit_clear_i64_trunc(i64 %x) {
575
+; CHECK-LABEL: is_upper_bit_clear_i64_trunc:
576
+; CHECK: # %bb.0:
577
+; CHECK-NEXT: movq %rdi, %rax
578
+; CHECK-NEXT: shrq $42, %rax
579
+; CHECK-NEXT: notl %eax
580
+; CHECK-NEXT: andl $1, %eax
581
+; CHECK-NEXT: # kill: def $eax killed $eax killed $rax
582
+; CHECK-NEXT: retq
583
+ %sh = lshr i64 %x, 42
584
+ %t = trunc i64 %sh to i32
585
+ %m = and i32 %t, 1
586
+ %r = xor i32 %m, 1
587
+ ret i32 %r
588
+}
589
+
590
define i64 @is_upper_bit_clear_i64_not(i64 %x) {
591
; CHECK-LABEL: is_upper_bit_clear_i64_not:
592
; CHECK: # %bb.0:
0 commit comments