xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/inline-asm-2addr.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine i64 @t(i64 %a, i64 %b) nounwind ssp {
4*9880d681SAndroid Build Coastguard Workerentry:
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t:
6*9880d681SAndroid Build Coastguard Worker	%asmtmp = tail call i64 asm "rorq $1,$0", "=r,J,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i32 1, i64 %a) nounwind		; <i64> [#uses=1]
7*9880d681SAndroid Build Coastguard Worker; CHECK:      #APP
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: rorq    %[[REG1:.*]]
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: #NO_APP
10*9880d681SAndroid Build Coastguard Worker	%asmtmp1 = tail call i64 asm "rorq $1,$0", "=r,J,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i32 1, i64 %b) nounwind		; <i64> [#uses=1]
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: #APP
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: rorq    %[[REG2:.*]]
13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: #NO_APP
14*9880d681SAndroid Build Coastguard Worker	%0 = add i64 %asmtmp1, %asmtmp		; <i64> [#uses=1]
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: leaq    (%[[REG2]],%[[REG1]]), %rax
16*9880d681SAndroid Build Coastguard Worker	ret i64 %0
17*9880d681SAndroid Build Coastguard Worker; CHECK:      retq
18*9880d681SAndroid Build Coastguard Worker}
19