xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/subreg-to-reg-6.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86-64
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine i64 @foo() nounwind {
4*9880d681SAndroid Build Coastguard Workerentry:
5*9880d681SAndroid Build Coastguard Worker	%t0 = load i32, i32* null, align 8
6*9880d681SAndroid Build Coastguard Worker	switch i32 %t0, label %bb65 [
7*9880d681SAndroid Build Coastguard Worker		i32 16, label %bb
8*9880d681SAndroid Build Coastguard Worker		i32 12, label %bb56
9*9880d681SAndroid Build Coastguard Worker	]
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerbb:
12*9880d681SAndroid Build Coastguard Worker	br label %bb65
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerbb56:
15*9880d681SAndroid Build Coastguard Worker	unreachable
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workerbb65:
18*9880d681SAndroid Build Coastguard Worker	%a = phi i64 [ 0, %bb ], [ 0, %entry ]
19*9880d681SAndroid Build Coastguard Worker	tail call void asm "", "{cx}"(i64 %a) nounwind
20*9880d681SAndroid Build Coastguard Worker	%t15 = and i64 %a, 4294967295
21*9880d681SAndroid Build Coastguard Worker	ret i64 %t15
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdefine i64 @bar(i64 %t0) nounwind {
25*9880d681SAndroid Build Coastguard Worker	call void asm "", "{cx}"(i64 0) nounwind
26*9880d681SAndroid Build Coastguard Worker	%t1 = sub i64 0, %t0
27*9880d681SAndroid Build Coastguard Worker	%t2 = and i64 %t1, 4294967295
28*9880d681SAndroid Build Coastguard Worker	ret i64 %t2
29*9880d681SAndroid Build Coastguard Worker}
30