xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/opt-ext-uses.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1; RUN: llc < %s -march=x86 | FileCheck %s
2
3; This test should get one and only one register to register mov.
4; CHECK-LABEL: t:
5; CHECK:     movl
6; CHECK-NOT: mov
7; CHECK:     ret
8
9define signext i16 @t()   {
10entry:
11        %tmp180 = load i16, i16* null, align 2               ; <i16> [#uses=3]
12        %tmp180181 = sext i16 %tmp180 to i32            ; <i32> [#uses=1]
13        %tmp182 = add i16 %tmp180, 10
14        %tmp185 = icmp slt i16 %tmp182, 0               ; <i1> [#uses=1]
15        br i1 %tmp185, label %cond_true188, label %cond_next245
16
17cond_true188:           ; preds = %entry
18        %tmp195196 = trunc i16 %tmp180 to i8            ; <i8> [#uses=0]
19        ret i16 %tmp180
20
21cond_next245:           ; preds = %entry
22        %tmp256 = and i32 %tmp180181, 15                ; <i32> [#uses=0]
23        %tmp3 = trunc i32 %tmp256 to i16
24        ret i16 %tmp3
25}
26