Skip to content

Commit 38b12ec

Browse files
committed
fixup! [M68k] Fix backwards BTST condition
Add a CodeGen test case for a switch statement that emits BTST
1 parent 6e5bffb commit 38b12ec

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
; RUN: llc < %s -mtriple=m68k-freestanding -verify-machineinstrs | FileCheck %s
3+
4+
define fastcc i16 @test1(i16 %a) nounwind {
5+
; CHECK-LABEL: test1:
6+
; CHECK: ; %bb.0: ; %entry
7+
; CHECK-NEXT: move.l %d0, %d1
8+
; CHECK-NEXT: and.l #65535, %d1
9+
; CHECK-NEXT: sub.l #11, %d1
10+
; CHECK-NEXT: bhi .LBB0_3
11+
; CHECK-NEXT: ; %bb.1: ; %entry
12+
; CHECK-NEXT: and.l #65535, %d0
13+
; CHECK-NEXT: move.l #3612, %d1
14+
; CHECK-NEXT: btst %d0, %d1
15+
; CHECK-NEXT: beq .LBB0_3
16+
; CHECK-NEXT: ; %bb.2: ; %match
17+
; CHECK-NEXT: moveq #1, %d0
18+
; CHECK-NEXT: rts
19+
; CHECK-NEXT: .LBB0_3: ; %no_match
20+
; CHECK-NEXT: moveq #0, %d0
21+
; CHECK-NEXT: rts
22+
entry:
23+
switch i16 %a, label %no_match [
24+
i16 11, label %match
25+
i16 10, label %match
26+
i16 9, label %match
27+
i16 4, label %match
28+
i16 3, label %match
29+
i16 2, label %match
30+
]
31+
32+
match:
33+
ret i16 1
34+
35+
no_match:
36+
ret i16 0
37+
}

0 commit comments

Comments
 (0)