[llvm] r334302 - [X86] Fix schedule-x86_64.s tests to use different registers in reg-reg cases
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 8 09:40:15 PDT 2018
Author: rksimon
Date: Fri Jun 8 09:40:15 2018
New Revision: 334302
URL: http://llvm.org/viewvc/llvm-project?rev=334302&view=rev
Log:
[X86] Fix schedule-x86_64.s tests to use different registers in reg-reg cases
Same fix as rL334110: I noticed while working on zero-idiom + dependency-breaking support (PR36671) that most of our binary instruction schedule tests were reusing the same src registers, which would cause the tests to fail once we enable scalar zero-idiom support on btver2.
Modified:
llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll
Modified: llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll?rev=334302&r1=334301&r2=334302&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll (original)
+++ llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll Fri Jun 8 09:40:15 2018
@@ -11,14 +11,14 @@
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1
-define void @test_adc_8(i8 %a0, i8* %a1) optsize {
+define void @test_adc_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_adc_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: adcb $7, %al # sched: [2:0.67]
; GENERIC-NEXT: adcb $7, %dil # sched: [2:0.67]
; GENERIC-NEXT: adcb $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: adcb %dil, %dil # sched: [2:0.67]
+; GENERIC-NEXT: adcb %dl, %dil # sched: [2:0.67]
; GENERIC-NEXT: adcb %dil, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: adcb (%rsi), %dil # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -30,7 +30,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; ATOM-NEXT: adcb $7, %al # sched: [1:0.50]
; ATOM-NEXT: adcb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: adcb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: adcb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: adcb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: adcb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: adcb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -42,7 +42,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; SLM-NEXT: adcb $7, %al # sched: [1:0.50]
; SLM-NEXT: adcb $7, %dil # sched: [1:0.50]
; SLM-NEXT: adcb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: adcb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: adcb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: adcb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: adcb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -54,7 +54,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; SANDY-NEXT: adcb $7, %al # sched: [2:0.67]
; SANDY-NEXT: adcb $7, %dil # sched: [2:0.67]
; SANDY-NEXT: adcb $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: adcb %dil, %dil # sched: [2:0.67]
+; SANDY-NEXT: adcb %dl, %dil # sched: [2:0.67]
; SANDY-NEXT: adcb %dil, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: adcb (%rsi), %dil # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -66,7 +66,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: adcb $7, %al # sched: [2:0.50]
; HASWELL-NEXT: adcb $7, %dil # sched: [2:0.50]
; HASWELL-NEXT: adcb $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: adcb %dil, %dil # sched: [2:0.50]
+; HASWELL-NEXT: adcb %dl, %dil # sched: [2:0.50]
; HASWELL-NEXT: adcb %dil, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: adcb (%rsi), %dil # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -78,7 +78,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: adcb $7, %al # sched: [2:0.50]
; BROADWELL-NEXT: adcb $7, %dil # sched: [2:0.50]
; BROADWELL-NEXT: adcb $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: adcb %dil, %dil # sched: [1:0.50]
+; BROADWELL-NEXT: adcb %dl, %dil # sched: [1:0.50]
; BROADWELL-NEXT: adcb %dil, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: adcb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -90,7 +90,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: adcb $7, %al # sched: [2:0.50]
; SKYLAKE-NEXT: adcb $7, %dil # sched: [2:0.50]
; SKYLAKE-NEXT: adcb $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: adcb %dil, %dil # sched: [1:0.50]
+; SKYLAKE-NEXT: adcb %dl, %dil # sched: [1:0.50]
; SKYLAKE-NEXT: adcb %dil, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: adcb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -102,7 +102,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; SKX-NEXT: adcb $7, %al # sched: [2:0.50]
; SKX-NEXT: adcb $7, %dil # sched: [2:0.50]
; SKX-NEXT: adcb $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: adcb %dil, %dil # sched: [1:0.50]
+; SKX-NEXT: adcb %dl, %dil # sched: [1:0.50]
; SKX-NEXT: adcb %dil, (%rsi) # sched: [8:1.00]
; SKX-NEXT: adcb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -114,7 +114,7 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: adcb $7, %al # sched: [1:1.00]
; BTVER2-NEXT: adcb $7, %dil # sched: [1:1.00]
; BTVER2-NEXT: adcb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: adcb %dil, %dil # sched: [1:1.00]
+; BTVER2-NEXT: adcb %dl, %dil # sched: [1:1.00]
; BTVER2-NEXT: adcb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: adcb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -126,15 +126,15 @@ define void @test_adc_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: adcb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: adcb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: adcb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: adcb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: adcb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: adcb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: adcb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "adcb $2, %AL \0A\09 adcb $2, $0 \0A\09 adcb $2, $1 \0A\09 adcb $0, $0 \0A\09 adcb $0, $1 \0A\09 adcb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "adcb $3, %AL \0A\09 adcb $3, $0 \0A\09 adcb $3, $2 \0A\09 adcb $1, $0 \0A\09 adcb $0, $2 \0A\09 adcb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_adc_16(i16 %a0, i16* %a1) optsize {
+define void @test_adc_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_adc_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -146,7 +146,7 @@ define void @test_adc_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: adcw $7, %di # sched: [2:0.67]
; GENERIC-NEXT: adcw $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: adcw %di, %di # sched: [2:0.67]
+; GENERIC-NEXT: adcw %dx, %di # sched: [2:0.67]
; GENERIC-NEXT: adcw %di, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: adcw (%rsi), %di # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -163,7 +163,7 @@ define void @test_adc_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: adcw $7, %di # sched: [1:0.50]
; ATOM-NEXT: adcw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: adcw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: adcw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: adcw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: adcw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -180,7 +180,7 @@ define void @test_adc_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: adcw $7, %di # sched: [1:0.50]
; SLM-NEXT: adcw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: adcw %di, %di # sched: [1:0.50]
+; SLM-NEXT: adcw %dx, %di # sched: [1:0.50]
; SLM-NEXT: adcw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: adcw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -197,7 +197,7 @@ define void @test_adc_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: adcw $7, %di # sched: [2:0.67]
; SANDY-NEXT: adcw $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: adcw %di, %di # sched: [2:0.67]
+; SANDY-NEXT: adcw %dx, %di # sched: [2:0.67]
; SANDY-NEXT: adcw %di, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: adcw (%rsi), %di # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -214,7 +214,7 @@ define void @test_adc_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: adcw $7, %di # sched: [2:0.50]
; HASWELL-NEXT: adcw $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: adcw %di, %di # sched: [2:0.50]
+; HASWELL-NEXT: adcw %dx, %di # sched: [2:0.50]
; HASWELL-NEXT: adcw %di, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: adcw (%rsi), %di # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -231,7 +231,7 @@ define void @test_adc_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: adcw $7, %di # sched: [1:0.50]
; BROADWELL-NEXT: adcw $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: adcw %di, %di # sched: [1:0.50]
+; BROADWELL-NEXT: adcw %dx, %di # sched: [1:0.50]
; BROADWELL-NEXT: adcw %di, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: adcw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -248,7 +248,7 @@ define void @test_adc_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: adcw $7, %di # sched: [1:0.50]
; SKYLAKE-NEXT: adcw $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: adcw %di, %di # sched: [1:0.50]
+; SKYLAKE-NEXT: adcw %dx, %di # sched: [1:0.50]
; SKYLAKE-NEXT: adcw %di, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: adcw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -265,7 +265,7 @@ define void @test_adc_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: adcw $7, %di # sched: [1:0.50]
; SKX-NEXT: adcw $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: adcw %di, %di # sched: [1:0.50]
+; SKX-NEXT: adcw %dx, %di # sched: [1:0.50]
; SKX-NEXT: adcw %di, (%rsi) # sched: [8:1.00]
; SKX-NEXT: adcw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -282,7 +282,7 @@ define void @test_adc_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: adcw $7, %di # sched: [1:1.00]
; BTVER2-NEXT: adcw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: adcw %di, %di # sched: [1:1.00]
+; BTVER2-NEXT: adcw %dx, %di # sched: [1:1.00]
; BTVER2-NEXT: adcw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: adcw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -299,15 +299,15 @@ define void @test_adc_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: adcw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: adcw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: adcw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: adcw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: adcw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: adcw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "adcw $2, %AX \0A\09 adcw $2, $0 \0A\09 adcw $2, $1 \0A\09 adcw $3, $0 \0A\09 adcw $3, $1 \0A\09 adcw $0, $0 \0A\09 adcw $0, $1 \0A\09 adcw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "adcw $3, %AX \0A\09 adcw $3, $0 \0A\09 adcw $3, $2 \0A\09 adcw $4, $0 \0A\09 adcw $4, $2 \0A\09 adcw $1, $0 \0A\09 adcw $0, $2 \0A\09 adcw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_adc_32(i32 %a0, i32* %a1) optsize {
+define void @test_adc_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_adc_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -319,7 +319,7 @@ define void @test_adc_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: adcl $7, %edi # sched: [2:0.67]
; GENERIC-NEXT: adcl $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: adcl %edi, %edi # sched: [2:0.67]
+; GENERIC-NEXT: adcl %edx, %edi # sched: [2:0.67]
; GENERIC-NEXT: adcl %edi, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: adcl (%rsi), %edi # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -336,7 +336,7 @@ define void @test_adc_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: adcl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: adcl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: adcl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: adcl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: adcl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: adcl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -353,7 +353,7 @@ define void @test_adc_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: adcl $7, %edi # sched: [1:0.50]
; SLM-NEXT: adcl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: adcl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: adcl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: adcl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: adcl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -370,7 +370,7 @@ define void @test_adc_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: adcl $7, %edi # sched: [2:0.67]
; SANDY-NEXT: adcl $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: adcl %edi, %edi # sched: [2:0.67]
+; SANDY-NEXT: adcl %edx, %edi # sched: [2:0.67]
; SANDY-NEXT: adcl %edi, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: adcl (%rsi), %edi # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -387,7 +387,7 @@ define void @test_adc_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: adcl $7, %edi # sched: [2:0.50]
; HASWELL-NEXT: adcl $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: adcl %edi, %edi # sched: [2:0.50]
+; HASWELL-NEXT: adcl %edx, %edi # sched: [2:0.50]
; HASWELL-NEXT: adcl %edi, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: adcl (%rsi), %edi # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -404,7 +404,7 @@ define void @test_adc_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: adcl $7, %edi # sched: [1:0.50]
; BROADWELL-NEXT: adcl $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: adcl %edi, %edi # sched: [1:0.50]
+; BROADWELL-NEXT: adcl %edx, %edi # sched: [1:0.50]
; BROADWELL-NEXT: adcl %edi, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: adcl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -421,7 +421,7 @@ define void @test_adc_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: adcl $7, %edi # sched: [1:0.50]
; SKYLAKE-NEXT: adcl $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: adcl %edi, %edi # sched: [1:0.50]
+; SKYLAKE-NEXT: adcl %edx, %edi # sched: [1:0.50]
; SKYLAKE-NEXT: adcl %edi, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: adcl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -438,7 +438,7 @@ define void @test_adc_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: adcl $7, %edi # sched: [1:0.50]
; SKX-NEXT: adcl $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: adcl %edi, %edi # sched: [1:0.50]
+; SKX-NEXT: adcl %edx, %edi # sched: [1:0.50]
; SKX-NEXT: adcl %edi, (%rsi) # sched: [8:1.00]
; SKX-NEXT: adcl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -455,7 +455,7 @@ define void @test_adc_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: adcl $7, %edi # sched: [1:1.00]
; BTVER2-NEXT: adcl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: adcl %edi, %edi # sched: [1:1.00]
+; BTVER2-NEXT: adcl %edx, %edi # sched: [1:1.00]
; BTVER2-NEXT: adcl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: adcl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -472,15 +472,15 @@ define void @test_adc_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: adcl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: adcl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: adcl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: adcl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: adcl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: adcl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "adcl $2, %EAX \0A\09 adcl $2, $0 \0A\09 adcl $2, $1 \0A\09 adcl $3, $0 \0A\09 adcl $3, $1 \0A\09 adcl $0, $0 \0A\09 adcl $0, $1 \0A\09 adcl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "adcl $3, %EAX \0A\09 adcl $3, $0 \0A\09 adcl $3, $2 \0A\09 adcl $4, $0 \0A\09 adcl $4, $2 \0A\09 adcl $1, $0 \0A\09 adcl $0, $2 \0A\09 adcl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_adc_64(i64 %a0, i64* %a1) optsize {
+define void @test_adc_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_adc_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -492,7 +492,7 @@ define void @test_adc_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: adcq $7, %rdi # sched: [2:0.67]
; GENERIC-NEXT: adcq $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: adcq %rdi, %rdi # sched: [2:0.67]
+; GENERIC-NEXT: adcq %rdx, %rdi # sched: [2:0.67]
; GENERIC-NEXT: adcq %rdi, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: adcq (%rsi), %rdi # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -509,7 +509,7 @@ define void @test_adc_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: adcq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: adcq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: adcq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: adcq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: adcq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: adcq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -526,7 +526,7 @@ define void @test_adc_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: adcq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: adcq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: adcq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: adcq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: adcq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: adcq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -543,7 +543,7 @@ define void @test_adc_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: adcq $7, %rdi # sched: [2:0.67]
; SANDY-NEXT: adcq $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: adcq %rdi, %rdi # sched: [2:0.67]
+; SANDY-NEXT: adcq %rdx, %rdi # sched: [2:0.67]
; SANDY-NEXT: adcq %rdi, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: adcq (%rsi), %rdi # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -560,7 +560,7 @@ define void @test_adc_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: adcq $7, %rdi # sched: [2:0.50]
; HASWELL-NEXT: adcq $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: adcq %rdi, %rdi # sched: [2:0.50]
+; HASWELL-NEXT: adcq %rdx, %rdi # sched: [2:0.50]
; HASWELL-NEXT: adcq %rdi, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: adcq (%rsi), %rdi # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -577,7 +577,7 @@ define void @test_adc_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: adcq $7, %rdi # sched: [1:0.50]
; BROADWELL-NEXT: adcq $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: adcq %rdi, %rdi # sched: [1:0.50]
+; BROADWELL-NEXT: adcq %rdx, %rdi # sched: [1:0.50]
; BROADWELL-NEXT: adcq %rdi, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: adcq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -594,7 +594,7 @@ define void @test_adc_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: adcq $7, %rdi # sched: [1:0.50]
; SKYLAKE-NEXT: adcq $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: adcq %rdi, %rdi # sched: [1:0.50]
+; SKYLAKE-NEXT: adcq %rdx, %rdi # sched: [1:0.50]
; SKYLAKE-NEXT: adcq %rdi, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: adcq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -611,7 +611,7 @@ define void @test_adc_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: adcq $7, %rdi # sched: [1:0.50]
; SKX-NEXT: adcq $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: adcq %rdi, %rdi # sched: [1:0.50]
+; SKX-NEXT: adcq %rdx, %rdi # sched: [1:0.50]
; SKX-NEXT: adcq %rdi, (%rsi) # sched: [8:1.00]
; SKX-NEXT: adcq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -628,7 +628,7 @@ define void @test_adc_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: adcq $7, %rdi # sched: [1:1.00]
; BTVER2-NEXT: adcq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: adcq %rdi, %rdi # sched: [1:1.00]
+; BTVER2-NEXT: adcq %rdx, %rdi # sched: [1:1.00]
; BTVER2-NEXT: adcq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: adcq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -645,23 +645,23 @@ define void @test_adc_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: adcq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: adcq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: adcq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: adcq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: adcq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: adcq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "adcq $2, %RAX \0A\09 adcq $2, $0 \0A\09 adcq $2, $1 \0A\09 adcq $3, $0 \0A\09 adcq $3, $1 \0A\09 adcq $0, $0 \0A\09 adcq $0, $1 \0A\09 adcq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "adcq $3, %RAX \0A\09 adcq $3, $0 \0A\09 adcq $3, $2 \0A\09 adcq $4, $0 \0A\09 adcq $4, $2 \0A\09 adcq $1, $0 \0A\09 adcq $0, $2 \0A\09 adcq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_add_8(i8 %a0, i8* %a1) optsize {
+define void @test_add_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_add_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: addb $7, %al # sched: [1:0.33]
; GENERIC-NEXT: addb $7, %dil # sched: [1:0.33]
; GENERIC-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: addb %dil, %dil # sched: [1:0.33]
+; GENERIC-NEXT: addb %dl, %dil # sched: [1:0.33]
; GENERIC-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -673,7 +673,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; ATOM-NEXT: addb $7, %al # sched: [1:0.50]
; ATOM-NEXT: addb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: addb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: addb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: addb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: addb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: addb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -685,7 +685,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; SLM-NEXT: addb $7, %al # sched: [1:0.50]
; SLM-NEXT: addb $7, %dil # sched: [1:0.50]
; SLM-NEXT: addb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: addb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: addb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: addb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: addb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -697,7 +697,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; SANDY-NEXT: addb $7, %al # sched: [1:0.33]
; SANDY-NEXT: addb $7, %dil # sched: [1:0.33]
; SANDY-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: addb %dil, %dil # sched: [1:0.33]
+; SANDY-NEXT: addb %dl, %dil # sched: [1:0.33]
; SANDY-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -709,7 +709,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: addb $7, %al # sched: [1:0.25]
; HASWELL-NEXT: addb $7, %dil # sched: [1:0.25]
; HASWELL-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: addb %dil, %dil # sched: [1:0.25]
+; HASWELL-NEXT: addb %dl, %dil # sched: [1:0.25]
; HASWELL-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -721,7 +721,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: addb $7, %al # sched: [1:0.25]
; BROADWELL-NEXT: addb $7, %dil # sched: [1:0.25]
; BROADWELL-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: addb %dil, %dil # sched: [1:0.25]
+; BROADWELL-NEXT: addb %dl, %dil # sched: [1:0.25]
; BROADWELL-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -733,7 +733,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: addb $7, %al # sched: [1:0.25]
; SKYLAKE-NEXT: addb $7, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: addb %dil, %dil # sched: [1:0.25]
+; SKYLAKE-NEXT: addb %dl, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -745,7 +745,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; SKX-NEXT: addb $7, %al # sched: [1:0.25]
; SKX-NEXT: addb $7, %dil # sched: [1:0.25]
; SKX-NEXT: addb $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: addb %dil, %dil # sched: [1:0.25]
+; SKX-NEXT: addb %dl, %dil # sched: [1:0.25]
; SKX-NEXT: addb %dil, (%rsi) # sched: [7:1.00]
; SKX-NEXT: addb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -757,7 +757,7 @@ define void @test_add_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: addb $7, %al # sched: [1:0.50]
; BTVER2-NEXT: addb $7, %dil # sched: [1:0.50]
; BTVER2-NEXT: addb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: addb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT: addb %dl, %dil # sched: [1:0.50]
; BTVER2-NEXT: addb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: addb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -769,15 +769,15 @@ define void @test_add_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: addb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: addb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: addb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: addb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: addb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: addb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: addb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "addb $2, %AL \0A\09 addb $2, $0 \0A\09 addb $2, $1 \0A\09 addb $0, $0 \0A\09 addb $0, $1 \0A\09 addb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "addb $3, %AL \0A\09 addb $3, $0 \0A\09 addb $3, $2 \0A\09 addb $1, $0 \0A\09 addb $0, $2 \0A\09 addb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_add_16(i16 %a0, i16* %a1) optsize {
+define void @test_add_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_add_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -789,7 +789,7 @@ define void @test_add_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: addw $7, %di # sched: [1:0.33]
; GENERIC-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: addw %di, %di # sched: [1:0.33]
+; GENERIC-NEXT: addw %dx, %di # sched: [1:0.33]
; GENERIC-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: addw (%rsi), %di # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -806,7 +806,7 @@ define void @test_add_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: addw $7, %di # sched: [1:0.50]
; ATOM-NEXT: addw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: addw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: addw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: addw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: addw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -823,7 +823,7 @@ define void @test_add_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: addw $7, %di # sched: [1:0.50]
; SLM-NEXT: addw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: addw %di, %di # sched: [1:0.50]
+; SLM-NEXT: addw %dx, %di # sched: [1:0.50]
; SLM-NEXT: addw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: addw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -840,7 +840,7 @@ define void @test_add_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: addw $7, %di # sched: [1:0.33]
; SANDY-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: addw %di, %di # sched: [1:0.33]
+; SANDY-NEXT: addw %dx, %di # sched: [1:0.33]
; SANDY-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: addw (%rsi), %di # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -857,7 +857,7 @@ define void @test_add_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: addw $7, %di # sched: [1:0.25]
; HASWELL-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: addw %di, %di # sched: [1:0.25]
+; HASWELL-NEXT: addw %dx, %di # sched: [1:0.25]
; HASWELL-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: addw (%rsi), %di # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -874,7 +874,7 @@ define void @test_add_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: addw $7, %di # sched: [1:0.25]
; BROADWELL-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: addw %di, %di # sched: [1:0.25]
+; BROADWELL-NEXT: addw %dx, %di # sched: [1:0.25]
; BROADWELL-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: addw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -891,7 +891,7 @@ define void @test_add_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: addw $7, %di # sched: [1:0.25]
; SKYLAKE-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: addw %di, %di # sched: [1:0.25]
+; SKYLAKE-NEXT: addw %dx, %di # sched: [1:0.25]
; SKYLAKE-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: addw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -908,7 +908,7 @@ define void @test_add_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: addw $7, %di # sched: [1:0.25]
; SKX-NEXT: addw $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: addw %di, %di # sched: [1:0.25]
+; SKX-NEXT: addw %dx, %di # sched: [1:0.25]
; SKX-NEXT: addw %di, (%rsi) # sched: [7:1.00]
; SKX-NEXT: addw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -925,7 +925,7 @@ define void @test_add_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: addw $7, %di # sched: [1:0.50]
; BTVER2-NEXT: addw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: addw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT: addw %dx, %di # sched: [1:0.50]
; BTVER2-NEXT: addw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: addw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -942,15 +942,15 @@ define void @test_add_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: addw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: addw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: addw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: addw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: addw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: addw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "addw $2, %AX \0A\09 addw $2, $0 \0A\09 addw $2, $1 \0A\09 addw $3, $0 \0A\09 addw $3, $1 \0A\09 addw $0, $0 \0A\09 addw $0, $1 \0A\09 addw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "addw $3, %AX \0A\09 addw $3, $0 \0A\09 addw $3, $2 \0A\09 addw $4, $0 \0A\09 addw $4, $2 \0A\09 addw $1, $0 \0A\09 addw $0, $2 \0A\09 addw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_add_32(i32 %a0, i32* %a1) optsize {
+define void @test_add_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_add_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -962,7 +962,7 @@ define void @test_add_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: addl $7, %edi # sched: [1:0.33]
; GENERIC-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: addl %edi, %edi # sched: [1:0.33]
+; GENERIC-NEXT: addl %edx, %edi # sched: [1:0.33]
; GENERIC-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -979,7 +979,7 @@ define void @test_add_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: addl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: addl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: addl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: addl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: addl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: addl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -996,7 +996,7 @@ define void @test_add_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: addl $7, %edi # sched: [1:0.50]
; SLM-NEXT: addl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: addl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: addl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: addl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: addl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1013,7 +1013,7 @@ define void @test_add_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: addl $7, %edi # sched: [1:0.33]
; SANDY-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: addl %edi, %edi # sched: [1:0.33]
+; SANDY-NEXT: addl %edx, %edi # sched: [1:0.33]
; SANDY-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1030,7 +1030,7 @@ define void @test_add_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: addl $7, %edi # sched: [1:0.25]
; HASWELL-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: addl %edi, %edi # sched: [1:0.25]
+; HASWELL-NEXT: addl %edx, %edi # sched: [1:0.25]
; HASWELL-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1047,7 +1047,7 @@ define void @test_add_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: addl $7, %edi # sched: [1:0.25]
; BROADWELL-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: addl %edi, %edi # sched: [1:0.25]
+; BROADWELL-NEXT: addl %edx, %edi # sched: [1:0.25]
; BROADWELL-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1064,7 +1064,7 @@ define void @test_add_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: addl $7, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: addl %edi, %edi # sched: [1:0.25]
+; SKYLAKE-NEXT: addl %edx, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1081,7 +1081,7 @@ define void @test_add_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: addl $7, %edi # sched: [1:0.25]
; SKX-NEXT: addl $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: addl %edi, %edi # sched: [1:0.25]
+; SKX-NEXT: addl %edx, %edi # sched: [1:0.25]
; SKX-NEXT: addl %edi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: addl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1098,7 +1098,7 @@ define void @test_add_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: addl $7, %edi # sched: [1:0.50]
; BTVER2-NEXT: addl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: addl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT: addl %edx, %edi # sched: [1:0.50]
; BTVER2-NEXT: addl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: addl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1115,15 +1115,15 @@ define void @test_add_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: addl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: addl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: addl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: addl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: addl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: addl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "addl $2, %EAX \0A\09 addl $2, $0 \0A\09 addl $2, $1 \0A\09 addl $3, $0 \0A\09 addl $3, $1 \0A\09 addl $0, $0 \0A\09 addl $0, $1 \0A\09 addl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "addl $3, %EAX \0A\09 addl $3, $0 \0A\09 addl $3, $2 \0A\09 addl $4, $0 \0A\09 addl $4, $2 \0A\09 addl $1, $0 \0A\09 addl $0, $2 \0A\09 addl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_add_64(i64 %a0, i64* %a1) optsize {
+define void @test_add_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_add_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -1135,7 +1135,7 @@ define void @test_add_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: addq $7, %rdi # sched: [1:0.33]
; GENERIC-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: addq %rdi, %rdi # sched: [1:0.33]
+; GENERIC-NEXT: addq %rdx, %rdi # sched: [1:0.33]
; GENERIC-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -1152,7 +1152,7 @@ define void @test_add_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: addq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: addq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: addq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: addq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: addq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: addq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -1169,7 +1169,7 @@ define void @test_add_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: addq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: addq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: addq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: addq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: addq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: addq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1186,7 +1186,7 @@ define void @test_add_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: addq $7, %rdi # sched: [1:0.33]
; SANDY-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: addq %rdi, %rdi # sched: [1:0.33]
+; SANDY-NEXT: addq %rdx, %rdi # sched: [1:0.33]
; SANDY-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1203,7 +1203,7 @@ define void @test_add_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: addq $7, %rdi # sched: [1:0.25]
; HASWELL-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: addq %rdi, %rdi # sched: [1:0.25]
+; HASWELL-NEXT: addq %rdx, %rdi # sched: [1:0.25]
; HASWELL-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1220,7 +1220,7 @@ define void @test_add_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: addq $7, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: addq %rdi, %rdi # sched: [1:0.25]
+; BROADWELL-NEXT: addq %rdx, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1237,7 +1237,7 @@ define void @test_add_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: addq $7, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: addq %rdi, %rdi # sched: [1:0.25]
+; SKYLAKE-NEXT: addq %rdx, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1254,7 +1254,7 @@ define void @test_add_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: addq $7, %rdi # sched: [1:0.25]
; SKX-NEXT: addq $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: addq %rdi, %rdi # sched: [1:0.25]
+; SKX-NEXT: addq %rdx, %rdi # sched: [1:0.25]
; SKX-NEXT: addq %rdi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: addq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1271,7 +1271,7 @@ define void @test_add_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: addq $7, %rdi # sched: [1:0.50]
; BTVER2-NEXT: addq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: addq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT: addq %rdx, %rdi # sched: [1:0.50]
; BTVER2-NEXT: addq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: addq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1288,23 +1288,23 @@ define void @test_add_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: addq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: addq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: addq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: addq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: addq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: addq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "addq $2, %RAX \0A\09 addq $2, $0 \0A\09 addq $2, $1 \0A\09 addq $3, $0 \0A\09 addq $3, $1 \0A\09 addq $0, $0 \0A\09 addq $0, $1 \0A\09 addq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "addq $3, %RAX \0A\09 addq $3, $0 \0A\09 addq $3, $2 \0A\09 addq $4, $0 \0A\09 addq $4, $2 \0A\09 addq $1, $0 \0A\09 addq $0, $2 \0A\09 addq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_and_8(i8 %a0, i8* %a1) optsize {
+define void @test_and_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_and_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: andb $7, %al # sched: [1:0.33]
; GENERIC-NEXT: andb $7, %dil # sched: [1:0.33]
; GENERIC-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: andb %dil, %dil # sched: [1:0.33]
+; GENERIC-NEXT: andb %dl, %dil # sched: [1:0.33]
; GENERIC-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -1316,7 +1316,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; ATOM-NEXT: andb $7, %al # sched: [1:0.50]
; ATOM-NEXT: andb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: andb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: andb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: andb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: andb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: andb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -1328,7 +1328,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; SLM-NEXT: andb $7, %al # sched: [1:0.50]
; SLM-NEXT: andb $7, %dil # sched: [1:0.50]
; SLM-NEXT: andb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: andb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: andb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: andb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: andb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1340,7 +1340,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; SANDY-NEXT: andb $7, %al # sched: [1:0.33]
; SANDY-NEXT: andb $7, %dil # sched: [1:0.33]
; SANDY-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: andb %dil, %dil # sched: [1:0.33]
+; SANDY-NEXT: andb %dl, %dil # sched: [1:0.33]
; SANDY-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1352,7 +1352,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: andb $7, %al # sched: [1:0.25]
; HASWELL-NEXT: andb $7, %dil # sched: [1:0.25]
; HASWELL-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: andb %dil, %dil # sched: [1:0.25]
+; HASWELL-NEXT: andb %dl, %dil # sched: [1:0.25]
; HASWELL-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1364,7 +1364,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: andb $7, %al # sched: [1:0.25]
; BROADWELL-NEXT: andb $7, %dil # sched: [1:0.25]
; BROADWELL-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: andb %dil, %dil # sched: [1:0.25]
+; BROADWELL-NEXT: andb %dl, %dil # sched: [1:0.25]
; BROADWELL-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1376,7 +1376,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: andb $7, %al # sched: [1:0.25]
; SKYLAKE-NEXT: andb $7, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: andb %dil, %dil # sched: [1:0.25]
+; SKYLAKE-NEXT: andb %dl, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1388,7 +1388,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; SKX-NEXT: andb $7, %al # sched: [1:0.25]
; SKX-NEXT: andb $7, %dil # sched: [1:0.25]
; SKX-NEXT: andb $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: andb %dil, %dil # sched: [1:0.25]
+; SKX-NEXT: andb %dl, %dil # sched: [1:0.25]
; SKX-NEXT: andb %dil, (%rsi) # sched: [7:1.00]
; SKX-NEXT: andb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1400,7 +1400,7 @@ define void @test_and_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: andb $7, %al # sched: [1:0.50]
; BTVER2-NEXT: andb $7, %dil # sched: [1:0.50]
; BTVER2-NEXT: andb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: andb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT: andb %dl, %dil # sched: [1:0.50]
; BTVER2-NEXT: andb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: andb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1412,15 +1412,15 @@ define void @test_and_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: andb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: andb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: andb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: andb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: andb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: andb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: andb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "andb $2, %AL \0A\09 andb $2, $0 \0A\09 andb $2, $1 \0A\09 andb $0, $0 \0A\09 andb $0, $1 \0A\09 andb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "andb $3, %AL \0A\09 andb $3, $0 \0A\09 andb $3, $2 \0A\09 andb $1, $0 \0A\09 andb $0, $2 \0A\09 andb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_and_16(i16 %a0, i16* %a1) optsize {
+define void @test_and_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_and_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -1432,7 +1432,7 @@ define void @test_and_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: andw $7, %di # sched: [1:0.33]
; GENERIC-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: andw %di, %di # sched: [1:0.33]
+; GENERIC-NEXT: andw %dx, %di # sched: [1:0.33]
; GENERIC-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: andw (%rsi), %di # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -1449,7 +1449,7 @@ define void @test_and_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: andw $7, %di # sched: [1:0.50]
; ATOM-NEXT: andw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: andw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: andw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: andw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: andw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -1466,7 +1466,7 @@ define void @test_and_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: andw $7, %di # sched: [1:0.50]
; SLM-NEXT: andw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: andw %di, %di # sched: [1:0.50]
+; SLM-NEXT: andw %dx, %di # sched: [1:0.50]
; SLM-NEXT: andw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: andw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1483,7 +1483,7 @@ define void @test_and_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: andw $7, %di # sched: [1:0.33]
; SANDY-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: andw %di, %di # sched: [1:0.33]
+; SANDY-NEXT: andw %dx, %di # sched: [1:0.33]
; SANDY-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: andw (%rsi), %di # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1500,7 +1500,7 @@ define void @test_and_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: andw $7, %di # sched: [1:0.25]
; HASWELL-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: andw %di, %di # sched: [1:0.25]
+; HASWELL-NEXT: andw %dx, %di # sched: [1:0.25]
; HASWELL-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: andw (%rsi), %di # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1517,7 +1517,7 @@ define void @test_and_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: andw $7, %di # sched: [1:0.25]
; BROADWELL-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: andw %di, %di # sched: [1:0.25]
+; BROADWELL-NEXT: andw %dx, %di # sched: [1:0.25]
; BROADWELL-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: andw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1534,7 +1534,7 @@ define void @test_and_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: andw $7, %di # sched: [1:0.25]
; SKYLAKE-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: andw %di, %di # sched: [1:0.25]
+; SKYLAKE-NEXT: andw %dx, %di # sched: [1:0.25]
; SKYLAKE-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: andw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1551,7 +1551,7 @@ define void @test_and_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: andw $7, %di # sched: [1:0.25]
; SKX-NEXT: andw $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: andw %di, %di # sched: [1:0.25]
+; SKX-NEXT: andw %dx, %di # sched: [1:0.25]
; SKX-NEXT: andw %di, (%rsi) # sched: [7:1.00]
; SKX-NEXT: andw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1568,7 +1568,7 @@ define void @test_and_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: andw $7, %di # sched: [1:0.50]
; BTVER2-NEXT: andw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: andw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT: andw %dx, %di # sched: [1:0.50]
; BTVER2-NEXT: andw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: andw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1585,15 +1585,15 @@ define void @test_and_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: andw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: andw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: andw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: andw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: andw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: andw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "andw $2, %AX \0A\09 andw $2, $0 \0A\09 andw $2, $1 \0A\09 andw $3, $0 \0A\09 andw $3, $1 \0A\09 andw $0, $0 \0A\09 andw $0, $1 \0A\09 andw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "andw $3, %AX \0A\09 andw $3, $0 \0A\09 andw $3, $2 \0A\09 andw $4, $0 \0A\09 andw $4, $2 \0A\09 andw $1, $0 \0A\09 andw $0, $2 \0A\09 andw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_and_32(i32 %a0, i32* %a1) optsize {
+define void @test_and_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_and_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -1605,7 +1605,7 @@ define void @test_and_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: andl $7, %edi # sched: [1:0.33]
; GENERIC-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: andl %edi, %edi # sched: [1:0.33]
+; GENERIC-NEXT: andl %edx, %edi # sched: [1:0.33]
; GENERIC-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -1622,7 +1622,7 @@ define void @test_and_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: andl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: andl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: andl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: andl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: andl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: andl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -1639,7 +1639,7 @@ define void @test_and_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: andl $7, %edi # sched: [1:0.50]
; SLM-NEXT: andl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: andl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: andl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: andl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: andl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1656,7 +1656,7 @@ define void @test_and_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: andl $7, %edi # sched: [1:0.33]
; SANDY-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: andl %edi, %edi # sched: [1:0.33]
+; SANDY-NEXT: andl %edx, %edi # sched: [1:0.33]
; SANDY-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1673,7 +1673,7 @@ define void @test_and_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: andl $7, %edi # sched: [1:0.25]
; HASWELL-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: andl %edi, %edi # sched: [1:0.25]
+; HASWELL-NEXT: andl %edx, %edi # sched: [1:0.25]
; HASWELL-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1690,7 +1690,7 @@ define void @test_and_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: andl $7, %edi # sched: [1:0.25]
; BROADWELL-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: andl %edi, %edi # sched: [1:0.25]
+; BROADWELL-NEXT: andl %edx, %edi # sched: [1:0.25]
; BROADWELL-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1707,7 +1707,7 @@ define void @test_and_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: andl $7, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: andl %edi, %edi # sched: [1:0.25]
+; SKYLAKE-NEXT: andl %edx, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1724,7 +1724,7 @@ define void @test_and_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: andl $7, %edi # sched: [1:0.25]
; SKX-NEXT: andl $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: andl %edi, %edi # sched: [1:0.25]
+; SKX-NEXT: andl %edx, %edi # sched: [1:0.25]
; SKX-NEXT: andl %edi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: andl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1741,7 +1741,7 @@ define void @test_and_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: andl $7, %edi # sched: [1:0.50]
; BTVER2-NEXT: andl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: andl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT: andl %edx, %edi # sched: [1:0.50]
; BTVER2-NEXT: andl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: andl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1758,15 +1758,15 @@ define void @test_and_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: andl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: andl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: andl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: andl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: andl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: andl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "andl $2, %EAX \0A\09 andl $2, $0 \0A\09 andl $2, $1 \0A\09 andl $3, $0 \0A\09 andl $3, $1 \0A\09 andl $0, $0 \0A\09 andl $0, $1 \0A\09 andl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "andl $3, %EAX \0A\09 andl $3, $0 \0A\09 andl $3, $2 \0A\09 andl $4, $0 \0A\09 andl $4, $2 \0A\09 andl $1, $0 \0A\09 andl $0, $2 \0A\09 andl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_and_64(i64 %a0, i64* %a1) optsize {
+define void @test_and_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_and_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -1778,7 +1778,7 @@ define void @test_and_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: andq $7, %rdi # sched: [1:0.33]
; GENERIC-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: andq %rdi, %rdi # sched: [1:0.33]
+; GENERIC-NEXT: andq %rdx, %rdi # sched: [1:0.33]
; GENERIC-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -1795,7 +1795,7 @@ define void @test_and_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: andq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: andq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: andq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: andq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: andq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: andq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -1812,7 +1812,7 @@ define void @test_and_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: andq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: andq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: andq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: andq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: andq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: andq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -1829,7 +1829,7 @@ define void @test_and_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: andq $7, %rdi # sched: [1:0.33]
; SANDY-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: andq %rdi, %rdi # sched: [1:0.33]
+; SANDY-NEXT: andq %rdx, %rdi # sched: [1:0.33]
; SANDY-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -1846,7 +1846,7 @@ define void @test_and_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: andq $7, %rdi # sched: [1:0.25]
; HASWELL-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: andq %rdi, %rdi # sched: [1:0.25]
+; HASWELL-NEXT: andq %rdx, %rdi # sched: [1:0.25]
; HASWELL-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -1863,7 +1863,7 @@ define void @test_and_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: andq $7, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: andq %rdi, %rdi # sched: [1:0.25]
+; BROADWELL-NEXT: andq %rdx, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -1880,7 +1880,7 @@ define void @test_and_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: andq $7, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: andq %rdi, %rdi # sched: [1:0.25]
+; SKYLAKE-NEXT: andq %rdx, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -1897,7 +1897,7 @@ define void @test_and_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: andq $7, %rdi # sched: [1:0.25]
; SKX-NEXT: andq $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: andq %rdi, %rdi # sched: [1:0.25]
+; SKX-NEXT: andq %rdx, %rdi # sched: [1:0.25]
; SKX-NEXT: andq %rdi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: andq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -1914,7 +1914,7 @@ define void @test_and_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: andq $7, %rdi # sched: [1:0.50]
; BTVER2-NEXT: andq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: andq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT: andq %rdx, %rdi # sched: [1:0.50]
; BTVER2-NEXT: andq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: andq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -1931,12 +1931,12 @@ define void @test_and_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: andq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: andq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: andq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: andq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: andq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: andq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "andq $2, %RAX \0A\09 andq $2, $0 \0A\09 andq $2, $1 \0A\09 andq $3, $0 \0A\09 andq $3, $1 \0A\09 andq $0, $0 \0A\09 andq $0, $1 \0A\09 andq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "andq $3, %RAX \0A\09 andq $3, $0 \0A\09 andq $3, $2 \0A\09 andq $4, $0 \0A\09 andq $4, $2 \0A\09 andq $1, $0 \0A\09 andq $0, $2 \0A\09 andq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
@@ -5620,13 +5620,13 @@ define void @test_imul_8(i8 %a0, i8* %a1
tail call void asm "imulb $0 \0A\09 imulb $1", "r,*m"(i8 %a0, i8* %a1) nounwind
ret void
}
-define void @test_imul_16(i16 %a0, i16* %a1) optsize {
+define void @test_imul_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_imul_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: imulw %di # sched: [4:1.33]
; GENERIC-NEXT: imulw (%rsi) # sched: [9:1.33]
-; GENERIC-NEXT: imulw %di, %di # sched: [3:1.00]
+; GENERIC-NEXT: imulw %dx, %di # sched: [3:1.00]
; GENERIC-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; GENERIC-NEXT: imulw $511, %di, %di # imm = 0x1FF
; GENERIC-NEXT: # sched: [4:1.00]
@@ -5642,7 +5642,7 @@ define void @test_imul_16(i16 %a0, i16*
; ATOM-NEXT: #APP
; ATOM-NEXT: imulw %di # sched: [7:3.50]
; ATOM-NEXT: imulw (%rsi) # sched: [8:4.00]
-; ATOM-NEXT: imulw %di, %di # sched: [6:3.00]
+; ATOM-NEXT: imulw %dx, %di # sched: [6:3.00]
; ATOM-NEXT: imulw (%rsi), %di # sched: [7:3.50]
; ATOM-NEXT: imulw $511, %di, %di # imm = 0x1FF
; ATOM-NEXT: # sched: [6:3.00]
@@ -5658,7 +5658,7 @@ define void @test_imul_16(i16 %a0, i16*
; SLM-NEXT: #APP
; SLM-NEXT: imulw %di # sched: [3:1.00]
; SLM-NEXT: imulw (%rsi) # sched: [6:1.00]
-; SLM-NEXT: imulw %di, %di # sched: [3:1.00]
+; SLM-NEXT: imulw %dx, %di # sched: [3:1.00]
; SLM-NEXT: imulw (%rsi), %di # sched: [6:1.00]
; SLM-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SLM-NEXT: # sched: [3:1.00]
@@ -5674,7 +5674,7 @@ define void @test_imul_16(i16 %a0, i16*
; SANDY-NEXT: #APP
; SANDY-NEXT: imulw %di # sched: [4:1.33]
; SANDY-NEXT: imulw (%rsi) # sched: [9:1.33]
-; SANDY-NEXT: imulw %di, %di # sched: [3:1.00]
+; SANDY-NEXT: imulw %dx, %di # sched: [3:1.00]
; SANDY-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; SANDY-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SANDY-NEXT: # sched: [4:1.00]
@@ -5690,7 +5690,7 @@ define void @test_imul_16(i16 %a0, i16*
; HASWELL-NEXT: #APP
; HASWELL-NEXT: imulw %di # sched: [4:1.00]
; HASWELL-NEXT: imulw (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: imulw %di, %di # sched: [3:1.00]
+; HASWELL-NEXT: imulw %dx, %di # sched: [3:1.00]
; HASWELL-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; HASWELL-NEXT: imulw $511, %di, %di # imm = 0x1FF
; HASWELL-NEXT: # sched: [4:1.00]
@@ -5706,7 +5706,7 @@ define void @test_imul_16(i16 %a0, i16*
; BROADWELL-NEXT: #APP
; BROADWELL-NEXT: imulw %di # sched: [4:1.00]
; BROADWELL-NEXT: imulw (%rsi) # sched: [9:1.00]
-; BROADWELL-NEXT: imulw %di, %di # sched: [3:1.00]
+; BROADWELL-NEXT: imulw %dx, %di # sched: [3:1.00]
; BROADWELL-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; BROADWELL-NEXT: imulw $511, %di, %di # imm = 0x1FF
; BROADWELL-NEXT: # sched: [4:1.00]
@@ -5722,7 +5722,7 @@ define void @test_imul_16(i16 %a0, i16*
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: imulw %di # sched: [4:1.00]
; SKYLAKE-NEXT: imulw (%rsi) # sched: [9:1.00]
-; SKYLAKE-NEXT: imulw %di, %di # sched: [3:1.00]
+; SKYLAKE-NEXT: imulw %dx, %di # sched: [3:1.00]
; SKYLAKE-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; SKYLAKE-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SKYLAKE-NEXT: # sched: [4:1.00]
@@ -5738,7 +5738,7 @@ define void @test_imul_16(i16 %a0, i16*
; SKX-NEXT: #APP
; SKX-NEXT: imulw %di # sched: [4:1.00]
; SKX-NEXT: imulw (%rsi) # sched: [9:1.00]
-; SKX-NEXT: imulw %di, %di # sched: [3:1.00]
+; SKX-NEXT: imulw %dx, %di # sched: [3:1.00]
; SKX-NEXT: imulw (%rsi), %di # sched: [8:1.00]
; SKX-NEXT: imulw $511, %di, %di # imm = 0x1FF
; SKX-NEXT: # sched: [4:1.00]
@@ -5754,7 +5754,7 @@ define void @test_imul_16(i16 %a0, i16*
; BTVER2-NEXT: #APP
; BTVER2-NEXT: imulw %di # sched: [3:1.00]
; BTVER2-NEXT: imulw (%rsi) # sched: [6:1.00]
-; BTVER2-NEXT: imulw %di, %di # sched: [3:1.00]
+; BTVER2-NEXT: imulw %dx, %di # sched: [3:1.00]
; BTVER2-NEXT: imulw (%rsi), %di # sched: [6:1.00]
; BTVER2-NEXT: imulw $511, %di, %di # imm = 0x1FF
; BTVER2-NEXT: # sched: [3:1.00]
@@ -5770,7 +5770,7 @@ define void @test_imul_16(i16 %a0, i16*
; ZNVER1-NEXT: #APP
; ZNVER1-NEXT: imulw %di # sched: [3:1.00]
; ZNVER1-NEXT: imulw (%rsi) # sched: [8:1.00]
-; ZNVER1-NEXT: imulw %di, %di # sched: [3:1.00]
+; ZNVER1-NEXT: imulw %dx, %di # sched: [3:1.00]
; ZNVER1-NEXT: imulw (%rsi), %di # sched: [3:1.00]
; ZNVER1-NEXT: imulw $511, %di, %di # imm = 0x1FF
; ZNVER1-NEXT: # sched: [3:1.00]
@@ -5780,16 +5780,16 @@ define void @test_imul_16(i16 %a0, i16*
; ZNVER1-NEXT: imulw $7, (%rsi), %di # sched: [3:1.00]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "imulw $0 \0A\09 imulw $1 \0A\09 imulw $0, $0 \0A\09 imulw $1, $0 \0A\09 imulw $2, $0, $0 \0A\09 imulw $2, $1, $0 \0A\09 imulw $3, $0, $0 \0A\09 imulw $3, $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "imulw $0 \0A\09 imulw $2 \0A\09 imulw $1, $0 \0A\09 imulw $2, $0 \0A\09 imulw $3, $0, $0 \0A\09 imulw $3, $2, $0 \0A\09 imulw $4, $0, $0 \0A\09 imulw $4, $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_imul_32(i32 %a0, i32* %a1) optsize {
+define void @test_imul_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_imul_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: imull %edi # sched: [4:1.00]
; GENERIC-NEXT: imull (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: imull %edi, %edi # sched: [3:1.00]
+; GENERIC-NEXT: imull %edx, %edi # sched: [3:1.00]
; GENERIC-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; GENERIC-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; GENERIC-NEXT: # sched: [3:1.00]
@@ -5805,7 +5805,7 @@ define void @test_imul_32(i32 %a0, i32*
; ATOM-NEXT: #APP
; ATOM-NEXT: imull %edi # sched: [6:3.00]
; ATOM-NEXT: imull (%rsi) # sched: [7:3.50]
-; ATOM-NEXT: imull %edi, %edi # sched: [5:5.00]
+; ATOM-NEXT: imull %edx, %edi # sched: [5:5.00]
; ATOM-NEXT: imull (%rsi), %edi # sched: [5:5.00]
; ATOM-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; ATOM-NEXT: # sched: [5:5.00]
@@ -5821,7 +5821,7 @@ define void @test_imul_32(i32 %a0, i32*
; SLM-NEXT: #APP
; SLM-NEXT: imull %edi # sched: [3:1.00]
; SLM-NEXT: imull (%rsi) # sched: [6:1.00]
-; SLM-NEXT: imull %edi, %edi # sched: [3:1.00]
+; SLM-NEXT: imull %edx, %edi # sched: [3:1.00]
; SLM-NEXT: imull (%rsi), %edi # sched: [6:1.00]
; SLM-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SLM-NEXT: # sched: [3:1.00]
@@ -5837,7 +5837,7 @@ define void @test_imul_32(i32 %a0, i32*
; SANDY-NEXT: #APP
; SANDY-NEXT: imull %edi # sched: [4:1.00]
; SANDY-NEXT: imull (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: imull %edi, %edi # sched: [3:1.00]
+; SANDY-NEXT: imull %edx, %edi # sched: [3:1.00]
; SANDY-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; SANDY-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SANDY-NEXT: # sched: [3:1.00]
@@ -5853,7 +5853,7 @@ define void @test_imul_32(i32 %a0, i32*
; HASWELL-NEXT: #APP
; HASWELL-NEXT: imull %edi # sched: [4:1.00]
; HASWELL-NEXT: imull (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: imull %edi, %edi # sched: [3:1.00]
+; HASWELL-NEXT: imull %edx, %edi # sched: [3:1.00]
; HASWELL-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; HASWELL-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; HASWELL-NEXT: # sched: [3:1.00]
@@ -5869,7 +5869,7 @@ define void @test_imul_32(i32 %a0, i32*
; BROADWELL-NEXT: #APP
; BROADWELL-NEXT: imull %edi # sched: [4:1.00]
; BROADWELL-NEXT: imull (%rsi) # sched: [9:1.00]
-; BROADWELL-NEXT: imull %edi, %edi # sched: [3:1.00]
+; BROADWELL-NEXT: imull %edx, %edi # sched: [3:1.00]
; BROADWELL-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; BROADWELL-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; BROADWELL-NEXT: # sched: [3:1.00]
@@ -5885,7 +5885,7 @@ define void @test_imul_32(i32 %a0, i32*
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: imull %edi # sched: [4:1.00]
; SKYLAKE-NEXT: imull (%rsi) # sched: [9:1.00]
-; SKYLAKE-NEXT: imull %edi, %edi # sched: [3:1.00]
+; SKYLAKE-NEXT: imull %edx, %edi # sched: [3:1.00]
; SKYLAKE-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; SKYLAKE-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SKYLAKE-NEXT: # sched: [3:1.00]
@@ -5901,7 +5901,7 @@ define void @test_imul_32(i32 %a0, i32*
; SKX-NEXT: #APP
; SKX-NEXT: imull %edi # sched: [4:1.00]
; SKX-NEXT: imull (%rsi) # sched: [9:1.00]
-; SKX-NEXT: imull %edi, %edi # sched: [3:1.00]
+; SKX-NEXT: imull %edx, %edi # sched: [3:1.00]
; SKX-NEXT: imull (%rsi), %edi # sched: [8:1.00]
; SKX-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; SKX-NEXT: # sched: [3:1.00]
@@ -5917,7 +5917,7 @@ define void @test_imul_32(i32 %a0, i32*
; BTVER2-NEXT: #APP
; BTVER2-NEXT: imull %edi # sched: [3:1.00]
; BTVER2-NEXT: imull (%rsi) # sched: [6:1.00]
-; BTVER2-NEXT: imull %edi, %edi # sched: [3:1.00]
+; BTVER2-NEXT: imull %edx, %edi # sched: [3:1.00]
; BTVER2-NEXT: imull (%rsi), %edi # sched: [6:1.00]
; BTVER2-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; BTVER2-NEXT: # sched: [3:1.00]
@@ -5933,7 +5933,7 @@ define void @test_imul_32(i32 %a0, i32*
; ZNVER1-NEXT: #APP
; ZNVER1-NEXT: imull %edi # sched: [3:1.00]
; ZNVER1-NEXT: imull (%rsi) # sched: [8:1.00]
-; ZNVER1-NEXT: imull %edi, %edi # sched: [3:1.00]
+; ZNVER1-NEXT: imull %edx, %edi # sched: [3:1.00]
; ZNVER1-NEXT: imull (%rsi), %edi # sched: [3:1.00]
; ZNVER1-NEXT: imull $665536, %edi, %edi # imm = 0xA27C0
; ZNVER1-NEXT: # sched: [3:1.00]
@@ -5943,16 +5943,16 @@ define void @test_imul_32(i32 %a0, i32*
; ZNVER1-NEXT: imull $7, (%rsi), %edi # sched: [3:1.00]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "imull $0 \0A\09 imull $1 \0A\09 imull $0, $0 \0A\09 imull $1, $0 \0A\09 imull $2, $0, $0 \0A\09 imull $2, $1, $0 \0A\09 imull $3, $0, $0 \0A\09 imull $3, $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "imull $0 \0A\09 imull $2 \0A\09 imull $1, $0 \0A\09 imull $2, $0 \0A\09 imull $3, $0, $0 \0A\09 imull $3, $2, $0 \0A\09 imull $4, $0, $0 \0A\09 imull $4, $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_imul_64(i64 %a0, i64* %a1) optsize {
+define void @test_imul_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_imul_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: imulq %rdi # sched: [4:1.00]
; GENERIC-NEXT: imulq (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; GENERIC-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; GENERIC-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; GENERIC-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; GENERIC-NEXT: # sched: [3:1.00]
@@ -5968,7 +5968,7 @@ define void @test_imul_64(i64 %a0, i64*
; ATOM-NEXT: #APP
; ATOM-NEXT: imulq %rdi # sched: [12:6.00]
; ATOM-NEXT: imulq (%rsi) # sched: [12:6.00]
-; ATOM-NEXT: imulq %rdi, %rdi # sched: [12:6.00]
+; ATOM-NEXT: imulq %rdx, %rdi # sched: [12:6.00]
; ATOM-NEXT: imulq (%rsi), %rdi # sched: [12:6.00]
; ATOM-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; ATOM-NEXT: # sched: [14:7.00]
@@ -5984,7 +5984,7 @@ define void @test_imul_64(i64 %a0, i64*
; SLM-NEXT: #APP
; SLM-NEXT: imulq %rdi # sched: [3:1.00]
; SLM-NEXT: imulq (%rsi) # sched: [6:1.00]
-; SLM-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; SLM-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; SLM-NEXT: imulq (%rsi), %rdi # sched: [6:1.00]
; SLM-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SLM-NEXT: # sched: [3:1.00]
@@ -6000,7 +6000,7 @@ define void @test_imul_64(i64 %a0, i64*
; SANDY-NEXT: #APP
; SANDY-NEXT: imulq %rdi # sched: [4:1.00]
; SANDY-NEXT: imulq (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; SANDY-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; SANDY-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; SANDY-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SANDY-NEXT: # sched: [3:1.00]
@@ -6016,7 +6016,7 @@ define void @test_imul_64(i64 %a0, i64*
; HASWELL-NEXT: #APP
; HASWELL-NEXT: imulq %rdi # sched: [4:1.00]
; HASWELL-NEXT: imulq (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; HASWELL-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; HASWELL-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; HASWELL-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; HASWELL-NEXT: # sched: [3:1.00]
@@ -6032,7 +6032,7 @@ define void @test_imul_64(i64 %a0, i64*
; BROADWELL-NEXT: #APP
; BROADWELL-NEXT: imulq %rdi # sched: [4:1.00]
; BROADWELL-NEXT: imulq (%rsi) # sched: [9:1.00]
-; BROADWELL-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; BROADWELL-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; BROADWELL-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; BROADWELL-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; BROADWELL-NEXT: # sched: [3:1.00]
@@ -6048,7 +6048,7 @@ define void @test_imul_64(i64 %a0, i64*
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: imulq %rdi # sched: [4:1.00]
; SKYLAKE-NEXT: imulq (%rsi) # sched: [9:1.00]
-; SKYLAKE-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; SKYLAKE-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; SKYLAKE-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; SKYLAKE-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SKYLAKE-NEXT: # sched: [3:1.00]
@@ -6064,7 +6064,7 @@ define void @test_imul_64(i64 %a0, i64*
; SKX-NEXT: #APP
; SKX-NEXT: imulq %rdi # sched: [4:1.00]
; SKX-NEXT: imulq (%rsi) # sched: [9:1.00]
-; SKX-NEXT: imulq %rdi, %rdi # sched: [3:1.00]
+; SKX-NEXT: imulq %rdx, %rdi # sched: [3:1.00]
; SKX-NEXT: imulq (%rsi), %rdi # sched: [8:1.00]
; SKX-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; SKX-NEXT: # sched: [3:1.00]
@@ -6080,7 +6080,7 @@ define void @test_imul_64(i64 %a0, i64*
; BTVER2-NEXT: #APP
; BTVER2-NEXT: imulq %rdi # sched: [6:4.00]
; BTVER2-NEXT: imulq (%rsi) # sched: [9:4.00]
-; BTVER2-NEXT: imulq %rdi, %rdi # sched: [6:4.00]
+; BTVER2-NEXT: imulq %rdx, %rdi # sched: [6:4.00]
; BTVER2-NEXT: imulq (%rsi), %rdi # sched: [9:4.00]
; BTVER2-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; BTVER2-NEXT: # sched: [6:4.00]
@@ -6096,7 +6096,7 @@ define void @test_imul_64(i64 %a0, i64*
; ZNVER1-NEXT: #APP
; ZNVER1-NEXT: imulq %rdi # sched: [4:1.00]
; ZNVER1-NEXT: imulq (%rsi) # sched: [9:1.00]
-; ZNVER1-NEXT: imulq %rdi, %rdi # sched: [4:1.00]
+; ZNVER1-NEXT: imulq %rdx, %rdi # sched: [4:1.00]
; ZNVER1-NEXT: imulq (%rsi), %rdi # sched: [4:1.00]
; ZNVER1-NEXT: imulq $665536, %rdi, %rdi # imm = 0xA27C0
; ZNVER1-NEXT: # sched: [4:1.00]
@@ -6106,7 +6106,7 @@ define void @test_imul_64(i64 %a0, i64*
; ZNVER1-NEXT: imulq $7, (%rsi), %rdi # sched: [4:1.00]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "imulq $0 \0A\09 imulq $1 \0A\09 imulq $0, $0 \0A\09 imulq $1, $0 \0A\09 imulq $2, $0, $0 \0A\09 imulq $2, $1, $0 \0A\09 imulq $3, $0, $0 \0A\09 imulq $3, $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "imulq $0 \0A\09 imulq $2 \0A\09 imulq $1, $0 \0A\09 imulq $2, $0 \0A\09 imulq $3, $0, $0 \0A\09 imulq $3, $2, $0 \0A\09 imulq $4, $0, $0 \0A\09 imulq $4, $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
@@ -8579,14 +8579,14 @@ define void @test_not(i8 %a0, i16 %a1, i
ret void
}
-define void @test_or_8(i8 %a0, i8* %a1) optsize {
+define void @test_or_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_or_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: orb $7, %al # sched: [1:0.33]
; GENERIC-NEXT: orb $7, %dil # sched: [1:0.33]
; GENERIC-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: orb %dil, %dil # sched: [1:0.33]
+; GENERIC-NEXT: orb %dl, %dil # sched: [1:0.33]
; GENERIC-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -8598,7 +8598,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; ATOM-NEXT: orb $7, %al # sched: [1:0.50]
; ATOM-NEXT: orb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: orb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: orb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: orb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: orb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: orb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -8610,7 +8610,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; SLM-NEXT: orb $7, %al # sched: [1:0.50]
; SLM-NEXT: orb $7, %dil # sched: [1:0.50]
; SLM-NEXT: orb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: orb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: orb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: orb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: orb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -8622,7 +8622,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; SANDY-NEXT: orb $7, %al # sched: [1:0.33]
; SANDY-NEXT: orb $7, %dil # sched: [1:0.33]
; SANDY-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: orb %dil, %dil # sched: [1:0.33]
+; SANDY-NEXT: orb %dl, %dil # sched: [1:0.33]
; SANDY-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -8634,7 +8634,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: orb $7, %al # sched: [1:0.25]
; HASWELL-NEXT: orb $7, %dil # sched: [1:0.25]
; HASWELL-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: orb %dil, %dil # sched: [1:0.25]
+; HASWELL-NEXT: orb %dl, %dil # sched: [1:0.25]
; HASWELL-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -8646,7 +8646,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: orb $7, %al # sched: [1:0.25]
; BROADWELL-NEXT: orb $7, %dil # sched: [1:0.25]
; BROADWELL-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: orb %dil, %dil # sched: [1:0.25]
+; BROADWELL-NEXT: orb %dl, %dil # sched: [1:0.25]
; BROADWELL-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -8658,7 +8658,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: orb $7, %al # sched: [1:0.25]
; SKYLAKE-NEXT: orb $7, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: orb %dil, %dil # sched: [1:0.25]
+; SKYLAKE-NEXT: orb %dl, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -8670,7 +8670,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; SKX-NEXT: orb $7, %al # sched: [1:0.25]
; SKX-NEXT: orb $7, %dil # sched: [1:0.25]
; SKX-NEXT: orb $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: orb %dil, %dil # sched: [1:0.25]
+; SKX-NEXT: orb %dl, %dil # sched: [1:0.25]
; SKX-NEXT: orb %dil, (%rsi) # sched: [7:1.00]
; SKX-NEXT: orb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -8682,7 +8682,7 @@ define void @test_or_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: orb $7, %al # sched: [1:0.50]
; BTVER2-NEXT: orb $7, %dil # sched: [1:0.50]
; BTVER2-NEXT: orb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: orb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT: orb %dl, %dil # sched: [1:0.50]
; BTVER2-NEXT: orb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: orb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -8694,15 +8694,15 @@ define void @test_or_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: orb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: orb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: orb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: orb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: orb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: orb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: orb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "orb $2, %AL \0A\09 orb $2, $0 \0A\09 orb $2, $1 \0A\09 orb $0, $0 \0A\09 orb $0, $1 \0A\09 orb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "orb $3, %AL \0A\09 orb $3, $0 \0A\09 orb $3, $2 \0A\09 orb $1, $0 \0A\09 orb $0, $2 \0A\09 orb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_or_16(i16 %a0, i16* %a1) optsize {
+define void @test_or_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_or_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -8714,7 +8714,7 @@ define void @test_or_16(i16 %a0, i16* %a
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: orw $7, %di # sched: [1:0.33]
; GENERIC-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: orw %di, %di # sched: [1:0.33]
+; GENERIC-NEXT: orw %dx, %di # sched: [1:0.33]
; GENERIC-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: orw (%rsi), %di # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -8731,7 +8731,7 @@ define void @test_or_16(i16 %a0, i16* %a
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: orw $7, %di # sched: [1:0.50]
; ATOM-NEXT: orw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: orw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: orw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: orw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: orw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -8748,7 +8748,7 @@ define void @test_or_16(i16 %a0, i16* %a
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: orw $7, %di # sched: [1:0.50]
; SLM-NEXT: orw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: orw %di, %di # sched: [1:0.50]
+; SLM-NEXT: orw %dx, %di # sched: [1:0.50]
; SLM-NEXT: orw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: orw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -8765,7 +8765,7 @@ define void @test_or_16(i16 %a0, i16* %a
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: orw $7, %di # sched: [1:0.33]
; SANDY-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: orw %di, %di # sched: [1:0.33]
+; SANDY-NEXT: orw %dx, %di # sched: [1:0.33]
; SANDY-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: orw (%rsi), %di # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -8782,7 +8782,7 @@ define void @test_or_16(i16 %a0, i16* %a
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: orw $7, %di # sched: [1:0.25]
; HASWELL-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: orw %di, %di # sched: [1:0.25]
+; HASWELL-NEXT: orw %dx, %di # sched: [1:0.25]
; HASWELL-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: orw (%rsi), %di # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -8799,7 +8799,7 @@ define void @test_or_16(i16 %a0, i16* %a
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: orw $7, %di # sched: [1:0.25]
; BROADWELL-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: orw %di, %di # sched: [1:0.25]
+; BROADWELL-NEXT: orw %dx, %di # sched: [1:0.25]
; BROADWELL-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: orw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -8816,7 +8816,7 @@ define void @test_or_16(i16 %a0, i16* %a
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: orw $7, %di # sched: [1:0.25]
; SKYLAKE-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: orw %di, %di # sched: [1:0.25]
+; SKYLAKE-NEXT: orw %dx, %di # sched: [1:0.25]
; SKYLAKE-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: orw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -8833,7 +8833,7 @@ define void @test_or_16(i16 %a0, i16* %a
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: orw $7, %di # sched: [1:0.25]
; SKX-NEXT: orw $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: orw %di, %di # sched: [1:0.25]
+; SKX-NEXT: orw %dx, %di # sched: [1:0.25]
; SKX-NEXT: orw %di, (%rsi) # sched: [7:1.00]
; SKX-NEXT: orw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -8850,7 +8850,7 @@ define void @test_or_16(i16 %a0, i16* %a
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: orw $7, %di # sched: [1:0.50]
; BTVER2-NEXT: orw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: orw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT: orw %dx, %di # sched: [1:0.50]
; BTVER2-NEXT: orw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: orw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -8867,15 +8867,15 @@ define void @test_or_16(i16 %a0, i16* %a
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: orw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: orw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: orw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: orw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: orw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: orw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "orw $2, %AX \0A\09 orw $2, $0 \0A\09 orw $2, $1 \0A\09 orw $3, $0 \0A\09 orw $3, $1 \0A\09 orw $0, $0 \0A\09 orw $0, $1 \0A\09 orw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "orw $3, %AX \0A\09 orw $3, $0 \0A\09 orw $3, $2 \0A\09 orw $4, $0 \0A\09 orw $4, $2 \0A\09 orw $1, $0 \0A\09 orw $0, $2 \0A\09 orw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_or_32(i32 %a0, i32* %a1) optsize {
+define void @test_or_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_or_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -8887,7 +8887,7 @@ define void @test_or_32(i32 %a0, i32* %a
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: orl $7, %edi # sched: [1:0.33]
; GENERIC-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: orl %edi, %edi # sched: [1:0.33]
+; GENERIC-NEXT: orl %edx, %edi # sched: [1:0.33]
; GENERIC-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -8904,7 +8904,7 @@ define void @test_or_32(i32 %a0, i32* %a
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: orl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: orl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: orl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: orl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: orl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: orl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -8921,7 +8921,7 @@ define void @test_or_32(i32 %a0, i32* %a
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: orl $7, %edi # sched: [1:0.50]
; SLM-NEXT: orl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: orl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: orl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: orl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: orl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -8938,7 +8938,7 @@ define void @test_or_32(i32 %a0, i32* %a
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: orl $7, %edi # sched: [1:0.33]
; SANDY-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: orl %edi, %edi # sched: [1:0.33]
+; SANDY-NEXT: orl %edx, %edi # sched: [1:0.33]
; SANDY-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -8955,7 +8955,7 @@ define void @test_or_32(i32 %a0, i32* %a
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: orl $7, %edi # sched: [1:0.25]
; HASWELL-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: orl %edi, %edi # sched: [1:0.25]
+; HASWELL-NEXT: orl %edx, %edi # sched: [1:0.25]
; HASWELL-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -8972,7 +8972,7 @@ define void @test_or_32(i32 %a0, i32* %a
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: orl $7, %edi # sched: [1:0.25]
; BROADWELL-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: orl %edi, %edi # sched: [1:0.25]
+; BROADWELL-NEXT: orl %edx, %edi # sched: [1:0.25]
; BROADWELL-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -8989,7 +8989,7 @@ define void @test_or_32(i32 %a0, i32* %a
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: orl $7, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: orl %edi, %edi # sched: [1:0.25]
+; SKYLAKE-NEXT: orl %edx, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -9006,7 +9006,7 @@ define void @test_or_32(i32 %a0, i32* %a
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: orl $7, %edi # sched: [1:0.25]
; SKX-NEXT: orl $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: orl %edi, %edi # sched: [1:0.25]
+; SKX-NEXT: orl %edx, %edi # sched: [1:0.25]
; SKX-NEXT: orl %edi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: orl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -9023,7 +9023,7 @@ define void @test_or_32(i32 %a0, i32* %a
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: orl $7, %edi # sched: [1:0.50]
; BTVER2-NEXT: orl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: orl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT: orl %edx, %edi # sched: [1:0.50]
; BTVER2-NEXT: orl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: orl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -9040,15 +9040,15 @@ define void @test_or_32(i32 %a0, i32* %a
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: orl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: orl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: orl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: orl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: orl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: orl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "orl $2, %EAX \0A\09 orl $2, $0 \0A\09 orl $2, $1 \0A\09 orl $3, $0 \0A\09 orl $3, $1 \0A\09 orl $0, $0 \0A\09 orl $0, $1 \0A\09 orl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "orl $3, %EAX \0A\09 orl $3, $0 \0A\09 orl $3, $2 \0A\09 orl $4, $0 \0A\09 orl $4, $2 \0A\09 orl $1, $0 \0A\09 orl $0, $2 \0A\09 orl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_or_64(i64 %a0, i64* %a1) optsize {
+define void @test_or_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_or_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -9060,7 +9060,7 @@ define void @test_or_64(i64 %a0, i64* %a
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: orq $7, %rdi # sched: [1:0.33]
; GENERIC-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: orq %rdi, %rdi # sched: [1:0.33]
+; GENERIC-NEXT: orq %rdx, %rdi # sched: [1:0.33]
; GENERIC-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -9077,7 +9077,7 @@ define void @test_or_64(i64 %a0, i64* %a
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: orq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: orq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: orq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: orq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: orq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: orq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -9094,7 +9094,7 @@ define void @test_or_64(i64 %a0, i64* %a
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: orq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: orq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: orq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: orq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: orq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: orq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -9111,7 +9111,7 @@ define void @test_or_64(i64 %a0, i64* %a
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: orq $7, %rdi # sched: [1:0.33]
; SANDY-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: orq %rdi, %rdi # sched: [1:0.33]
+; SANDY-NEXT: orq %rdx, %rdi # sched: [1:0.33]
; SANDY-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -9128,7 +9128,7 @@ define void @test_or_64(i64 %a0, i64* %a
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: orq $7, %rdi # sched: [1:0.25]
; HASWELL-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: orq %rdi, %rdi # sched: [1:0.25]
+; HASWELL-NEXT: orq %rdx, %rdi # sched: [1:0.25]
; HASWELL-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -9145,7 +9145,7 @@ define void @test_or_64(i64 %a0, i64* %a
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: orq $7, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: orq %rdi, %rdi # sched: [1:0.25]
+; BROADWELL-NEXT: orq %rdx, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -9162,7 +9162,7 @@ define void @test_or_64(i64 %a0, i64* %a
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: orq $7, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: orq %rdi, %rdi # sched: [1:0.25]
+; SKYLAKE-NEXT: orq %rdx, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -9179,7 +9179,7 @@ define void @test_or_64(i64 %a0, i64* %a
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: orq $7, %rdi # sched: [1:0.25]
; SKX-NEXT: orq $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: orq %rdi, %rdi # sched: [1:0.25]
+; SKX-NEXT: orq %rdx, %rdi # sched: [1:0.25]
; SKX-NEXT: orq %rdi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: orq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -9196,7 +9196,7 @@ define void @test_or_64(i64 %a0, i64* %a
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: orq $7, %rdi # sched: [1:0.50]
; BTVER2-NEXT: orq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: orq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT: orq %rdx, %rdi # sched: [1:0.50]
; BTVER2-NEXT: orq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: orq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -9213,12 +9213,12 @@ define void @test_or_64(i64 %a0, i64* %a
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: orq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: orq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: orq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: orq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: orq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: orq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "orq $2, %RAX \0A\09 orq $2, $0 \0A\09 orq $2, $1 \0A\09 orq $3, $0 \0A\09 orq $3, $1 \0A\09 orq $0, $0 \0A\09 orq $0, $1 \0A\09 orq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "orq $3, %RAX \0A\09 orq $3, $0 \0A\09 orq $3, $2 \0A\09 orq $4, $0 \0A\09 orq $4, $2 \0A\09 orq $1, $0 \0A\09 orq $0, $2 \0A\09 orq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
@@ -12773,14 +12773,14 @@ define void @test_sar_shl_shr_64(i64 %a0
ret void
}
-define void @test_sbb_8(i8 %a0, i8* %a1) optsize {
+define void @test_sbb_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_sbb_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: sbbb $7, %al # sched: [2:0.67]
; GENERIC-NEXT: sbbb $7, %dil # sched: [2:0.67]
; GENERIC-NEXT: sbbb $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: sbbb %dil, %dil # sched: [2:0.67]
+; GENERIC-NEXT: sbbb %dl, %dil # sched: [2:0.67]
; GENERIC-NEXT: sbbb %dil, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: sbbb (%rsi), %dil # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -12792,7 +12792,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; ATOM-NEXT: sbbb $7, %al # sched: [1:0.50]
; ATOM-NEXT: sbbb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: sbbb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: sbbb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: sbbb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: sbbb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: sbbb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -12804,7 +12804,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; SLM-NEXT: sbbb $7, %al # sched: [1:0.50]
; SLM-NEXT: sbbb $7, %dil # sched: [1:0.50]
; SLM-NEXT: sbbb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: sbbb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: sbbb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: sbbb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: sbbb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -12816,7 +12816,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; SANDY-NEXT: sbbb $7, %al # sched: [2:0.67]
; SANDY-NEXT: sbbb $7, %dil # sched: [2:0.67]
; SANDY-NEXT: sbbb $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: sbbb %dil, %dil # sched: [2:0.67]
+; SANDY-NEXT: sbbb %dl, %dil # sched: [2:0.67]
; SANDY-NEXT: sbbb %dil, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: sbbb (%rsi), %dil # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -12828,7 +12828,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: sbbb $7, %al # sched: [2:0.50]
; HASWELL-NEXT: sbbb $7, %dil # sched: [2:0.50]
; HASWELL-NEXT: sbbb $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: sbbb %dil, %dil # sched: [2:0.50]
+; HASWELL-NEXT: sbbb %dl, %dil # sched: [2:0.50]
; HASWELL-NEXT: sbbb %dil, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: sbbb (%rsi), %dil # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -12840,7 +12840,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: sbbb $7, %al # sched: [2:0.50]
; BROADWELL-NEXT: sbbb $7, %dil # sched: [2:0.50]
; BROADWELL-NEXT: sbbb $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: sbbb %dil, %dil # sched: [1:0.50]
+; BROADWELL-NEXT: sbbb %dl, %dil # sched: [1:0.50]
; BROADWELL-NEXT: sbbb %dil, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: sbbb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -12852,7 +12852,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: sbbb $7, %al # sched: [2:0.50]
; SKYLAKE-NEXT: sbbb $7, %dil # sched: [2:0.50]
; SKYLAKE-NEXT: sbbb $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: sbbb %dil, %dil # sched: [1:0.50]
+; SKYLAKE-NEXT: sbbb %dl, %dil # sched: [1:0.50]
; SKYLAKE-NEXT: sbbb %dil, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: sbbb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -12864,7 +12864,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; SKX-NEXT: sbbb $7, %al # sched: [2:0.50]
; SKX-NEXT: sbbb $7, %dil # sched: [2:0.50]
; SKX-NEXT: sbbb $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: sbbb %dil, %dil # sched: [1:0.50]
+; SKX-NEXT: sbbb %dl, %dil # sched: [1:0.50]
; SKX-NEXT: sbbb %dil, (%rsi) # sched: [8:1.00]
; SKX-NEXT: sbbb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -12876,7 +12876,7 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: sbbb $7, %al # sched: [1:1.00]
; BTVER2-NEXT: sbbb $7, %dil # sched: [1:1.00]
; BTVER2-NEXT: sbbb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: sbbb %dil, %dil # sched: [1:1.00]
+; BTVER2-NEXT: sbbb %dl, %dil # sched: [1:1.00]
; BTVER2-NEXT: sbbb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: sbbb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -12888,15 +12888,15 @@ define void @test_sbb_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: sbbb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: sbbb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: sbbb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: sbbb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: sbbb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: sbbb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: sbbb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "sbbb $2, %AL \0A\09 sbbb $2, $0 \0A\09 sbbb $2, $1 \0A\09 sbbb $0, $0 \0A\09 sbbb $0, $1 \0A\09 sbbb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "sbbb $3, %AL \0A\09 sbbb $3, $0 \0A\09 sbbb $3, $2 \0A\09 sbbb $1, $0 \0A\09 sbbb $0, $2 \0A\09 sbbb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_sbb_16(i16 %a0, i16* %a1) optsize {
+define void @test_sbb_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_sbb_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -12908,7 +12908,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: sbbw $7, %di # sched: [2:0.67]
; GENERIC-NEXT: sbbw $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: sbbw %di, %di # sched: [2:0.67]
+; GENERIC-NEXT: sbbw %dx, %di # sched: [2:0.67]
; GENERIC-NEXT: sbbw %di, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: sbbw (%rsi), %di # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -12925,7 +12925,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: sbbw $7, %di # sched: [1:0.50]
; ATOM-NEXT: sbbw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: sbbw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: sbbw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: sbbw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: sbbw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -12942,7 +12942,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: sbbw $7, %di # sched: [1:0.50]
; SLM-NEXT: sbbw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: sbbw %di, %di # sched: [1:0.50]
+; SLM-NEXT: sbbw %dx, %di # sched: [1:0.50]
; SLM-NEXT: sbbw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: sbbw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -12959,7 +12959,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: sbbw $7, %di # sched: [2:0.67]
; SANDY-NEXT: sbbw $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: sbbw %di, %di # sched: [2:0.67]
+; SANDY-NEXT: sbbw %dx, %di # sched: [2:0.67]
; SANDY-NEXT: sbbw %di, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: sbbw (%rsi), %di # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -12976,7 +12976,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: sbbw $7, %di # sched: [2:0.50]
; HASWELL-NEXT: sbbw $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: sbbw %di, %di # sched: [2:0.50]
+; HASWELL-NEXT: sbbw %dx, %di # sched: [2:0.50]
; HASWELL-NEXT: sbbw %di, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: sbbw (%rsi), %di # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -12993,7 +12993,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: sbbw $7, %di # sched: [1:0.50]
; BROADWELL-NEXT: sbbw $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: sbbw %di, %di # sched: [1:0.50]
+; BROADWELL-NEXT: sbbw %dx, %di # sched: [1:0.50]
; BROADWELL-NEXT: sbbw %di, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: sbbw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -13010,7 +13010,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: sbbw $7, %di # sched: [1:0.50]
; SKYLAKE-NEXT: sbbw $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: sbbw %di, %di # sched: [1:0.50]
+; SKYLAKE-NEXT: sbbw %dx, %di # sched: [1:0.50]
; SKYLAKE-NEXT: sbbw %di, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: sbbw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -13027,7 +13027,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: sbbw $7, %di # sched: [1:0.50]
; SKX-NEXT: sbbw $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: sbbw %di, %di # sched: [1:0.50]
+; SKX-NEXT: sbbw %dx, %di # sched: [1:0.50]
; SKX-NEXT: sbbw %di, (%rsi) # sched: [8:1.00]
; SKX-NEXT: sbbw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -13044,7 +13044,7 @@ define void @test_sbb_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: sbbw $7, %di # sched: [1:1.00]
; BTVER2-NEXT: sbbw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: sbbw %di, %di # sched: [1:1.00]
+; BTVER2-NEXT: sbbw %dx, %di # sched: [1:1.00]
; BTVER2-NEXT: sbbw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: sbbw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -13061,15 +13061,15 @@ define void @test_sbb_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: sbbw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: sbbw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: sbbw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: sbbw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: sbbw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: sbbw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "sbbw $2, %AX \0A\09 sbbw $2, $0 \0A\09 sbbw $2, $1 \0A\09 sbbw $3, $0 \0A\09 sbbw $3, $1 \0A\09 sbbw $0, $0 \0A\09 sbbw $0, $1 \0A\09 sbbw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "sbbw $3, %AX \0A\09 sbbw $3, $0 \0A\09 sbbw $3, $2 \0A\09 sbbw $4, $0 \0A\09 sbbw $4, $2 \0A\09 sbbw $1, $0 \0A\09 sbbw $0, $2 \0A\09 sbbw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_sbb_32(i32 %a0, i32* %a1) optsize {
+define void @test_sbb_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_sbb_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -13081,7 +13081,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: sbbl $7, %edi # sched: [2:0.67]
; GENERIC-NEXT: sbbl $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: sbbl %edi, %edi # sched: [2:0.67]
+; GENERIC-NEXT: sbbl %edx, %edi # sched: [2:0.67]
; GENERIC-NEXT: sbbl %edi, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: sbbl (%rsi), %edi # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -13098,7 +13098,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: sbbl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: sbbl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: sbbl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: sbbl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: sbbl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: sbbl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -13115,7 +13115,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: sbbl $7, %edi # sched: [1:0.50]
; SLM-NEXT: sbbl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: sbbl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: sbbl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: sbbl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: sbbl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -13132,7 +13132,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: sbbl $7, %edi # sched: [2:0.67]
; SANDY-NEXT: sbbl $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: sbbl %edi, %edi # sched: [2:0.67]
+; SANDY-NEXT: sbbl %edx, %edi # sched: [2:0.67]
; SANDY-NEXT: sbbl %edi, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: sbbl (%rsi), %edi # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -13149,7 +13149,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: sbbl $7, %edi # sched: [2:0.50]
; HASWELL-NEXT: sbbl $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: sbbl %edi, %edi # sched: [2:0.50]
+; HASWELL-NEXT: sbbl %edx, %edi # sched: [2:0.50]
; HASWELL-NEXT: sbbl %edi, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: sbbl (%rsi), %edi # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -13166,7 +13166,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: sbbl $7, %edi # sched: [1:0.50]
; BROADWELL-NEXT: sbbl $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: sbbl %edi, %edi # sched: [1:0.50]
+; BROADWELL-NEXT: sbbl %edx, %edi # sched: [1:0.50]
; BROADWELL-NEXT: sbbl %edi, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: sbbl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -13183,7 +13183,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: sbbl $7, %edi # sched: [1:0.50]
; SKYLAKE-NEXT: sbbl $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: sbbl %edi, %edi # sched: [1:0.50]
+; SKYLAKE-NEXT: sbbl %edx, %edi # sched: [1:0.50]
; SKYLAKE-NEXT: sbbl %edi, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: sbbl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -13200,7 +13200,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: sbbl $7, %edi # sched: [1:0.50]
; SKX-NEXT: sbbl $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: sbbl %edi, %edi # sched: [1:0.50]
+; SKX-NEXT: sbbl %edx, %edi # sched: [1:0.50]
; SKX-NEXT: sbbl %edi, (%rsi) # sched: [8:1.00]
; SKX-NEXT: sbbl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -13217,7 +13217,7 @@ define void @test_sbb_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: sbbl $7, %edi # sched: [1:1.00]
; BTVER2-NEXT: sbbl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: sbbl %edi, %edi # sched: [1:1.00]
+; BTVER2-NEXT: sbbl %edx, %edi # sched: [1:1.00]
; BTVER2-NEXT: sbbl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: sbbl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -13234,15 +13234,15 @@ define void @test_sbb_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: sbbl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: sbbl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: sbbl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: sbbl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: sbbl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: sbbl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "sbbl $2, %EAX \0A\09 sbbl $2, $0 \0A\09 sbbl $2, $1 \0A\09 sbbl $3, $0 \0A\09 sbbl $3, $1 \0A\09 sbbl $0, $0 \0A\09 sbbl $0, $1 \0A\09 sbbl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "sbbl $3, %EAX \0A\09 sbbl $3, $0 \0A\09 sbbl $3, $2 \0A\09 sbbl $4, $0 \0A\09 sbbl $4, $2 \0A\09 sbbl $1, $0 \0A\09 sbbl $0, $2 \0A\09 sbbl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_sbb_64(i64 %a0, i64* %a1) optsize {
+define void @test_sbb_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_sbb_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -13254,7 +13254,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [9:1.00]
; GENERIC-NEXT: sbbq $7, %rdi # sched: [2:0.67]
; GENERIC-NEXT: sbbq $7, (%rsi) # sched: [9:1.00]
-; GENERIC-NEXT: sbbq %rdi, %rdi # sched: [2:0.67]
+; GENERIC-NEXT: sbbq %rdx, %rdi # sched: [2:0.67]
; GENERIC-NEXT: sbbq %rdi, (%rsi) # sched: [9:1.00]
; GENERIC-NEXT: sbbq (%rsi), %rdi # sched: [7:0.67]
; GENERIC-NEXT: #NO_APP
@@ -13271,7 +13271,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: sbbq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: sbbq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: sbbq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: sbbq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: sbbq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: sbbq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -13288,7 +13288,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: sbbq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: sbbq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: sbbq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: sbbq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: sbbq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: sbbq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -13305,7 +13305,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [9:1.00]
; SANDY-NEXT: sbbq $7, %rdi # sched: [2:0.67]
; SANDY-NEXT: sbbq $7, (%rsi) # sched: [9:1.00]
-; SANDY-NEXT: sbbq %rdi, %rdi # sched: [2:0.67]
+; SANDY-NEXT: sbbq %rdx, %rdi # sched: [2:0.67]
; SANDY-NEXT: sbbq %rdi, (%rsi) # sched: [9:1.00]
; SANDY-NEXT: sbbq (%rsi), %rdi # sched: [7:0.67]
; SANDY-NEXT: #NO_APP
@@ -13322,7 +13322,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [9:1.00]
; HASWELL-NEXT: sbbq $7, %rdi # sched: [2:0.50]
; HASWELL-NEXT: sbbq $7, (%rsi) # sched: [9:1.00]
-; HASWELL-NEXT: sbbq %rdi, %rdi # sched: [2:0.50]
+; HASWELL-NEXT: sbbq %rdx, %rdi # sched: [2:0.50]
; HASWELL-NEXT: sbbq %rdi, (%rsi) # sched: [9:1.00]
; HASWELL-NEXT: sbbq (%rsi), %rdi # sched: [7:0.50]
; HASWELL-NEXT: #NO_APP
@@ -13339,7 +13339,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [8:1.00]
; BROADWELL-NEXT: sbbq $7, %rdi # sched: [1:0.50]
; BROADWELL-NEXT: sbbq $7, (%rsi) # sched: [8:1.00]
-; BROADWELL-NEXT: sbbq %rdi, %rdi # sched: [1:0.50]
+; BROADWELL-NEXT: sbbq %rdx, %rdi # sched: [1:0.50]
; BROADWELL-NEXT: sbbq %rdi, (%rsi) # sched: [8:1.00]
; BROADWELL-NEXT: sbbq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -13356,7 +13356,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [8:1.00]
; SKYLAKE-NEXT: sbbq $7, %rdi # sched: [1:0.50]
; SKYLAKE-NEXT: sbbq $7, (%rsi) # sched: [8:1.00]
-; SKYLAKE-NEXT: sbbq %rdi, %rdi # sched: [1:0.50]
+; SKYLAKE-NEXT: sbbq %rdx, %rdi # sched: [1:0.50]
; SKYLAKE-NEXT: sbbq %rdi, (%rsi) # sched: [8:1.00]
; SKYLAKE-NEXT: sbbq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -13373,7 +13373,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [8:1.00]
; SKX-NEXT: sbbq $7, %rdi # sched: [1:0.50]
; SKX-NEXT: sbbq $7, (%rsi) # sched: [8:1.00]
-; SKX-NEXT: sbbq %rdi, %rdi # sched: [1:0.50]
+; SKX-NEXT: sbbq %rdx, %rdi # sched: [1:0.50]
; SKX-NEXT: sbbq %rdi, (%rsi) # sched: [8:1.00]
; SKX-NEXT: sbbq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -13390,7 +13390,7 @@ define void @test_sbb_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: sbbq $7, %rdi # sched: [1:1.00]
; BTVER2-NEXT: sbbq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: sbbq %rdi, %rdi # sched: [1:1.00]
+; BTVER2-NEXT: sbbq %rdx, %rdi # sched: [1:1.00]
; BTVER2-NEXT: sbbq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: sbbq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -13407,12 +13407,12 @@ define void @test_sbb_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: sbbq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: sbbq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: sbbq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: sbbq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: sbbq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: sbbq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "sbbq $2, %RAX \0A\09 sbbq $2, $0 \0A\09 sbbq $2, $1 \0A\09 sbbq $3, $0 \0A\09 sbbq $3, $1 \0A\09 sbbq $0, $0 \0A\09 sbbq $0, $1 \0A\09 sbbq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "sbbq $3, %RAX \0A\09 sbbq $3, $0 \0A\09 sbbq $3, $2 \0A\09 sbbq $4, $0 \0A\09 sbbq $4, $2 \0A\09 sbbq $1, $0 \0A\09 sbbq $0, $2 \0A\09 sbbq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
@@ -14533,14 +14533,14 @@ define void @test_stos() optsize {
; TODO - test_str
-define void @test_sub_8(i8 %a0, i8* %a1) optsize {
+define void @test_sub_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_sub_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: subb $7, %al # sched: [1:0.33]
; GENERIC-NEXT: subb $7, %dil # sched: [1:0.33]
; GENERIC-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: subb %dil, %dil # sched: [1:0.33]
+; GENERIC-NEXT: subb %dl, %dil # sched: [1:0.33]
; GENERIC-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -14552,7 +14552,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; ATOM-NEXT: subb $7, %al # sched: [1:0.50]
; ATOM-NEXT: subb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: subb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: subb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: subb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: subb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: subb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -14564,7 +14564,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; SLM-NEXT: subb $7, %al # sched: [1:0.50]
; SLM-NEXT: subb $7, %dil # sched: [1:0.50]
; SLM-NEXT: subb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: subb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: subb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: subb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: subb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -14576,7 +14576,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; SANDY-NEXT: subb $7, %al # sched: [1:0.33]
; SANDY-NEXT: subb $7, %dil # sched: [1:0.33]
; SANDY-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: subb %dil, %dil # sched: [1:0.33]
+; SANDY-NEXT: subb %dl, %dil # sched: [1:0.33]
; SANDY-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -14588,7 +14588,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: subb $7, %al # sched: [1:0.25]
; HASWELL-NEXT: subb $7, %dil # sched: [1:0.25]
; HASWELL-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: subb %dil, %dil # sched: [1:0.25]
+; HASWELL-NEXT: subb %dl, %dil # sched: [1:0.25]
; HASWELL-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -14600,7 +14600,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: subb $7, %al # sched: [1:0.25]
; BROADWELL-NEXT: subb $7, %dil # sched: [1:0.25]
; BROADWELL-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: subb %dil, %dil # sched: [1:0.25]
+; BROADWELL-NEXT: subb %dl, %dil # sched: [1:0.25]
; BROADWELL-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -14612,7 +14612,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: subb $7, %al # sched: [1:0.25]
; SKYLAKE-NEXT: subb $7, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: subb %dil, %dil # sched: [1:0.25]
+; SKYLAKE-NEXT: subb %dl, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -14624,7 +14624,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; SKX-NEXT: subb $7, %al # sched: [1:0.25]
; SKX-NEXT: subb $7, %dil # sched: [1:0.25]
; SKX-NEXT: subb $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: subb %dil, %dil # sched: [1:0.25]
+; SKX-NEXT: subb %dl, %dil # sched: [1:0.25]
; SKX-NEXT: subb %dil, (%rsi) # sched: [7:1.00]
; SKX-NEXT: subb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -14636,7 +14636,7 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: subb $7, %al # sched: [1:0.50]
; BTVER2-NEXT: subb $7, %dil # sched: [1:0.50]
; BTVER2-NEXT: subb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: subb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT: subb %dl, %dil # sched: [1:0.50]
; BTVER2-NEXT: subb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: subb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -14648,15 +14648,15 @@ define void @test_sub_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: subb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: subb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: subb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: subb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: subb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: subb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: subb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "subb $2, %AL \0A\09 subb $2, $0 \0A\09 subb $2, $1 \0A\09 subb $0, $0 \0A\09 subb $0, $1 \0A\09 subb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "subb $3, %AL \0A\09 subb $3, $0 \0A\09 subb $3, $2 \0A\09 subb $1, $0 \0A\09 subb $0, $2 \0A\09 subb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_sub_16(i16 %a0, i16* %a1) optsize {
+define void @test_sub_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_sub_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -14668,7 +14668,7 @@ define void @test_sub_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: subw $7, %di # sched: [1:0.33]
; GENERIC-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: subw %di, %di # sched: [1:0.33]
+; GENERIC-NEXT: subw %dx, %di # sched: [1:0.33]
; GENERIC-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: subw (%rsi), %di # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -14685,7 +14685,7 @@ define void @test_sub_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: subw $7, %di # sched: [1:0.50]
; ATOM-NEXT: subw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: subw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: subw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: subw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: subw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -14702,7 +14702,7 @@ define void @test_sub_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: subw $7, %di # sched: [1:0.50]
; SLM-NEXT: subw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: subw %di, %di # sched: [1:0.50]
+; SLM-NEXT: subw %dx, %di # sched: [1:0.50]
; SLM-NEXT: subw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: subw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -14719,7 +14719,7 @@ define void @test_sub_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: subw $7, %di # sched: [1:0.33]
; SANDY-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: subw %di, %di # sched: [1:0.33]
+; SANDY-NEXT: subw %dx, %di # sched: [1:0.33]
; SANDY-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: subw (%rsi), %di # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -14736,7 +14736,7 @@ define void @test_sub_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: subw $7, %di # sched: [1:0.25]
; HASWELL-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: subw %di, %di # sched: [1:0.25]
+; HASWELL-NEXT: subw %dx, %di # sched: [1:0.25]
; HASWELL-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: subw (%rsi), %di # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -14753,7 +14753,7 @@ define void @test_sub_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: subw $7, %di # sched: [1:0.25]
; BROADWELL-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: subw %di, %di # sched: [1:0.25]
+; BROADWELL-NEXT: subw %dx, %di # sched: [1:0.25]
; BROADWELL-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: subw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -14770,7 +14770,7 @@ define void @test_sub_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: subw $7, %di # sched: [1:0.25]
; SKYLAKE-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: subw %di, %di # sched: [1:0.25]
+; SKYLAKE-NEXT: subw %dx, %di # sched: [1:0.25]
; SKYLAKE-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: subw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -14787,7 +14787,7 @@ define void @test_sub_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: subw $7, %di # sched: [1:0.25]
; SKX-NEXT: subw $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: subw %di, %di # sched: [1:0.25]
+; SKX-NEXT: subw %dx, %di # sched: [1:0.25]
; SKX-NEXT: subw %di, (%rsi) # sched: [7:1.00]
; SKX-NEXT: subw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -14804,7 +14804,7 @@ define void @test_sub_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: subw $7, %di # sched: [1:0.50]
; BTVER2-NEXT: subw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: subw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT: subw %dx, %di # sched: [1:0.50]
; BTVER2-NEXT: subw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: subw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -14821,15 +14821,15 @@ define void @test_sub_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: subw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: subw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: subw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: subw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: subw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: subw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "subw $2, %AX \0A\09 subw $2, $0 \0A\09 subw $2, $1 \0A\09 subw $3, $0 \0A\09 subw $3, $1 \0A\09 subw $0, $0 \0A\09 subw $0, $1 \0A\09 subw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "subw $3, %AX \0A\09 subw $3, $0 \0A\09 subw $3, $2 \0A\09 subw $4, $0 \0A\09 subw $4, $2 \0A\09 subw $1, $0 \0A\09 subw $0, $2 \0A\09 subw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_sub_32(i32 %a0, i32* %a1) optsize {
+define void @test_sub_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_sub_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -14841,7 +14841,7 @@ define void @test_sub_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: subl $7, %edi # sched: [1:0.33]
; GENERIC-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: subl %edi, %edi # sched: [1:0.33]
+; GENERIC-NEXT: subl %edx, %edi # sched: [1:0.33]
; GENERIC-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -14858,7 +14858,7 @@ define void @test_sub_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: subl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: subl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: subl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: subl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: subl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: subl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -14875,7 +14875,7 @@ define void @test_sub_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: subl $7, %edi # sched: [1:0.50]
; SLM-NEXT: subl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: subl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: subl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: subl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: subl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -14892,7 +14892,7 @@ define void @test_sub_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: subl $7, %edi # sched: [1:0.33]
; SANDY-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: subl %edi, %edi # sched: [1:0.33]
+; SANDY-NEXT: subl %edx, %edi # sched: [1:0.33]
; SANDY-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -14909,7 +14909,7 @@ define void @test_sub_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: subl $7, %edi # sched: [1:0.25]
; HASWELL-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: subl %edi, %edi # sched: [1:0.25]
+; HASWELL-NEXT: subl %edx, %edi # sched: [1:0.25]
; HASWELL-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -14926,7 +14926,7 @@ define void @test_sub_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: subl $7, %edi # sched: [1:0.25]
; BROADWELL-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: subl %edi, %edi # sched: [1:0.25]
+; BROADWELL-NEXT: subl %edx, %edi # sched: [1:0.25]
; BROADWELL-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -14943,7 +14943,7 @@ define void @test_sub_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: subl $7, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: subl %edi, %edi # sched: [1:0.25]
+; SKYLAKE-NEXT: subl %edx, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -14960,7 +14960,7 @@ define void @test_sub_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: subl $7, %edi # sched: [1:0.25]
; SKX-NEXT: subl $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: subl %edi, %edi # sched: [1:0.25]
+; SKX-NEXT: subl %edx, %edi # sched: [1:0.25]
; SKX-NEXT: subl %edi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: subl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -14977,7 +14977,7 @@ define void @test_sub_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: subl $7, %edi # sched: [1:0.50]
; BTVER2-NEXT: subl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: subl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT: subl %edx, %edi # sched: [1:0.50]
; BTVER2-NEXT: subl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: subl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -14994,15 +14994,15 @@ define void @test_sub_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: subl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: subl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: subl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: subl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: subl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: subl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "subl $2, %EAX \0A\09 subl $2, $0 \0A\09 subl $2, $1 \0A\09 subl $3, $0 \0A\09 subl $3, $1 \0A\09 subl $0, $0 \0A\09 subl $0, $1 \0A\09 subl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "subl $3, %EAX \0A\09 subl $3, $0 \0A\09 subl $3, $2 \0A\09 subl $4, $0 \0A\09 subl $4, $2 \0A\09 subl $1, $0 \0A\09 subl $0, $2 \0A\09 subl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_sub_64(i64 %a0, i64* %a1) optsize {
+define void @test_sub_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_sub_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -15014,7 +15014,7 @@ define void @test_sub_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: subq $7, %rdi # sched: [1:0.33]
; GENERIC-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: subq %rdi, %rdi # sched: [1:0.33]
+; GENERIC-NEXT: subq %rdx, %rdi # sched: [1:0.33]
; GENERIC-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -15031,7 +15031,7 @@ define void @test_sub_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: subq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: subq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: subq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: subq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: subq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: subq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -15048,7 +15048,7 @@ define void @test_sub_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: subq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: subq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: subq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: subq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: subq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: subq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -15065,7 +15065,7 @@ define void @test_sub_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: subq $7, %rdi # sched: [1:0.33]
; SANDY-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: subq %rdi, %rdi # sched: [1:0.33]
+; SANDY-NEXT: subq %rdx, %rdi # sched: [1:0.33]
; SANDY-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -15082,7 +15082,7 @@ define void @test_sub_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: subq $7, %rdi # sched: [1:0.25]
; HASWELL-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: subq %rdi, %rdi # sched: [1:0.25]
+; HASWELL-NEXT: subq %rdx, %rdi # sched: [1:0.25]
; HASWELL-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -15099,7 +15099,7 @@ define void @test_sub_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: subq $7, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: subq %rdi, %rdi # sched: [1:0.25]
+; BROADWELL-NEXT: subq %rdx, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -15116,7 +15116,7 @@ define void @test_sub_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: subq $7, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: subq %rdi, %rdi # sched: [1:0.25]
+; SKYLAKE-NEXT: subq %rdx, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -15133,7 +15133,7 @@ define void @test_sub_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: subq $7, %rdi # sched: [1:0.25]
; SKX-NEXT: subq $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: subq %rdi, %rdi # sched: [1:0.25]
+; SKX-NEXT: subq %rdx, %rdi # sched: [1:0.25]
; SKX-NEXT: subq %rdi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: subq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -15150,7 +15150,7 @@ define void @test_sub_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: subq $7, %rdi # sched: [1:0.50]
; BTVER2-NEXT: subq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: subq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT: subq %rdx, %rdi # sched: [1:0.50]
; BTVER2-NEXT: subq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: subq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -15167,12 +15167,12 @@ define void @test_sub_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: subq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: subq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: subq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: subq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: subq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: subq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "subq $2, %RAX \0A\09 subq $2, $0 \0A\09 subq $2, $1 \0A\09 subq $3, $0 \0A\09 subq $3, $1 \0A\09 subq $0, $0 \0A\09 subq $0, $1 \0A\09 subq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "subq $3, %RAX \0A\09 subq $3, $0 \0A\09 subq $3, $2 \0A\09 subq $4, $0 \0A\09 subq $4, $2 \0A\09 subq $1, $0 \0A\09 subq $0, $2 \0A\09 subq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
@@ -16578,14 +16578,14 @@ define void @test_xlat() optsize {
ret void
}
-define void @test_xor_8(i8 %a0, i8* %a1) optsize {
+define void @test_xor_8(i8 %a0, i8* %a1, i8 %a2) optsize {
; GENERIC-LABEL: test_xor_8:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: xorb $7, %al # sched: [1:0.33]
; GENERIC-NEXT: xorb $7, %dil # sched: [1:0.33]
; GENERIC-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: xorb %dil, %dil # sched: [1:0.33]
+; GENERIC-NEXT: xorb %dl, %dil # sched: [1:0.33]
; GENERIC-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -16597,7 +16597,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; ATOM-NEXT: xorb $7, %al # sched: [1:0.50]
; ATOM-NEXT: xorb $7, %dil # sched: [1:0.50]
; ATOM-NEXT: xorb $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: xorb %dil, %dil # sched: [1:0.50]
+; ATOM-NEXT: xorb %dl, %dil # sched: [1:0.50]
; ATOM-NEXT: xorb %dil, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: xorb (%rsi), %dil # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -16609,7 +16609,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; SLM-NEXT: xorb $7, %al # sched: [1:0.50]
; SLM-NEXT: xorb $7, %dil # sched: [1:0.50]
; SLM-NEXT: xorb $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: xorb %dil, %dil # sched: [1:0.50]
+; SLM-NEXT: xorb %dl, %dil # sched: [1:0.50]
; SLM-NEXT: xorb %dil, (%rsi) # sched: [5:2.00]
; SLM-NEXT: xorb (%rsi), %dil # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -16621,7 +16621,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; SANDY-NEXT: xorb $7, %al # sched: [1:0.33]
; SANDY-NEXT: xorb $7, %dil # sched: [1:0.33]
; SANDY-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: xorb %dil, %dil # sched: [1:0.33]
+; SANDY-NEXT: xorb %dl, %dil # sched: [1:0.33]
; SANDY-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -16633,7 +16633,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; HASWELL-NEXT: xorb $7, %al # sched: [1:0.25]
; HASWELL-NEXT: xorb $7, %dil # sched: [1:0.25]
; HASWELL-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: xorb %dil, %dil # sched: [1:0.25]
+; HASWELL-NEXT: xorb %dl, %dil # sched: [1:0.25]
; HASWELL-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -16645,7 +16645,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; BROADWELL-NEXT: xorb $7, %al # sched: [1:0.25]
; BROADWELL-NEXT: xorb $7, %dil # sched: [1:0.25]
; BROADWELL-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: xorb %dil, %dil # sched: [1:0.25]
+; BROADWELL-NEXT: xorb %dl, %dil # sched: [1:0.25]
; BROADWELL-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -16657,7 +16657,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; SKYLAKE-NEXT: xorb $7, %al # sched: [1:0.25]
; SKYLAKE-NEXT: xorb $7, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: xorb %dil, %dil # sched: [1:0.25]
+; SKYLAKE-NEXT: xorb %dl, %dil # sched: [1:0.25]
; SKYLAKE-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -16669,7 +16669,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; SKX-NEXT: xorb $7, %al # sched: [1:0.25]
; SKX-NEXT: xorb $7, %dil # sched: [1:0.25]
; SKX-NEXT: xorb $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: xorb %dil, %dil # sched: [1:0.25]
+; SKX-NEXT: xorb %dl, %dil # sched: [1:0.25]
; SKX-NEXT: xorb %dil, (%rsi) # sched: [7:1.00]
; SKX-NEXT: xorb (%rsi), %dil # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -16681,7 +16681,7 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; BTVER2-NEXT: xorb $7, %al # sched: [1:0.50]
; BTVER2-NEXT: xorb $7, %dil # sched: [1:0.50]
; BTVER2-NEXT: xorb $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: xorb %dil, %dil # sched: [1:0.50]
+; BTVER2-NEXT: xorb %dl, %dil # sched: [1:0.50]
; BTVER2-NEXT: xorb %dil, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: xorb (%rsi), %dil # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -16693,15 +16693,15 @@ define void @test_xor_8(i8 %a0, i8* %a1)
; ZNVER1-NEXT: xorb $7, %al # sched: [1:0.25]
; ZNVER1-NEXT: xorb $7, %dil # sched: [1:0.25]
; ZNVER1-NEXT: xorb $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: xorb %dil, %dil # sched: [1:0.25]
+; ZNVER1-NEXT: xorb %dl, %dil # sched: [1:0.25]
; ZNVER1-NEXT: xorb %dil, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: xorb (%rsi), %dil # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "xorb $2, %AL \0A\09 xorb $2, $0 \0A\09 xorb $2, $1 \0A\09 xorb $0, $0 \0A\09 xorb $0, $1 \0A\09 xorb $1, $0", "r,*m,i"(i8 %a0, i8* %a1, i8 7) nounwind
+ tail call void asm "xorb $3, %AL \0A\09 xorb $3, $0 \0A\09 xorb $3, $2 \0A\09 xorb $1, $0 \0A\09 xorb $0, $2 \0A\09 xorb $2, $0", "r,r,*m,i"(i8 %a0, i8 %a2, i8* %a1, i8 7) nounwind
ret void
}
-define void @test_xor_16(i16 %a0, i16* %a1) optsize {
+define void @test_xor_16(i16 %a0, i16* %a1, i16 %a2) optsize {
; GENERIC-LABEL: test_xor_16:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -16713,7 +16713,7 @@ define void @test_xor_16(i16 %a0, i16* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: xorw $7, %di # sched: [1:0.33]
; GENERIC-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: xorw %di, %di # sched: [1:0.33]
+; GENERIC-NEXT: xorw %dx, %di # sched: [1:0.33]
; GENERIC-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -16730,7 +16730,7 @@ define void @test_xor_16(i16 %a0, i16* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: xorw $7, %di # sched: [1:0.50]
; ATOM-NEXT: xorw $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: xorw %di, %di # sched: [1:0.50]
+; ATOM-NEXT: xorw %dx, %di # sched: [1:0.50]
; ATOM-NEXT: xorw %di, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: xorw (%rsi), %di # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -16747,7 +16747,7 @@ define void @test_xor_16(i16 %a0, i16* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: xorw $7, %di # sched: [1:0.50]
; SLM-NEXT: xorw $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: xorw %di, %di # sched: [1:0.50]
+; SLM-NEXT: xorw %dx, %di # sched: [1:0.50]
; SLM-NEXT: xorw %di, (%rsi) # sched: [5:2.00]
; SLM-NEXT: xorw (%rsi), %di # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -16764,7 +16764,7 @@ define void @test_xor_16(i16 %a0, i16* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: xorw $7, %di # sched: [1:0.33]
; SANDY-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: xorw %di, %di # sched: [1:0.33]
+; SANDY-NEXT: xorw %dx, %di # sched: [1:0.33]
; SANDY-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -16781,7 +16781,7 @@ define void @test_xor_16(i16 %a0, i16* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: xorw $7, %di # sched: [1:0.25]
; HASWELL-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: xorw %di, %di # sched: [1:0.25]
+; HASWELL-NEXT: xorw %dx, %di # sched: [1:0.25]
; HASWELL-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -16798,7 +16798,7 @@ define void @test_xor_16(i16 %a0, i16* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: xorw $7, %di # sched: [1:0.25]
; BROADWELL-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: xorw %di, %di # sched: [1:0.25]
+; BROADWELL-NEXT: xorw %dx, %di # sched: [1:0.25]
; BROADWELL-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -16815,7 +16815,7 @@ define void @test_xor_16(i16 %a0, i16* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: xorw $7, %di # sched: [1:0.25]
; SKYLAKE-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: xorw %di, %di # sched: [1:0.25]
+; SKYLAKE-NEXT: xorw %dx, %di # sched: [1:0.25]
; SKYLAKE-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -16832,7 +16832,7 @@ define void @test_xor_16(i16 %a0, i16* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: xorw $7, %di # sched: [1:0.25]
; SKX-NEXT: xorw $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: xorw %di, %di # sched: [1:0.25]
+; SKX-NEXT: xorw %dx, %di # sched: [1:0.25]
; SKX-NEXT: xorw %di, (%rsi) # sched: [7:1.00]
; SKX-NEXT: xorw (%rsi), %di # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -16849,7 +16849,7 @@ define void @test_xor_16(i16 %a0, i16* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: xorw $7, %di # sched: [1:0.50]
; BTVER2-NEXT: xorw $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: xorw %di, %di # sched: [1:0.50]
+; BTVER2-NEXT: xorw %dx, %di # sched: [1:0.50]
; BTVER2-NEXT: xorw %di, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: xorw (%rsi), %di # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -16866,15 +16866,15 @@ define void @test_xor_16(i16 %a0, i16* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: xorw $7, %di # sched: [1:0.25]
; ZNVER1-NEXT: xorw $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: xorw %di, %di # sched: [1:0.25]
+; ZNVER1-NEXT: xorw %dx, %di # sched: [1:0.25]
; ZNVER1-NEXT: xorw %di, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: xorw (%rsi), %di # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "xorw $2, %AX \0A\09 xorw $2, $0 \0A\09 xorw $2, $1 \0A\09 xorw $3, $0 \0A\09 xorw $3, $1 \0A\09 xorw $0, $0 \0A\09 xorw $0, $1 \0A\09 xorw $1, $0", "r,*m,i,i"(i16 %a0, i16* %a1, i16 511, i8 7) nounwind
+ tail call void asm "xorw $3, %AX \0A\09 xorw $3, $0 \0A\09 xorw $3, $2 \0A\09 xorw $4, $0 \0A\09 xorw $4, $2 \0A\09 xorw $1, $0 \0A\09 xorw $0, $2 \0A\09 xorw $2, $0", "r,r,*m,i,i"(i16 %a0, i16 %a2, i16* %a1, i16 511, i8 7) nounwind
ret void
}
-define void @test_xor_32(i32 %a0, i32* %a1) optsize {
+define void @test_xor_32(i32 %a0, i32* %a1, i32 %a2) optsize {
; GENERIC-LABEL: test_xor_32:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -16886,7 +16886,7 @@ define void @test_xor_32(i32 %a0, i32* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: xorl $7, %edi # sched: [1:0.33]
; GENERIC-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: xorl %edi, %edi # sched: [1:0.33]
+; GENERIC-NEXT: xorl %edx, %edi # sched: [1:0.33]
; GENERIC-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -16903,7 +16903,7 @@ define void @test_xor_32(i32 %a0, i32* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: xorl $7, %edi # sched: [1:0.50]
; ATOM-NEXT: xorl $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: xorl %edi, %edi # sched: [1:0.50]
+; ATOM-NEXT: xorl %edx, %edi # sched: [1:0.50]
; ATOM-NEXT: xorl %edi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: xorl (%rsi), %edi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -16920,7 +16920,7 @@ define void @test_xor_32(i32 %a0, i32* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: xorl $7, %edi # sched: [1:0.50]
; SLM-NEXT: xorl $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: xorl %edi, %edi # sched: [1:0.50]
+; SLM-NEXT: xorl %edx, %edi # sched: [1:0.50]
; SLM-NEXT: xorl %edi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: xorl (%rsi), %edi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -16937,7 +16937,7 @@ define void @test_xor_32(i32 %a0, i32* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: xorl $7, %edi # sched: [1:0.33]
; SANDY-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: xorl %edi, %edi # sched: [1:0.33]
+; SANDY-NEXT: xorl %edx, %edi # sched: [1:0.33]
; SANDY-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -16954,7 +16954,7 @@ define void @test_xor_32(i32 %a0, i32* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: xorl $7, %edi # sched: [1:0.25]
; HASWELL-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: xorl %edi, %edi # sched: [1:0.25]
+; HASWELL-NEXT: xorl %edx, %edi # sched: [1:0.25]
; HASWELL-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -16971,7 +16971,7 @@ define void @test_xor_32(i32 %a0, i32* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: xorl $7, %edi # sched: [1:0.25]
; BROADWELL-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: xorl %edi, %edi # sched: [1:0.25]
+; BROADWELL-NEXT: xorl %edx, %edi # sched: [1:0.25]
; BROADWELL-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -16988,7 +16988,7 @@ define void @test_xor_32(i32 %a0, i32* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: xorl $7, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: xorl %edi, %edi # sched: [1:0.25]
+; SKYLAKE-NEXT: xorl %edx, %edi # sched: [1:0.25]
; SKYLAKE-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -17005,7 +17005,7 @@ define void @test_xor_32(i32 %a0, i32* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: xorl $7, %edi # sched: [1:0.25]
; SKX-NEXT: xorl $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: xorl %edi, %edi # sched: [1:0.25]
+; SKX-NEXT: xorl %edx, %edi # sched: [1:0.25]
; SKX-NEXT: xorl %edi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: xorl (%rsi), %edi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -17022,7 +17022,7 @@ define void @test_xor_32(i32 %a0, i32* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: xorl $7, %edi # sched: [1:0.50]
; BTVER2-NEXT: xorl $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: xorl %edi, %edi # sched: [1:0.50]
+; BTVER2-NEXT: xorl %edx, %edi # sched: [1:0.50]
; BTVER2-NEXT: xorl %edi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: xorl (%rsi), %edi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -17039,15 +17039,15 @@ define void @test_xor_32(i32 %a0, i32* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: xorl $7, %edi # sched: [1:0.25]
; ZNVER1-NEXT: xorl $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: xorl %edi, %edi # sched: [1:0.25]
+; ZNVER1-NEXT: xorl %edx, %edi # sched: [1:0.25]
; ZNVER1-NEXT: xorl %edi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: xorl (%rsi), %edi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "xorl $2, %EAX \0A\09 xorl $2, $0 \0A\09 xorl $2, $1 \0A\09 xorl $3, $0 \0A\09 xorl $3, $1 \0A\09 xorl $0, $0 \0A\09 xorl $0, $1 \0A\09 xorl $1, $0", "r,*m,i,i"(i32 %a0, i32* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "xorl $3, %EAX \0A\09 xorl $3, $0 \0A\09 xorl $3, $2 \0A\09 xorl $4, $0 \0A\09 xorl $4, $2 \0A\09 xorl $1, $0 \0A\09 xorl $0, $2 \0A\09 xorl $2, $0", "r,r,*m,i,i"(i32 %a0, i32 %a2, i32* %a1, i32 665536, i8 7) nounwind
ret void
}
-define void @test_xor_64(i64 %a0, i64* %a1) optsize {
+define void @test_xor_64(i64 %a0, i64* %a1, i64 %a2) optsize {
; GENERIC-LABEL: test_xor_64:
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
@@ -17059,7 +17059,7 @@ define void @test_xor_64(i64 %a0, i64* %
; GENERIC-NEXT: # sched: [7:1.00]
; GENERIC-NEXT: xorq $7, %rdi # sched: [1:0.33]
; GENERIC-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; GENERIC-NEXT: xorq %rdi, %rdi # sched: [1:0.33]
+; GENERIC-NEXT: xorq %rdx, %rdi # sched: [1:0.33]
; GENERIC-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; GENERIC-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; GENERIC-NEXT: #NO_APP
@@ -17076,7 +17076,7 @@ define void @test_xor_64(i64 %a0, i64* %
; ATOM-NEXT: # sched: [1:1.00]
; ATOM-NEXT: xorq $7, %rdi # sched: [1:0.50]
; ATOM-NEXT: xorq $7, (%rsi) # sched: [1:1.00]
-; ATOM-NEXT: xorq %rdi, %rdi # sched: [1:0.50]
+; ATOM-NEXT: xorq %rdx, %rdi # sched: [1:0.50]
; ATOM-NEXT: xorq %rdi, (%rsi) # sched: [1:1.00]
; ATOM-NEXT: xorq (%rsi), %rdi # sched: [1:1.00]
; ATOM-NEXT: #NO_APP
@@ -17093,7 +17093,7 @@ define void @test_xor_64(i64 %a0, i64* %
; SLM-NEXT: # sched: [5:2.00]
; SLM-NEXT: xorq $7, %rdi # sched: [1:0.50]
; SLM-NEXT: xorq $7, (%rsi) # sched: [5:2.00]
-; SLM-NEXT: xorq %rdi, %rdi # sched: [1:0.50]
+; SLM-NEXT: xorq %rdx, %rdi # sched: [1:0.50]
; SLM-NEXT: xorq %rdi, (%rsi) # sched: [5:2.00]
; SLM-NEXT: xorq (%rsi), %rdi # sched: [4:1.00]
; SLM-NEXT: #NO_APP
@@ -17110,7 +17110,7 @@ define void @test_xor_64(i64 %a0, i64* %
; SANDY-NEXT: # sched: [7:1.00]
; SANDY-NEXT: xorq $7, %rdi # sched: [1:0.33]
; SANDY-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; SANDY-NEXT: xorq %rdi, %rdi # sched: [1:0.33]
+; SANDY-NEXT: xorq %rdx, %rdi # sched: [1:0.33]
; SANDY-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; SANDY-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; SANDY-NEXT: #NO_APP
@@ -17127,7 +17127,7 @@ define void @test_xor_64(i64 %a0, i64* %
; HASWELL-NEXT: # sched: [7:1.00]
; HASWELL-NEXT: xorq $7, %rdi # sched: [1:0.25]
; HASWELL-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; HASWELL-NEXT: xorq %rdi, %rdi # sched: [1:0.25]
+; HASWELL-NEXT: xorq %rdx, %rdi # sched: [1:0.25]
; HASWELL-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; HASWELL-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; HASWELL-NEXT: #NO_APP
@@ -17144,7 +17144,7 @@ define void @test_xor_64(i64 %a0, i64* %
; BROADWELL-NEXT: # sched: [7:1.00]
; BROADWELL-NEXT: xorq $7, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; BROADWELL-NEXT: xorq %rdi, %rdi # sched: [1:0.25]
+; BROADWELL-NEXT: xorq %rdx, %rdi # sched: [1:0.25]
; BROADWELL-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; BROADWELL-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; BROADWELL-NEXT: #NO_APP
@@ -17161,7 +17161,7 @@ define void @test_xor_64(i64 %a0, i64* %
; SKYLAKE-NEXT: # sched: [7:1.00]
; SKYLAKE-NEXT: xorq $7, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; SKYLAKE-NEXT: xorq %rdi, %rdi # sched: [1:0.25]
+; SKYLAKE-NEXT: xorq %rdx, %rdi # sched: [1:0.25]
; SKYLAKE-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; SKYLAKE-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; SKYLAKE-NEXT: #NO_APP
@@ -17178,7 +17178,7 @@ define void @test_xor_64(i64 %a0, i64* %
; SKX-NEXT: # sched: [7:1.00]
; SKX-NEXT: xorq $7, %rdi # sched: [1:0.25]
; SKX-NEXT: xorq $7, (%rsi) # sched: [7:1.00]
-; SKX-NEXT: xorq %rdi, %rdi # sched: [1:0.25]
+; SKX-NEXT: xorq %rdx, %rdi # sched: [1:0.25]
; SKX-NEXT: xorq %rdi, (%rsi) # sched: [7:1.00]
; SKX-NEXT: xorq (%rsi), %rdi # sched: [6:0.50]
; SKX-NEXT: #NO_APP
@@ -17195,7 +17195,7 @@ define void @test_xor_64(i64 %a0, i64* %
; BTVER2-NEXT: # sched: [5:1.00]
; BTVER2-NEXT: xorq $7, %rdi # sched: [1:0.50]
; BTVER2-NEXT: xorq $7, (%rsi) # sched: [5:1.00]
-; BTVER2-NEXT: xorq %rdi, %rdi # sched: [1:0.50]
+; BTVER2-NEXT: xorq %rdx, %rdi # sched: [1:0.50]
; BTVER2-NEXT: xorq %rdi, (%rsi) # sched: [5:1.00]
; BTVER2-NEXT: xorq (%rsi), %rdi # sched: [4:1.00]
; BTVER2-NEXT: #NO_APP
@@ -17212,11 +17212,11 @@ define void @test_xor_64(i64 %a0, i64* %
; ZNVER1-NEXT: # sched: [5:0.50]
; ZNVER1-NEXT: xorq $7, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: xorq $7, (%rsi) # sched: [5:0.50]
-; ZNVER1-NEXT: xorq %rdi, %rdi # sched: [1:0.25]
+; ZNVER1-NEXT: xorq %rdx, %rdi # sched: [1:0.25]
; ZNVER1-NEXT: xorq %rdi, (%rsi) # sched: [5:0.50]
; ZNVER1-NEXT: xorq (%rsi), %rdi # sched: [5:0.50]
; ZNVER1-NEXT: #NO_APP
; ZNVER1-NEXT: retq # sched: [1:0.50]
- tail call void asm "xorq $2, %RAX \0A\09 xorq $2, $0 \0A\09 xorq $2, $1 \0A\09 xorq $3, $0 \0A\09 xorq $3, $1 \0A\09 xorq $0, $0 \0A\09 xorq $0, $1 \0A\09 xorq $1, $0", "r,*m,i,i"(i64 %a0, i64* %a1, i32 665536, i8 7) nounwind
+ tail call void asm "xorq $3, %RAX \0A\09 xorq $3, $0 \0A\09 xorq $3, $2 \0A\09 xorq $4, $0 \0A\09 xorq $4, $2 \0A\09 xorq $1, $0 \0A\09 xorq $0, $2 \0A\09 xorq $2, $0", "r,r,*m,i,i"(i64 %a0, i64 %a2, i64* %a1, i32 665536, i8 7) nounwind
ret void
}
More information about the llvm-commits
mailing list