diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 |
commit | f25ddd991a5601d0101602c4c263a58c7af4b8a2 (patch) | |
tree | 4cfca640904d1896e25032757a61f8959c066919 /test | |
parent | 3fd58f91dd318518f7daa4ba64c0aaf31799d89b (diff) | |
download | FreeBSD-src-f25ddd991a5601d0101602c4c263a58c7af4b8a2.zip FreeBSD-src-f25ddd991a5601d0101602c4c263a58c7af4b8a2.tar.gz |
Update LLVM to r96341.
Diffstat (limited to 'test')
245 files changed, 23857 insertions, 5982 deletions
diff --git a/test/Analysis/LoopDependenceAnalysis/alias.ll b/test/Analysis/LoopDependenceAnalysis/alias.ll index a5f504b..97be3fd 100644 --- a/test/Analysis/LoopDependenceAnalysis/alias.ll +++ b/test/Analysis/LoopDependenceAnalysis/alias.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -analyze -lda | FileCheck %s +; RUN: opt < %s -analyze -lda | FileCheck %s ;; x[5] = x[6] // with x being a pointer passed as argument diff --git a/test/Analysis/LoopDependenceAnalysis/siv-strong.ll b/test/Analysis/LoopDependenceAnalysis/siv-strong.ll index 3270895..36ac153 100644 --- a/test/Analysis/LoopDependenceAnalysis/siv-strong.ll +++ b/test/Analysis/LoopDependenceAnalysis/siv-strong.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -analyze -lda | FileCheck %s +; RUN: opt < %s -analyze -lda | FileCheck %s @x = common global [256 x i32] zeroinitializer, align 4 @y = common global [256 x i32] zeroinitializer, align 4 diff --git a/test/Analysis/LoopDependenceAnalysis/siv-weak-crossing.ll b/test/Analysis/LoopDependenceAnalysis/siv-weak-crossing.ll index 3d9f258..a7f9bda 100644 --- a/test/Analysis/LoopDependenceAnalysis/siv-weak-crossing.ll +++ b/test/Analysis/LoopDependenceAnalysis/siv-weak-crossing.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -analyze -lda | FileCheck %s +; RUN: opt < %s -analyze -lda | FileCheck %s @x = common global [256 x i32] zeroinitializer, align 4 @y = common global [256 x i32] zeroinitializer, align 4 diff --git a/test/Analysis/LoopDependenceAnalysis/siv-weak-zero.ll b/test/Analysis/LoopDependenceAnalysis/siv-weak-zero.ll index 4433138..e75aefd 100644 --- a/test/Analysis/LoopDependenceAnalysis/siv-weak-zero.ll +++ b/test/Analysis/LoopDependenceAnalysis/siv-weak-zero.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -analyze -lda | FileCheck %s +; RUN: opt < %s -analyze -lda | FileCheck %s @x = common global [256 x i32] zeroinitializer, align 4 @y = common global [256 x i32] zeroinitializer, align 4 diff --git a/test/Analysis/LoopDependenceAnalysis/ziv.ll b/test/Analysis/LoopDependenceAnalysis/ziv.ll index 0a93762..ba45948 100644 --- a/test/Analysis/LoopDependenceAnalysis/ziv.ll +++ b/test/Analysis/LoopDependenceAnalysis/ziv.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -analyze -lda | FileCheck %s +; RUN: opt < %s -analyze -lda | FileCheck %s @x = common global [256 x i32] zeroinitializer, align 4 diff --git a/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll b/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll index ba57662..7ff130f 100644 --- a/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll +++ b/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {Loop %bb: backedge-taken count is 100} ; PR1533 diff --git a/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll b/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll index ce8f725..ab96243 100644 --- a/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll +++ b/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output | grep {Loop %bb: backedge-taken count is (-1 + (-1 \\* %x) + %y)} +; RUN: opt < %s -scalar-evolution -analyze | grep {Loop %bb: backedge-taken count is (-1 + (-1 \\* %x) + %y)} ; PR1597 define i32 @f(i32 %x, i32 %y) { diff --git a/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll b/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll index 817090f..b678fee 100644 --- a/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll +++ b/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {backedge-taken count is 13} ; PR1706 diff --git a/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll b/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll index 27fe714..c12721d 100644 --- a/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll +++ b/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | FileCheck %s +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR1810 define void @fun() { diff --git a/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll b/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll index 6685778..fe3a7f4 100644 --- a/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll +++ b/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output | grep {Loop %header: backedge-taken count is (0 smax %n)} +; RUN: opt < %s -scalar-evolution -analyze | grep {Loop %header: backedge-taken count is (0 smax %n)} define void @foo(i32 %n) { entry: diff --git a/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll b/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll index addf346..4f14a0d 100644 --- a/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll +++ b/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output | grep {Loop %loop: backedge-taken count is (100 + (-100 smax %n))} +; RUN: opt < %s -scalar-evolution -analyze | grep {Loop %loop: backedge-taken count is (100 + (-100 smax %n))} ; PR2002 define void @foo(i8 %n) { diff --git a/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll b/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll index bf9f4a9..52c7985 100644 --- a/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll +++ b/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep umax +; RUN: opt < %s -analyze -scalar-evolution | grep umax ; PR2003 define i32 @foo(i32 %n) { diff --git a/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll b/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll index 8d15b77..bcc124d 100644 --- a/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll +++ b/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {backedge-taken count is 61} ; PR2364 diff --git a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll index 850b670..9db9b71 100644 --- a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll +++ b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& not grep smax +; RUN: opt < %s -analyze -scalar-evolution |& not grep smax ; PR2261 @lut = common global [256 x i8] zeroinitializer, align 32 ; <[256 x i8]*> [#uses=1] diff --git a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll index 59e9fda..1847665 100644 --- a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll +++ b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& not grep smax +; RUN: opt < %s -analyze -scalar-evolution |& not grep smax ; PR2070 define i32 @a(i32 %x) nounwind { diff --git a/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll b/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll index 989ac51..1865c05 100644 --- a/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll +++ b/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep Unpredictable ; PR2088 diff --git a/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll b/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll index 803c7d1..86e07ec4 100644 --- a/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll +++ b/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {backedge-taken count is 113} ; PR2088 diff --git a/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll b/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll index 37b5b94..75bd634 100644 --- a/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll +++ b/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2607 diff --git a/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll b/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll index d54b3b4..1626c1f 100644 --- a/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll +++ b/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2607 diff --git a/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll b/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll index 06200ae..3b31d79 100644 --- a/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll +++ b/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2621 diff --git a/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll b/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll index f3c703a..b296a19 100644 --- a/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll +++ b/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2621 diff --git a/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll b/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll index 9daff99..7722122 100644 --- a/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll +++ b/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output +; RUN: opt < %s -analyze -scalar-evolution ; PR1827 declare void @use(i32) diff --git a/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll b/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll index 5a2c366..2e2aabc 100644 --- a/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll +++ b/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output +; RUN: opt < %s -analyze -scalar-evolution ; PR2602 define i32 @a() nounwind { diff --git a/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll b/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll index f9dd40f..06637b5 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& \ +; RUN: opt < %s -analyze -scalar-evolution |& \ ; RUN: grep {Loop %bb: backedge-taken count is (7 + (-1 \\* %argc))} ; XFAIL: * diff --git a/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll b/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll index 9ee781f..db527fe 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {Loop %bb: Unpredictable backedge-taken count\\.} ; ScalarEvolution can't compute a trip count because it doesn't know if diff --git a/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll b/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll index bcbe92f..102acc6 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& grep {/u 3} +; RUN: opt < %s -analyze -scalar-evolution |& grep {/u 3} ; XFAIL: * define i32 @f(i32 %x) nounwind readnone { diff --git a/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll b/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll index 2ee107a..226221b 100644 --- a/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll +++ b/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep {backedge-taken count is 255} +; RUN: opt < %s -analyze -scalar-evolution | grep {backedge-taken count is 255} ; XFAIL: * define i32 @foo(i32 %x, i32 %y, i32* %lam, i32* %alp) nounwind { diff --git a/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll b/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll index 0cfd84c..33a7479 100644 --- a/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll +++ b/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep {0 smax} +; RUN: opt < %s -analyze -scalar-evolution | grep {0 smax} ; XFAIL: * define i32 @f(i32 %c.idx.val) { diff --git a/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll b/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll index 4ec358c..8152e98 100644 --- a/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll +++ b/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& \ +; RUN: opt < %s -analyze -scalar-evolution |& \ ; RUN: grep {(((-1 \\* %i0) + (100005 smax %i0)) /u 5)} ; XFAIL: * diff --git a/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll b/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll index 1fe1068..3eaa492 100644 --- a/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll +++ b/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output |& grep {/u 5} +; RUN: opt < %s -analyze -scalar-evolution |& grep {/u 5} ; XFAIL: * define i8 @foo0(i8 %i0) nounwind { diff --git a/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll b/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll index 9d13695..cc2a2e4 100644 --- a/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll +++ b/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | not grep {/u -1} +; RUN: opt < %s -analyze -scalar-evolution | not grep {/u -1} ; PR3275 @g_16 = external global i16 ; <i16*> [#uses=3] diff --git a/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll index 78a7fd0..c2e108a 100644 --- a/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll +++ b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep {(trunc i} | not grep ext +; RUN: opt < %s -analyze -scalar-evolution | grep {(trunc i} | not grep ext define i16 @test1(i8 %x) { %A = sext i8 %x to i32 diff --git a/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll b/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll index e81530e..dc7bd29 100644 --- a/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll +++ b/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep {count is 2} +; RUN: opt < %s -analyze -scalar-evolution | grep {count is 2} ; PR3171 target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128" diff --git a/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll b/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll index fcc6fc3..9573aed 100644 --- a/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll +++ b/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {backedge-taken count is 100} ; PR1101 diff --git a/test/Analysis/ScalarEvolution/and-xor.ll b/test/Analysis/ScalarEvolution/and-xor.ll index 90d947f..1772573 100644 --- a/test/Analysis/ScalarEvolution/and-xor.ll +++ b/test/Analysis/ScalarEvolution/and-xor.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep {\\--> (zext} | count 2 define i32 @foo(i32 %x) { diff --git a/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll index f638eb3..7eeb308 100644 --- a/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll +++ b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output +; RUN: opt < %s -analyze -scalar-evolution ; PR4537 ; ModuleID = 'b.bc' diff --git a/test/Analysis/ScalarEvolution/avoid-smax-0.ll b/test/Analysis/ScalarEvolution/avoid-smax-0.ll index 55d3bd5..24275f9 100644 --- a/test/Analysis/ScalarEvolution/avoid-smax-0.ll +++ b/test/Analysis/ScalarEvolution/avoid-smax-0.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output | grep {Loop %bb3: backedge-taken count is (-1 + %n)} +; RUN: opt < %s -scalar-evolution -analyze | grep {Loop %bb3: backedge-taken count is (-1 + %n)} ; We don't want to use a max in the trip count expression in ; this testcase. diff --git a/test/Analysis/ScalarEvolution/div-overflow.ll b/test/Analysis/ScalarEvolution/div-overflow.ll index 0c01044..4f6f1e2 100644 --- a/test/Analysis/ScalarEvolution/div-overflow.ll +++ b/test/Analysis/ScalarEvolution/div-overflow.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep {\\--> ((-128 \\* %a) /u -128)} ; Don't let ScalarEvolution fold this div away. diff --git a/test/Analysis/ScalarEvolution/do-loop.ll b/test/Analysis/ScalarEvolution/do-loop.ll index f8d7da7..6e3295a 100644 --- a/test/Analysis/ScalarEvolution/do-loop.ll +++ b/test/Analysis/ScalarEvolution/do-loop.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep smax +; RUN: opt < %s -analyze -scalar-evolution | grep smax ; PR1614 define i32 @f(i32 %x, i32 %y) { diff --git a/test/Analysis/ScalarEvolution/max-trip-count.ll b/test/Analysis/ScalarEvolution/max-trip-count.ll index a4fdcd0..a8966be 100644 --- a/test/Analysis/ScalarEvolution/max-trip-count.ll +++ b/test/Analysis/ScalarEvolution/max-trip-count.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {\{%d,+,\[^\{\}\]\*\}<%bb>} ; ScalarEvolution should be able to understand the loop and eliminate the casts. diff --git a/test/Analysis/ScalarEvolution/nsw-offset.ll b/test/Analysis/ScalarEvolution/nsw-offset.ll index fd0dfe6..4cd9a6d 100644 --- a/test/Analysis/ScalarEvolution/nsw-offset.ll +++ b/test/Analysis/ScalarEvolution/nsw-offset.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -S -analyze -scalar-evolution -disable-output | FileCheck %s +; RUN: opt < %s -S -analyze -scalar-evolution | FileCheck %s ; ScalarEvolution should be able to fold away the sign-extensions ; on this loop with a primary induction variable incremented with @@ -6,8 +6,9 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" -define void @foo(i32 %n, double* nocapture %d, double* nocapture %q) nounwind { +define void @foo(i32 %no, double* nocapture %d, double* nocapture %q) nounwind { entry: + %n = and i32 %no, 4294967294 %0 = icmp sgt i32 %n, 0 ; <i1> [#uses=1] br i1 %0, label %bb.nph, label %return @@ -73,4 +74,4 @@ return: ; preds = %bb1.return_crit_edg } ; CHECK: Loop %bb: backedge-taken count is ((-1 + %n) /u 2) -; CHECK: Loop %bb: max backedge-taken count is 1073741823 +; CHECK: Loop %bb: max backedge-taken count is 1073741822 diff --git a/test/Analysis/ScalarEvolution/nsw.ll b/test/Analysis/ScalarEvolution/nsw.ll index e4f2b29..456f3f0 100644 --- a/test/Analysis/ScalarEvolution/nsw.ll +++ b/test/Analysis/ScalarEvolution/nsw.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep { --> {.*,+,.*}<%bb>} | count 8 +; RUN: opt < %s -analyze -scalar-evolution | grep { --> {.*,+,.*}<%bb>} | count 8 ; The addrecs in this loop are analyzable only by using nsw information. diff --git a/test/Analysis/ScalarEvolution/pointer-sign-bits.ll b/test/Analysis/ScalarEvolution/pointer-sign-bits.ll index 4de006c..b2cec2d 100644 --- a/test/Analysis/ScalarEvolution/pointer-sign-bits.ll +++ b/test/Analysis/ScalarEvolution/pointer-sign-bits.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output +; RUN: opt < %s -analyze -scalar-evolution target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" %JavaObject = type { [0 x i32 (...)*]*, i8* } diff --git a/test/Analysis/ScalarEvolution/sext-inreg.ll b/test/Analysis/ScalarEvolution/sext-inreg.ll index 44878225..23e1210 100644 --- a/test/Analysis/ScalarEvolution/sext-inreg.ll +++ b/test/Analysis/ScalarEvolution/sext-inreg.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output > %t +; RUN: opt < %s -analyze -scalar-evolution > %t ; RUN: grep {sext i57 \{0,+,199\}<%bb> to i64} %t | count 1 ; RUN: grep {sext i59 \{0,+,199\}<%bb> to i64} %t | count 1 diff --git a/test/Analysis/ScalarEvolution/sext-iv-0.ll b/test/Analysis/ScalarEvolution/sext-iv-0.ll index 05983c1..2af794f 100644 --- a/test/Analysis/ScalarEvolution/sext-iv-0.ll +++ b/test/Analysis/ScalarEvolution/sext-iv-0.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -scalar-evolution -analyze \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep { --> \{-128,+,1\}<%bb1> Exits: 127} | count 5 ; Convert (sext {-128,+,1}) to {sext(-128),+,sext(1)}, since the diff --git a/test/Analysis/ScalarEvolution/sext-iv-1.ll b/test/Analysis/ScalarEvolution/sext-iv-1.ll index 0bf51d9..9063cbb 100644 --- a/test/Analysis/ScalarEvolution/sext-iv-1.ll +++ b/test/Analysis/ScalarEvolution/sext-iv-1.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -disable-output -scalar-evolution -analyze \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep { --> (sext i. \{.\*,+,.\*\}<%bb1> to i64)} | count 5 ; Don't convert (sext {...,+,...}) to {sext(...),+,sext(...)} in cases diff --git a/test/Analysis/ScalarEvolution/sext-iv-2.ll b/test/Analysis/ScalarEvolution/sext-iv-2.ll index fc39cae..97e252c 100644 --- a/test/Analysis/ScalarEvolution/sext-iv-2.ll +++ b/test/Analysis/ScalarEvolution/sext-iv-2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | FileCheck %s +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; CHECK: %tmp3 = sext i8 %tmp2 to i32 ; CHECK: --> (sext i8 {0,+,1}<%bb1> to i32) Exits: -1 diff --git a/test/Analysis/ScalarEvolution/smax.ll b/test/Analysis/ScalarEvolution/smax.ll index 39de8d6..15dd744 100644 --- a/test/Analysis/ScalarEvolution/smax.ll +++ b/test/Analysis/ScalarEvolution/smax.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep smax | count 2 -; RUN: opt < %s -analyze -scalar-evolution -disable-output | grep \ +; RUN: opt < %s -analyze -scalar-evolution | grep smax | count 2 +; RUN: opt < %s -analyze -scalar-evolution | grep \ ; RUN: {%. smax %. smax %.} ; PR1614 diff --git a/test/Analysis/ScalarEvolution/trip-count.ll b/test/Analysis/ScalarEvolution/trip-count.ll index 66cc304..d750d4a 100644 --- a/test/Analysis/ScalarEvolution/trip-count.ll +++ b/test/Analysis/ScalarEvolution/trip-count.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: -scalar-evolution-max-iterations=0 | grep {backedge-taken count is 10000} ; PR1101 diff --git a/test/Analysis/ScalarEvolution/trip-count2.ll b/test/Analysis/ScalarEvolution/trip-count2.ll index bbe6435..79f3161 100644 --- a/test/Analysis/ScalarEvolution/trip-count2.ll +++ b/test/Analysis/ScalarEvolution/trip-count2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output | \ +; RUN: opt < %s -analyze -scalar-evolution | \ ; RUN: grep {backedge-taken count is 4} ; PR1101 diff --git a/test/Analysis/ScalarEvolution/trip-count3.ll b/test/Analysis/ScalarEvolution/trip-count3.ll index 7d8e0c6..10b798b 100644 --- a/test/Analysis/ScalarEvolution/trip-count3.ll +++ b/test/Analysis/ScalarEvolution/trip-count3.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep {Loop %bb3\\.i: Unpredictable backedge-taken count\\.} ; ScalarEvolution can't compute a trip count because it doesn't know if diff --git a/test/Analysis/ScalarEvolution/trip-count4.ll b/test/Analysis/ScalarEvolution/trip-count4.ll index e8d59cf..116f62d 100644 --- a/test/Analysis/ScalarEvolution/trip-count4.ll +++ b/test/Analysis/ScalarEvolution/trip-count4.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {sext.*trunc.*Exits: 11} ; ScalarEvolution should be able to compute a loop exit value for %indvar.i8. diff --git a/test/Analysis/ScalarEvolution/trip-count5.ll b/test/Analysis/ScalarEvolution/trip-count5.ll index 2512a96..1194a1d 100644 --- a/test/Analysis/ScalarEvolution/trip-count5.ll +++ b/test/Analysis/ScalarEvolution/trip-count5.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output > %t +; RUN: opt < %s -analyze -scalar-evolution > %t ; RUN: grep sext %t | count 2 ; RUN: not grep {(sext} %t diff --git a/test/Analysis/ScalarEvolution/trip-count6.ll b/test/Analysis/ScalarEvolution/trip-count6.ll index 5833286..956fb81 100644 --- a/test/Analysis/ScalarEvolution/trip-count6.ll +++ b/test/Analysis/ScalarEvolution/trip-count6.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -disable-output -scalar-evolution \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {max backedge-taken count is 1\$} @mode_table = global [4 x i32] zeroinitializer ; <[4 x i32]*> [#uses=1] diff --git a/test/Analysis/ScalarEvolution/trip-count7.ll b/test/Analysis/ScalarEvolution/trip-count7.ll index 74c856f..a8b797e 100644 --- a/test/Analysis/ScalarEvolution/trip-count7.ll +++ b/test/Analysis/ScalarEvolution/trip-count7.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {Loop %bb7.i: Unpredictable backedge-taken count\\.} target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" diff --git a/test/Analysis/ScalarEvolution/trip-count8.ll b/test/Analysis/ScalarEvolution/trip-count8.ll index 5063342..ac5ee60 100644 --- a/test/Analysis/ScalarEvolution/trip-count8.ll +++ b/test/Analysis/ScalarEvolution/trip-count8.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | grep {Loop %for\\.body: backedge-taken count is (-1 + \[%\]ecx)} ; PR4599 diff --git a/test/Analysis/ScalarEvolution/trip-count9.ll b/test/Analysis/ScalarEvolution/trip-count9.ll new file mode 100644 index 0000000..9180f2b --- /dev/null +++ b/test/Analysis/ScalarEvolution/trip-count9.ll @@ -0,0 +1,408 @@ +; RUN: opt -analyze -scalar-evolution -S < %s | FileCheck %s + +; Every combination of +; - starting at 0, 1, or %x +; - steping by 1 or 2 +; - stopping at %n or %n*2 +; - using nsw, or not + +; Some of these represent missed opportunities. + +; CHECK: Determining loop execution counts for: @foo +; CHECK: Loop %loop: backedge-taken count is (-1 + %n) +; CHECK: Loop %loop: max backedge-taken count is 6 +define void @foo(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @step2(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @start1 +; CHECK: Loop %loop: backedge-taken count is (-2 + (2 smax %n)) +; CHECK: Loop %loop: max backedge-taken count is 5 +define void @start1(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @start1_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @start1_step2(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @startx +; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n)) +; CHECK: Loop %loop: max backedge-taken count is -1 +define void @startx(i4 %n, i4 %x) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @startx_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @startx_step2(i4 %n, i4 %x) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @nsw +; CHECK: Loop %loop: backedge-taken count is (-1 + %n) +; CHECK: Loop %loop: max backedge-taken count is 6 +define void @nsw(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; Be careful with this one. If %n is INT4_MAX, %i.next will wrap. The nsw bit +; says that the result is undefined, but ScalarEvolution must respect that +; subsequent passes may result the undefined behavior in predictable ways. +; CHECK: Determining loop execution counts for: @nsw_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @nsw_step2(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @nsw_start1 +; CHECK: Loop %loop: backedge-taken count is (-2 + (2 smax %n)) +; CHECK: Loop %loop: max backedge-taken count is 5 +define void @nsw_start1(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @nsw_start1_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @nsw_start1_step2(i4 %n) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @nsw_startx +; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n)) +; CHECK: Loop %loop: max backedge-taken count is -1 +define void @nsw_startx(i4 %n, i4 %x) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @nsw_startx_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. +define void @nsw_startx_step2(i4 %n, i4 %x) { +entry: + %s = icmp sgt i4 %n, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %n + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even +; CHECK: Loop %loop: backedge-taken count is (-1 + (2 * %n)) +; CHECK: Loop %loop: max backedge-taken count is 5 +define void @even(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: max backedge-taken count is 2 +define void @even_step2(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_start1 +; CHECK: Loop %loop: backedge-taken count is (-2 + (2 smax (2 * %n))) +; CHECK: Loop %loop: max backedge-taken count is 4 +define void @even_start1(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_start1_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: max backedge-taken count is 2 +define void @even_start1_step2(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_startx +; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n))) +; CHECK: Loop %loop: max backedge-taken count is -1 +define void @even_startx(i4 %n, i4 %x) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_startx_step2 +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: max backedge-taken count is 7 +define void @even_startx_step2(i4 %n, i4 %x) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw +; CHECK: Loop %loop: backedge-taken count is (-1 + (2 * %n)) +; CHECK: Loop %loop: max backedge-taken count is 5 +define void @even_nsw(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw_step2 +; CHECK: Loop %loop: backedge-taken count is ((-1 + (2 * %n)) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 2 +define void @even_nsw_step2(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 0, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw_start1 +; CHECK: Loop %loop: backedge-taken count is (-2 + (2 smax (2 * %n))) +; CHECK: Loop %loop: max backedge-taken count is 4 +define void @even_nsw_start1(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw_start1_step2 +; CHECK: Loop %loop: backedge-taken count is ((-2 + (3 smax (2 * %n))) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 2 +define void @even_nsw_start1_step2(i4 %n) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ 1, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw_startx +; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n))) +; CHECK: Loop %loop: max backedge-taken count is -1 +define void @even_nsw_startx(i4 %n, i4 %x) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 1 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} + +; CHECK: Determining loop execution counts for: @even_nsw_startx_step2 +; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 7 +define void @even_nsw_startx_step2(i4 %n, i4 %x) { +entry: + %m = shl i4 %n, 1 + %s = icmp sgt i4 %m, 0 + br i1 %s, label %loop, label %exit +loop: + %i = phi i4 [ %x, %entry ], [ %i.next, %loop ] + %i.next = add nsw i4 %i, 2 + %t = icmp slt i4 %i.next, %m + br i1 %t, label %loop, label %exit +exit: + ret void +} diff --git a/test/Analysis/ScalarEvolution/xor-and.ll b/test/Analysis/ScalarEvolution/xor-and.ll index c8339d7..c0530bb 100644 --- a/test/Analysis/ScalarEvolution/xor-and.ll +++ b/test/Analysis/ScalarEvolution/xor-and.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -disable-output -analyze \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep {\\--> (zext i4 (-8 + (trunc i64 (8 \\* %x) to i4)) to i64)} ; ScalarEvolution shouldn't try to analyze %z into something like diff --git a/test/Analysis/ScalarEvolution/zext-wrap.ll b/test/Analysis/ScalarEvolution/zext-wrap.ll index c4ac5de..38d15ff 100644 --- a/test/Analysis/ScalarEvolution/zext-wrap.ll +++ b/test/Analysis/ScalarEvolution/zext-wrap.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution -disable-output \ +; RUN: opt < %s -analyze -scalar-evolution \ ; RUN: | FileCheck %s ; PR4569 diff --git a/test/Archive/MacOSX.a b/test/Archive/MacOSX.a Binary files differindex 77f88a2..8ba1e6d 100644 --- a/test/Archive/MacOSX.a +++ b/test/Archive/MacOSX.a diff --git a/test/Archive/MacOSX.toc b/test/Archive/MacOSX.toc Binary files differindex 61cbd3b..f971df7 100644 --- a/test/Archive/MacOSX.toc +++ b/test/Archive/MacOSX.toc diff --git a/test/Assembler/2010-01-06-UnionType.ll b/test/Assembler/2010-01-06-UnionType.ll new file mode 100644 index 0000000..37130d6 --- /dev/null +++ b/test/Assembler/2010-01-06-UnionType.ll @@ -0,0 +1,3 @@ +; RUN: llvm-as %s -o /dev/null + +%X = type union { i32, i32* } diff --git a/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll new file mode 100644 index 0000000..b2256b1 --- /dev/null +++ b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll @@ -0,0 +1,25 @@ +; RUN: opt -std-compile-opts < %s | llvm-dis | not grep badref + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" +target triple = "x86_64-apple-darwin10.2" + +%struct.anon = type { i32, i32 } +%struct.test = type { i64, %struct.anon, %struct.test* } + +@TestArrayPtr = global %struct.test* getelementptr inbounds ([10 x %struct.test]* @TestArray, i64 0, i64 3) ; <%struct.test**> [#uses=1] +@TestArray = common global [10 x %struct.test] zeroinitializer, align 32 ; <[10 x %struct.test]*> [#uses=2] + +define i32 @main() nounwind readonly { + %diff1 = alloca i64 ; <i64*> [#uses=2] + call void @llvm.dbg.declare(metadata !{i64* %diff1}, metadata !0) + store i64 72, i64* %diff1, align 8 + %v1 = load %struct.test** @TestArrayPtr, align 8 ; <%struct.test*> [#uses=1] + %v2 = ptrtoint %struct.test* %v1 to i64 ; <i64> [#uses=1] + %v3 = sub i64 %v2, ptrtoint ([10 x %struct.test]* @TestArray to i64) ; <i64> [#uses=1] + store i64 %v3, i64* %diff1, align 8 + ret i32 4 +} + +declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone + +!0 = metadata !{i32 459008, metadata !0, metadata !0, metadata !0, i32 38, metadata !0} ; [ DW_TAG_auto_variable ] diff --git a/test/Assembler/functionlocal-metadata.ll b/test/Assembler/functionlocal-metadata.ll index 16bc9d0..216587d 100644 --- a/test/Assembler/functionlocal-metadata.ll +++ b/test/Assembler/functionlocal-metadata.ll @@ -2,6 +2,8 @@ define void @Foo(i32 %a, i32 %b) { entry: + call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !"bar") +; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata !"bar") %0 = add i32 %a, 1 ; <i32> [#uses=1] %two = add i32 %b, %0 ; <i32> [#uses=0] %1 = alloca i32 ; <i32*> [#uses=1] diff --git a/test/Bitcode/flags.ll b/test/Bitcode/flags.ll new file mode 100644 index 0000000..7b0c5b5 --- /dev/null +++ b/test/Bitcode/flags.ll @@ -0,0 +1,27 @@ +; RUN: llvm-as < %s | llvm-dis > %t0 +; RUN: opt -S < %s > %t1 +; RUN: diff %t0 %t1 +; PR6140 + +; Make sure the flags are serialized/deserialized properly for both +; forward and backward references. + +define void @foo() nounwind { +entry: + br label %first + +second: ; preds = %first + %u = add nuw i32 %a, 0 ; <i32> [#uses=0] + %s = add nsw i32 %a, 0 ; <i32> [#uses=0] + %us = add nuw nsw i32 %a, 0 ; <i32> [#uses=0] + %z = add i32 %a, 0 ; <i32> [#uses=0] + unreachable + +first: ; preds = %entry + %a = bitcast i32 0 to i32 ; <i32> [#uses=8] + %uu = add nuw i32 %a, 0 ; <i32> [#uses=0] + %ss = add nsw i32 %a, 0 ; <i32> [#uses=0] + %uuss = add nuw nsw i32 %a, 0 ; <i32> [#uses=0] + %zz = add i32 %a, 0 ; <i32> [#uses=0] + br label %second +} diff --git a/test/CodeGen/ARM/2009-10-30.ll b/test/CodeGen/ARM/2009-10-30.ll index 8256386..90a5bd2 100644 --- a/test/CodeGen/ARM/2009-10-30.ll +++ b/test/CodeGen/ARM/2009-10-30.ll @@ -5,8 +5,8 @@ define void @f(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5, ...) { entry: ;CHECK: sub sp, sp, #4 -;CHECK: add r0, sp, #8 -;CHECK: str r0, [sp], #+4 +;CHECK: add r{{[0-9]+}}, sp, #8 +;CHECK: str r{{[0-9]+}}, [sp], #+4 ;CHECK: bx lr %ap = alloca i8*, align 4 %ap1 = bitcast i8** %ap to i8* diff --git a/test/CodeGen/ARM/aliases.ll b/test/CodeGen/ARM/aliases.ll index b2c0314..31c5007 100644 --- a/test/CodeGen/ARM/aliases.ll +++ b/test/CodeGen/ARM/aliases.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -mtriple=arm-linux-gnueabi -o %t -; RUN: grep set %t | count 5 +; RUN: grep { = } %t | count 5 ; RUN: grep globl %t | count 4 ; RUN: grep weak %t | count 1 diff --git a/test/CodeGen/ARM/align.ll b/test/CodeGen/ARM/align.ll index d73abe6a..d4d0128 100644 --- a/test/CodeGen/ARM/align.ll +++ b/test/CodeGen/ARM/align.ll @@ -1,15 +1,42 @@ -; RUN: llc < %s -march=arm | grep align.*1 | count 1 -; RUN: llc < %s -mtriple=arm-linux-gnueabi | \ -; RUN: grep align.*2 | count 2 -; RUN: llc < %s -mtriple=arm-linux-gnueabi | \ -; RUN: grep align.*3 | count 2 -; RUN: llc < %s -mtriple=arm-apple-darwin | \ -; RUN: grep align.*2 | count 4 +; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s -check-prefix=ELF +; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s -check-prefix=DARWIN @a = global i1 true +; no alignment + @b = global i8 1 +; no alignment + @c = global i16 2 +;ELF: .align 1 +;ELF: c: +;DARWIN: .align 1 +;DARWIN: _c: + @d = global i32 3 +;ELF: .align 2 +;ELF: d: +;DARWIN: .align 2 +;DARWIN: _d: + @e = global i64 4 +;ELF: .align 3 +;ELF: e +;DARWIN: .align 2 +;DARWIN: _e: + @f = global float 5.0 +;ELF: .align 2 +;ELF: f: +;DARWIN: .align 2 +;DARWIN: _f: + @g = global double 6.0 +;ELF: .align 3 +;ELF: g: +;DARWIN: .align 2 +;DARWIN: _g: + +@bar = common global [75 x i8] zeroinitializer, align 128 +;ELF: .comm bar,75,128 +;DARWIN: .comm _bar,75,7 diff --git a/test/CodeGen/ARM/arm-negative-stride.ll b/test/CodeGen/ARM/arm-negative-stride.ll index 72ec8ef..52ab871 100644 --- a/test/CodeGen/ARM/arm-negative-stride.ll +++ b/test/CodeGen/ARM/arm-negative-stride.ll @@ -1,7 +1,32 @@ ; RUN: llc < %s -march=arm | FileCheck %s +; This loop is rewritten with an indvar which counts down, which +; frees up a register from holding the trip count. + define void @test(i32* %P, i32 %A, i32 %i) nounwind { entry: +; CHECK: str r1, [{{r.*}}, +{{r.*}}, lsl #2] + icmp eq i32 %i, 0 ; <i1>:0 [#uses=1] + br i1 %0, label %return, label %bb + +bb: ; preds = %bb, %entry + %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb ] ; <i32> [#uses=2] + %i_addr.09.0 = sub i32 %i, %indvar ; <i32> [#uses=1] + %tmp2 = getelementptr i32* %P, i32 %i_addr.09.0 ; <i32*> [#uses=1] + store i32 %A, i32* %tmp2 + %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=2] + icmp eq i32 %indvar.next, %i ; <i1>:1 [#uses=1] + br i1 %1, label %return, label %bb + +return: ; preds = %bb, %entry + ret void +} + +; This loop has a non-address use of the count-up indvar, so +; it'll remain. Now the original store uses a negative-stride address. + +define void @test_with_forced_iv(i32* %P, i32 %A, i32 %i) nounwind { +entry: ; CHECK: str r1, [{{r.*}}, -{{r.*}}, lsl #2] icmp eq i32 %i, 0 ; <i1>:0 [#uses=1] br i1 %0, label %return, label %bb @@ -11,6 +36,7 @@ bb: ; preds = %bb, %entry %i_addr.09.0 = sub i32 %i, %indvar ; <i32> [#uses=1] %tmp2 = getelementptr i32* %P, i32 %i_addr.09.0 ; <i32*> [#uses=1] store i32 %A, i32* %tmp2 + store i32 %indvar, i32* null %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=2] icmp eq i32 %indvar.next, %i ; <i1>:1 [#uses=1] br i1 %1, label %return, label %bb diff --git a/test/CodeGen/ARM/iabs.ll b/test/CodeGen/ARM/iabs.ll index 1054f27..63808b2 100644 --- a/test/CodeGen/ARM/iabs.ll +++ b/test/CodeGen/ARM/iabs.ll @@ -1,5 +1,4 @@ -; RUN: llc < %s -march=arm -stats |& \ -; RUN: grep {3 .*Number of machine instrs printed} +; RUN: llc < %s -march=arm | FileCheck %s ;; Integer absolute value, should produce something as good as: ARM: ;; add r3, r0, r0, asr #31 @@ -11,5 +10,7 @@ define i32 @test(i32 %a) { %b = icmp sgt i32 %a, -1 %abs = select i1 %b, i32 %a, i32 %tmp1neg ret i32 %abs +; CHECK: add r1, r0, r0, asr #31 +; CHECK: eor r0, r1, r0, asr #31 +; CHECK: bx lr } - diff --git a/test/CodeGen/ARM/long_shift.ll b/test/CodeGen/ARM/long_shift.ll index 688b7bc..76332cc 100644 --- a/test/CodeGen/ARM/long_shift.ll +++ b/test/CodeGen/ARM/long_shift.ll @@ -23,10 +23,10 @@ define i32 @f1(i64 %x, i64 %y) { define i32 @f2(i64 %x, i64 %y) { ; CHECK: f2 ; CHECK: mov r0, r0, lsr r2 -; CHECK-NEXT: rsb r3, r2, #32 +; CHECK-NEXT: rsb r12, r2, #32 ; CHECK-NEXT: sub r2, r2, #32 ; CHECK-NEXT: cmp r2, #0 -; CHECK-NEXT: orr r0, r0, r1, lsl r3 +; CHECK-NEXT: orr r0, r0, r1, lsl r12 ; CHECK-NEXT: movge r0, r1, asr r2 %a = ashr i64 %x, %y %b = trunc i64 %a to i32 @@ -36,10 +36,10 @@ define i32 @f2(i64 %x, i64 %y) { define i32 @f3(i64 %x, i64 %y) { ; CHECK: f3 ; CHECK: mov r0, r0, lsr r2 -; CHECK-NEXT: rsb r3, r2, #32 +; CHECK-NEXT: rsb r12, r2, #32 ; CHECK-NEXT: sub r2, r2, #32 ; CHECK-NEXT: cmp r2, #0 -; CHECK-NEXT: orr r0, r0, r1, lsl r3 +; CHECK-NEXT: orr r0, r0, r1, lsl r12 ; CHECK-NEXT: movge r0, r1, lsr r2 %a = lshr i64 %x, %y %b = trunc i64 %a to i32 diff --git a/test/CodeGen/ARM/lsr-code-insertion.ll b/test/CodeGen/ARM/lsr-code-insertion.ll index 507ec2c..1bbb96d 100644 --- a/test/CodeGen/ARM/lsr-code-insertion.ll +++ b/test/CodeGen/ARM/lsr-code-insertion.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -stats |& grep {40.*Number of machine instrs printed} -; RUN: llc < %s -stats |& grep {.*Number of re-materialization} +; RUN: llc < %s -stats |& grep {39.*Number of machine instrs printed} +; RUN: llc < %s -stats |& not grep {.*Number of re-materialization} ; This test really wants to check that the resultant "cond_true" block only ; has a single store in it, and that cond_true55 only has code to materialize ; the constant and do a store. We do *not* want something like this: diff --git a/test/CodeGen/ARM/remat-2.ll b/test/CodeGen/ARM/remat-2.ll deleted file mode 100644 index 1a871d2..0000000 --- a/test/CodeGen/ARM/remat-2.ll +++ /dev/null @@ -1,65 +0,0 @@ -; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 -stats -info-output-file - | grep "Number of re-materialization" - -define arm_apcscc i32 @main(i32 %argc, i8** nocapture %argv) nounwind { -entry: - br i1 undef, label %smvp.exit, label %bb.i3 - -bb.i3: ; preds = %bb.i3, %bb134 - br i1 undef, label %smvp.exit, label %bb.i3 - -smvp.exit: ; preds = %bb.i3 - %0 = fmul double undef, 2.400000e-03 ; <double> [#uses=2] - br i1 undef, label %bb138.preheader, label %bb159 - -bb138.preheader: ; preds = %smvp.exit - br label %bb138 - -bb138: ; preds = %bb138, %bb138.preheader - br i1 undef, label %bb138, label %bb145.loopexit - -bb142: ; preds = %bb.nph218.bb.nph218.split_crit_edge, %phi0.exit - %1 = fmul double undef, -1.200000e-03 ; <double> [#uses=1] - %2 = fadd double undef, %1 ; <double> [#uses=1] - %3 = fmul double %2, undef ; <double> [#uses=1] - %4 = fsub double 0.000000e+00, %3 ; <double> [#uses=1] - br i1 %14, label %phi1.exit, label %bb.i35 - -bb.i35: ; preds = %bb142 - %5 = call arm_apcscc double @sin(double %15) nounwind readonly ; <double> [#uses=1] - %6 = fmul double %5, 0x4031740AFA84AD8A ; <double> [#uses=1] - %7 = fsub double 1.000000e+00, undef ; <double> [#uses=1] - %8 = fdiv double %7, 6.000000e-01 ; <double> [#uses=1] - br label %phi1.exit - -phi1.exit: ; preds = %bb.i35, %bb142 - %.pn = phi double [ %6, %bb.i35 ], [ 0.000000e+00, %bb142 ] ; <double> [#uses=0] - %9 = phi double [ %8, %bb.i35 ], [ 0.000000e+00, %bb142 ] ; <double> [#uses=1] - %10 = fmul double undef, %9 ; <double> [#uses=0] - br i1 %14, label %phi0.exit, label %bb.i - -bb.i: ; preds = %phi1.exit - unreachable - -phi0.exit: ; preds = %phi1.exit - %11 = fsub double %4, undef ; <double> [#uses=1] - %12 = fadd double 0.000000e+00, %11 ; <double> [#uses=1] - store double %12, double* undef, align 4 - br label %bb142 - -bb145.loopexit: ; preds = %bb138 - br i1 undef, label %bb.nph218.bb.nph218.split_crit_edge, label %bb159 - -bb.nph218.bb.nph218.split_crit_edge: ; preds = %bb145.loopexit - %13 = fmul double %0, 0x401921FB54442D18 ; <double> [#uses=1] - %14 = fcmp ugt double %0, 6.000000e-01 ; <i1> [#uses=2] - %15 = fdiv double %13, 6.000000e-01 ; <double> [#uses=1] - br label %bb142 - -bb159: ; preds = %bb145.loopexit, %smvp.exit, %bb134 - unreachable - -bb166: ; preds = %bb127 - unreachable -} - -declare arm_apcscc double @sin(double) nounwind readonly diff --git a/test/CodeGen/ARM/remat.ll b/test/CodeGen/ARM/remat.ll index 9565c8b..92c1cf1 100644 --- a/test/CodeGen/ARM/remat.ll +++ b/test/CodeGen/ARM/remat.ll @@ -1,119 +1,65 @@ -; RUN: llc < %s -mtriple=arm-apple-darwin -; RUN: llc < %s -mtriple=arm-apple-darwin -stats -info-output-file - | grep "Number of re-materialization" | grep 3 +; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 -stats -info-output-file - | grep "Number of re-materialization" - %struct.CONTENTBOX = type { i32, i32, i32, i32, i32 } - %struct.LOCBOX = type { i32, i32, i32, i32 } - %struct.SIDEBOX = type { i32, i32 } - %struct.UNCOMBOX = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } - %struct.cellbox = type { i8*, i32, i32, i32, [9 x i32], i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i32, i32, %struct.CONTENTBOX*, %struct.UNCOMBOX*, [8 x %struct.tilebox*], %struct.SIDEBOX* } - %struct.termbox = type { %struct.termbox*, i32, i32, i32, i32, i32 } - %struct.tilebox = type { %struct.tilebox*, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.termbox*, %struct.LOCBOX* } -@numcells = external global i32 ; <i32*> [#uses=1] -@cellarray = external global %struct.cellbox** ; <%struct.cellbox***> [#uses=1] -@numBinsY = external global i32 ; <i32*> [#uses=1] - -define fastcc void @fixpenal() { +define arm_apcscc i32 @main(i32 %argc, i8** nocapture %argv, double %d1, double %d2) nounwind { entry: - %tmp491 = load i32* @numcells, align 4 ; <i32> [#uses=1] - %tmp9 = load %struct.cellbox*** @cellarray, align 4 ; <%struct.cellbox**> [#uses=1] - %tmp77.i = load i32* @numBinsY, align 4 ; <i32> [#uses=2] - br label %bb490 - -bb8: ; preds = %bb490, %cond_false428 - %foo3 = phi i1 [ 0, %bb490 ], [ 1, %cond_false428 ] - br i1 %foo3, label %cond_false58.i, label %cond_false.i - -cond_false.i: ; preds = %bb8 - ret void - -cond_false58.i: ; preds = %bb8 - %highBinX.0.i = select i1 false, i32 1, i32 0 ; <i32> [#uses=2] - br i1 %foo3, label %cond_next85.i, label %cond_false76.i - -cond_false76.i: ; preds = %cond_false58.i - ret void - -cond_next85.i: ; preds = %cond_false58.i - br i1 %foo3, label %cond_next105.i, label %cond_false98.i - -cond_false98.i: ; preds = %cond_next85.i - ret void - -cond_next105.i: ; preds = %cond_next85.i - %tmp108.i = icmp eq i32 1, %highBinX.0.i ; <i1> [#uses=1] - %tmp115.i = icmp eq i32 1, %tmp77.i ; <i1> [#uses=1] - %bothcond.i = and i1 %tmp115.i, %tmp108.i ; <i1> [#uses=1] - %storemerge.i = select i1 %bothcond.i, i32 1, i32 0 ; <i32> [#uses=2] - br i1 %bothcond.i, label %whoOverlaps.exit, label %bb503.preheader.i - -bb503.preheader.i: ; preds = %bb513.i, %cond_next105.i - %i.022.0.i = phi i32 [ %tmp512.i, %bb513.i ], [ 0, %cond_next105.i ] ; <i32> [#uses=2] - %tmp165.i = getelementptr i32*** null, i32 %i.022.0.i ; <i32***> [#uses=0] - br label %bb503.i - -bb137.i: ; preds = %bb503.i - br i1 %tmp506.i, label %bb162.i, label %bb148.i - -bb148.i: ; preds = %bb137.i - ret void - -bb162.i: ; preds = %bb137.i - %tmp49435.i = load i32* null ; <i32> [#uses=1] - br label %bb170.i - -bb170.i: ; preds = %bb491.i, %bb162.i - %indvar.i = phi i32 [ %k.032.0.i, %bb491.i ], [ 0, %bb162.i ] ; <i32> [#uses=2] - %k.032.0.i = add i32 %indvar.i, 1 ; <i32> [#uses=2] - %tmp173.i = getelementptr i32* null, i32 %k.032.0.i ; <i32*> [#uses=1] - %tmp174.i = load i32* %tmp173.i ; <i32> [#uses=4] - %tmp177.i = icmp eq i32 %tmp174.i, %cell.1 ; <i1> [#uses=1] - %tmp184.i = icmp sgt i32 %tmp174.i, %tmp491 ; <i1> [#uses=1] - %bothcond = or i1 %tmp177.i, %tmp184.i ; <i1> [#uses=1] - br i1 %bothcond, label %bb491.i, label %cond_next188.i - -cond_next188.i: ; preds = %bb170.i - %tmp191.i = getelementptr %struct.cellbox** %tmp9, i32 %tmp174.i ; <%struct.cellbox**> [#uses=1] - %tmp192.i = load %struct.cellbox** %tmp191.i ; <%struct.cellbox*> [#uses=1] - %tmp195.i = icmp eq i32 %tmp174.i, 0 ; <i1> [#uses=1] - br i1 %tmp195.i, label %bb491.i, label %cond_true198.i - -cond_true198.i: ; preds = %cond_next188.i - %tmp210.i = getelementptr %struct.cellbox* %tmp192.i, i32 0, i32 3 ; <i32*> [#uses=0] - ret void - -bb491.i: ; preds = %cond_next188.i, %bb170.i - %tmp490.i = add i32 %indvar.i, 2 ; <i32> [#uses=1] - %tmp496.i = icmp slt i32 %tmp49435.i, %tmp490.i ; <i1> [#uses=1] - br i1 %tmp496.i, label %bb500.i, label %bb170.i - -bb500.i: ; preds = %bb491.i - %indvar.next82.i = add i32 %j.0.i, 1 ; <i32> [#uses=1] - br label %bb503.i - -bb503.i: ; preds = %bb500.i, %bb503.preheader.i - %j.0.i = phi i32 [ 0, %bb503.preheader.i ], [ %indvar.next82.i, %bb500.i ] ; <i32> [#uses=2] - %tmp506.i = icmp sgt i32 %j.0.i, %tmp77.i ; <i1> [#uses=1] - br i1 %tmp506.i, label %bb513.i, label %bb137.i - -bb513.i: ; preds = %bb503.i - %tmp512.i = add i32 %i.022.0.i, 1 ; <i32> [#uses=2] - %tmp516.i = icmp sgt i32 %tmp512.i, %highBinX.0.i ; <i1> [#uses=1] - br i1 %tmp516.i, label %whoOverlaps.exit, label %bb503.preheader.i - -whoOverlaps.exit: ; preds = %bb513.i, %cond_next105.i - %foo = phi i1 [ 1, %bb513.i], [0, %cond_next105.i] - br i1 %foo, label %cond_false428, label %bb490 - -cond_false428: ; preds = %whoOverlaps.exit - br i1 %foo, label %bb497, label %bb8 - -bb490: ; preds = %whoOverlaps.exit, %entry - %binY.tmp.2 = phi i32 [ 0, %entry ], [ %storemerge.i, %whoOverlaps.exit ] ; <i32> [#uses=1] - %cell.1 = phi i32 [ 1, %entry ], [ 0, %whoOverlaps.exit ] ; <i32> [#uses=1] - %foo2 = phi i1 [ 1, %entry], [0, %whoOverlaps.exit] - br i1 %foo2, label %bb497, label %bb8 - -bb497: ; preds = %bb490, %cond_false428 - %binY.tmp.3 = phi i32 [ %binY.tmp.2, %bb490 ], [ %storemerge.i, %cond_false428 ] ; <i32> [#uses=0] - ret void + br i1 undef, label %smvp.exit, label %bb.i3 + +bb.i3: ; preds = %bb.i3, %bb134 + br i1 undef, label %smvp.exit, label %bb.i3 + +smvp.exit: ; preds = %bb.i3 + %0 = fmul double %d1, 2.400000e-03 ; <double> [#uses=2] + br i1 undef, label %bb138.preheader, label %bb159 + +bb138.preheader: ; preds = %smvp.exit + br label %bb138 + +bb138: ; preds = %bb138, %bb138.preheader + br i1 undef, label %bb138, label %bb145.loopexit + +bb142: ; preds = %bb.nph218.bb.nph218.split_crit_edge, %phi0.exit + %1 = fmul double %d1, -1.200000e-03 ; <double> [#uses=1] + %2 = fadd double %d2, %1 ; <double> [#uses=1] + %3 = fmul double %2, %d2 ; <double> [#uses=1] + %4 = fsub double 0.000000e+00, %3 ; <double> [#uses=1] + br i1 %14, label %phi1.exit, label %bb.i35 + +bb.i35: ; preds = %bb142 + %5 = call arm_apcscc double @sin(double %15) nounwind readonly ; <double> [#uses=1] + %6 = fmul double %5, 0x4031740AFA84AD8A ; <double> [#uses=1] + %7 = fsub double 1.000000e+00, undef ; <double> [#uses=1] + %8 = fdiv double %7, 6.000000e-01 ; <double> [#uses=1] + br label %phi1.exit + +phi1.exit: ; preds = %bb.i35, %bb142 + %.pn = phi double [ %6, %bb.i35 ], [ 0.000000e+00, %bb142 ] ; <double> [#uses=1] + %9 = phi double [ %8, %bb.i35 ], [ 0.000000e+00, %bb142 ] ; <double> [#uses=1] + %10 = fmul double %.pn, %9 ; <double> [#uses=1] + br i1 %14, label %phi0.exit, label %bb.i + +bb.i: ; preds = %phi1.exit + unreachable + +phi0.exit: ; preds = %phi1.exit + %11 = fsub double %4, %10 ; <double> [#uses=1] + %12 = fadd double 0.000000e+00, %11 ; <double> [#uses=1] + store double %12, double* undef, align 4 + br label %bb142 + +bb145.loopexit: ; preds = %bb138 + br i1 undef, label %bb.nph218.bb.nph218.split_crit_edge, label %bb159 + +bb.nph218.bb.nph218.split_crit_edge: ; preds = %bb145.loopexit + %13 = fmul double %0, 0x401921FB54442D18 ; <double> [#uses=1] + %14 = fcmp ugt double %0, 6.000000e-01 ; <i1> [#uses=2] + %15 = fdiv double %13, 6.000000e-01 ; <double> [#uses=1] + br label %bb142 + +bb159: ; preds = %bb145.loopexit, %smvp.exit, %bb134 + unreachable + +bb166: ; preds = %bb127 + unreachable } + +declare arm_apcscc double @sin(double) nounwind readonly diff --git a/test/CodeGen/ARM/unaligned_load_store.ll b/test/CodeGen/ARM/unaligned_load_store.ll index fcaa2b3..a4494f3 100644 --- a/test/CodeGen/ARM/unaligned_load_store.ll +++ b/test/CodeGen/ARM/unaligned_load_store.ll @@ -1,6 +1,6 @@ ; RUN: llc < %s -march=arm | FileCheck %s -check-prefix=GENERIC ; RUN: llc < %s -mtriple=armv6-apple-darwin | FileCheck %s -check-prefix=DARWIN_V6 -; RUN: llc < %s -march=arm -mattr=+v7a | FileCheck %s -check-prefix=V7 +; RUN: llc < %s -mtriple=armv6-linux | FileCheck %s -check-prefix=GENERIC ; rdar://7113725 @@ -20,9 +20,6 @@ entry: ; DARWIN_V6: ldr r1 ; DARWIN_V6: str r1 -; V7: t: -; V7: ldr r1 -; V7: str r1 %__src1.i = bitcast i8* %b to i32* ; <i32*> [#uses=1] %__dest2.i = bitcast i8* %a to i32* ; <i32*> [#uses=1] %tmp.i = load i32* %__src1.i, align 1 ; <i32> [#uses=1] diff --git a/test/CodeGen/Generic/2006-04-11-vecload.ll b/test/CodeGen/Generic/2006-04-11-vecload.ll deleted file mode 100644 index a68ed83..0000000 --- a/test/CodeGen/Generic/2006-04-11-vecload.ll +++ /dev/null @@ -1,12 +0,0 @@ -; RUN: llc < %s -march=x86 -mcpu=yonah - -; The vload was getting memoized to the previous scalar load! - -define void @VertexProgram2() { - %xFloat0.688 = load float* null ; <float> [#uses=0] - %loadVector37.712 = load <4 x float>* null ; <<4 x float>> [#uses=1] - %inFloat3.713 = insertelement <4 x float> %loadVector37.712, float 0.000000e+00, i32 3 ; <<4 x float>> [#uses=1] - store <4 x float> %inFloat3.713, <4 x float>* null - unreachable -} - diff --git a/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll b/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll deleted file mode 100644 index ad3e49f..0000000 --- a/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll +++ /dev/null @@ -1,11 +0,0 @@ -; RUN: llc < %s -march=x86 | not grep adc -; PR987 - -declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) - -define void @foo(i64 %a) { - %b = add i64 %a, 1 ; <i64> [#uses=1] - call void @llvm.memcpy.i64( i8* null, i8* null, i64 %b, i32 1 ) - ret void -} - diff --git a/test/CodeGen/Generic/2007-04-14-BitTestsBadMask.ll b/test/CodeGen/Generic/2007-04-14-BitTestsBadMask.ll deleted file mode 100644 index 00337b9..0000000 --- a/test/CodeGen/Generic/2007-04-14-BitTestsBadMask.ll +++ /dev/null @@ -1,160 +0,0 @@ -; RUN: llc < %s -march=x86 | grep 8388635 -; RUN: llc < %s -march=x86-64 | grep 4294981120 -; PR 1325 - -; ModuleID = 'bugpoint.test.bc' -target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" -target triple = "powerpc-apple-darwin8.8.0" -;target triple = "i686-linux-gnu" - %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } - %struct.__sFILEX = type opaque - %struct.__sbuf = type { i8*, i32 } -@PL_rsfp = external global %struct.FILE* ; <%struct.FILE**> [#uses=1] -@PL_bufend = external global i8* ; <i8**> [#uses=1] -@PL_in_eval = external global i32 ; <i32*> [#uses=1] - -declare fastcc void @incline(i8*) - -define i16 @Perl_skipspace_bb60(i8* %s, i8** %s_addr.4.out) { -newFuncRoot: - %tmp138.loc = alloca i8* ; <i8**> [#uses=2] - %s_addr.4.loc = alloca i8* ; <i8**> [#uses=2] - %tmp274.loc = alloca i8* ; <i8**> [#uses=2] - br label %bb60 - -cond_next154.UnifiedReturnBlock_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 0 - -cond_next161.UnifiedReturnBlock_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 1 - -cond_next167.UnifiedReturnBlock_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 2 - -cond_false29.i.cond_true190_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 3 - -cond_next.i.cond_true190_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 4 - -cond_true19.i.cond_true190_crit_edge.exitStub: ; preds = %codeRepl - store i8* %s_addr.4.reload, i8** %s_addr.4.out - ret i16 5 - -bb60: ; preds = %bb60.backedge, %newFuncRoot - %s_addr.2 = phi i8* [ %s, %newFuncRoot ], [ %s_addr.2.be, %bb60.backedge ] ; <i8*> [#uses=3] - %tmp61 = load i8** @PL_bufend ; <i8*> [#uses=1] - %tmp63 = icmp ult i8* %s_addr.2, %tmp61 ; <i1> [#uses=1] - br i1 %tmp63, label %bb60.cond_next67_crit_edge, label %bb60.bb101_crit_edge - -bb37: ; preds = %cond_next67.bb37_crit_edge5, %cond_next67.bb37_crit_edge4, %cond_next67.bb37_crit_edge3, %cond_next67.bb37_crit_edge2, %cond_next67.bb37_crit_edge - %tmp40 = icmp eq i8 %tmp69, 10 ; <i1> [#uses=1] - %tmp43 = getelementptr i8* %s_addr.27.2, i32 1 ; <i8*> [#uses=5] - br i1 %tmp40, label %cond_true45, label %bb37.bb60_crit_edge - -cond_true45: ; preds = %bb37 - %tmp46 = volatile load i32* @PL_in_eval ; <i32> [#uses=1] - %tmp47 = icmp eq i32 %tmp46, 0 ; <i1> [#uses=1] - br i1 %tmp47, label %cond_true45.bb60_crit_edge, label %cond_true50 - -cond_true50: ; preds = %cond_true45 - %tmp51 = volatile load %struct.FILE** @PL_rsfp ; <%struct.FILE*> [#uses=1] - %tmp52 = icmp eq %struct.FILE* %tmp51, null ; <i1> [#uses=1] - br i1 %tmp52, label %cond_true55, label %cond_true50.bb60_crit_edge - -cond_true55: ; preds = %cond_true50 - tail call fastcc void @incline( i8* %tmp43 ) - br label %bb60.backedge - -cond_next67: ; preds = %Perl_newSV.exit.cond_next67_crit_edge, %cond_true148.cond_next67_crit_edge, %bb60.cond_next67_crit_edge - %s_addr.27.2 = phi i8* [ %s_addr.2, %bb60.cond_next67_crit_edge ], [ %tmp274.reload, %Perl_newSV.exit.cond_next67_crit_edge ], [ %tmp138.reload, %cond_true148.cond_next67_crit_edge ] ; <i8*> [#uses=3] - %tmp69 = load i8* %s_addr.27.2 ; <i8> [#uses=2] - switch i8 %tmp69, label %cond_next67.bb101_crit_edge [ - i8 32, label %cond_next67.bb37_crit_edge - i8 9, label %cond_next67.bb37_crit_edge2 - i8 10, label %cond_next67.bb37_crit_edge3 - i8 13, label %cond_next67.bb37_crit_edge4 - i8 12, label %cond_next67.bb37_crit_edge5 - ] - -codeRepl: ; preds = %bb101.preheader - %targetBlock = call i16 @Perl_skipspace_bb60_bb101( i8* %s_addr.27.3.ph, i8** %tmp274.loc, i8** %s_addr.4.loc, i8** %tmp138.loc ) ; <i16> [#uses=1] - %tmp274.reload = load i8** %tmp274.loc ; <i8*> [#uses=4] - %s_addr.4.reload = load i8** %s_addr.4.loc ; <i8*> [#uses=6] - %tmp138.reload = load i8** %tmp138.loc ; <i8*> [#uses=1] - switch i16 %targetBlock, label %cond_true19.i.cond_true190_crit_edge.exitStub [ - i16 0, label %cond_next271.bb60_crit_edge - i16 1, label %cond_true290.bb60_crit_edge - i16 2, label %cond_true295.bb60_crit_edge - i16 3, label %Perl_newSV.exit.cond_next67_crit_edge - i16 4, label %cond_true148.cond_next67_crit_edge - i16 5, label %cond_next154.UnifiedReturnBlock_crit_edge.exitStub - i16 6, label %cond_next161.UnifiedReturnBlock_crit_edge.exitStub - i16 7, label %cond_next167.UnifiedReturnBlock_crit_edge.exitStub - i16 8, label %cond_false29.i.cond_true190_crit_edge.exitStub - i16 9, label %cond_next.i.cond_true190_crit_edge.exitStub - ] - -bb37.bb60_crit_edge: ; preds = %bb37 - br label %bb60.backedge - -cond_true45.bb60_crit_edge: ; preds = %cond_true45 - br label %bb60.backedge - -cond_true50.bb60_crit_edge: ; preds = %cond_true50 - br label %bb60.backedge - -bb60.cond_next67_crit_edge: ; preds = %bb60 - br label %cond_next67 - -bb60.bb101_crit_edge: ; preds = %bb60 - br label %bb101.preheader - -cond_next67.bb101_crit_edge: ; preds = %cond_next67 - br label %bb101.preheader - -cond_next67.bb37_crit_edge: ; preds = %cond_next67 - br label %bb37 - -cond_next67.bb37_crit_edge2: ; preds = %cond_next67 - br label %bb37 - -cond_next67.bb37_crit_edge3: ; preds = %cond_next67 - br label %bb37 - -cond_next67.bb37_crit_edge4: ; preds = %cond_next67 - br label %bb37 - -cond_next67.bb37_crit_edge5: ; preds = %cond_next67 - br label %bb37 - -cond_true148.cond_next67_crit_edge: ; preds = %codeRepl - br label %cond_next67 - -cond_next271.bb60_crit_edge: ; preds = %codeRepl - br label %bb60.backedge - -cond_true290.bb60_crit_edge: ; preds = %codeRepl - br label %bb60.backedge - -cond_true295.bb60_crit_edge: ; preds = %codeRepl - br label %bb60.backedge - -Perl_newSV.exit.cond_next67_crit_edge: ; preds = %codeRepl - br label %cond_next67 - -bb101.preheader: ; preds = %cond_next67.bb101_crit_edge, %bb60.bb101_crit_edge - %s_addr.27.3.ph = phi i8* [ %s_addr.27.2, %cond_next67.bb101_crit_edge ], [ %s_addr.2, %bb60.bb101_crit_edge ] ; <i8*> [#uses=1] - br label %codeRepl - -bb60.backedge: ; preds = %cond_true295.bb60_crit_edge, %cond_true290.bb60_crit_edge, %cond_next271.bb60_crit_edge, %cond_true50.bb60_crit_edge, %cond_true45.bb60_crit_edge, %bb37.bb60_crit_edge, %cond_true55 - %s_addr.2.be = phi i8* [ %tmp43, %cond_true55 ], [ %tmp43, %bb37.bb60_crit_edge ], [ %tmp43, %cond_true45.bb60_crit_edge ], [ %tmp43, %cond_true50.bb60_crit_edge ], [ %tmp274.reload, %cond_next271.bb60_crit_edge ], [ %tmp274.reload, %cond_true290.bb60_crit_edge ], [ %tmp274.reload, %cond_true295.bb60_crit_edge ] ; <i8*> [#uses=1] - br label %bb60 -} - -declare i16 @Perl_skipspace_bb60_bb101(i8*, i8**, i8**, i8**) diff --git a/test/CodeGen/Generic/2007-04-27-BitTestsBadMask.ll b/test/CodeGen/Generic/2007-04-27-BitTestsBadMask.ll deleted file mode 100644 index 3e8857f..0000000 --- a/test/CodeGen/Generic/2007-04-27-BitTestsBadMask.ll +++ /dev/null @@ -1,18 +0,0 @@ -; RUN: llc < %s -march=x86 | grep je | count 3 -; RUN: llc < %s -march=x86-64 | grep 4297064449 -; PR 1325+ - -define i32 @foo(i8 %bar) { -entry: - switch i8 %bar, label %bb1203 [ - i8 117, label %bb1204 - i8 85, label %bb1204 - i8 106, label %bb1204 - ] - -bb1203: ; preds = %entry - ret i32 1 - -bb1204: ; preds = %entry, %entry, %entry - ret i32 2 -} diff --git a/test/CodeGen/Generic/2007-05-03-EHTypeInfo.ll b/test/CodeGen/Generic/2007-05-03-EHTypeInfo.ll index 533aa4a..bb774b4 100644 --- a/test/CodeGen/Generic/2007-05-03-EHTypeInfo.ll +++ b/test/CodeGen/Generic/2007-05-03-EHTypeInfo.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -enable-eh -march=x86 +; RUN: llc < %s -enable-eh %struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* } @program_error = external global %struct.exception ; <%struct.exception*> [#uses=1] diff --git a/test/CodeGen/Generic/2007-05-05-Personality.ll b/test/CodeGen/Generic/2007-05-05-Personality.ll index 2749326..c92783e 100644 --- a/test/CodeGen/Generic/2007-05-05-Personality.ll +++ b/test/CodeGen/Generic/2007-05-05-Personality.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -mtriple=i686-pc-linux-gnu -enable-eh -o - | grep zPLR +; RUN: llc < %s -mtriple=i686-pc-linux-gnu -enable-eh -o - | grep zPL @error = external global i8 ; <i8*> [#uses=2] diff --git a/test/CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.ll b/test/CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.ll deleted file mode 100644 index 1519fe6..0000000 --- a/test/CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.ll +++ /dev/null @@ -1,2870 +0,0 @@ -; RUN: llc < %s -march=x86 -enable-eh -asm-verbose -o - | FileCheck %s -; PR1422 -; PR1508 - -target triple = "i686-pc-linux-gnu" - %struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* } - %struct.string___XUB = type { i32, i32 } - %struct.string___XUP = type { i8*, %struct.string___XUB* } - %struct.system__secondary_stack__mark_id = type { i8*, i32 } -@weekS.154 = internal constant [28 x i8] c"SSUNSMONSTUESWEDSTHUSFRISSAT" ; <[28 x i8]*> [#uses=1] -@weekN.179 = internal constant [8 x i8] c"\01\05\09\0D\11\15\19\1D" ; <[8 x i8]*> [#uses=1] -@C.28.862 = internal constant %struct.string___XUB { i32 1, i32 85 } ; <%struct.string___XUB*> [#uses=1] -@C.29.865 = internal constant %struct.string___XUB { i32 1, i32 7 } ; <%struct.string___XUB*> [#uses=1] -@C.30.904 = internal constant %struct.string___XUB { i32 1, i32 30 } ; <%struct.string___XUB*> [#uses=1] -@C.32.910 = internal constant %struct.string___XUB { i32 1, i32 28 } ; <%struct.string___XUB*> [#uses=1] -@C.35.915 = internal constant %struct.string___XUB { i32 1, i32 24 } ; <%struct.string___XUB*> [#uses=1] -@C.36.923 = internal constant %struct.string___XUB { i32 1, i32 29 } ; <%struct.string___XUB*> [#uses=1] -@C.98.1466 = internal constant %struct.string___XUB { i32 1, i32 31 } ; <%struct.string___XUB*> [#uses=1] -@C.101.1473 = internal constant %struct.string___XUB { i32 1, i32 46 } ; <%struct.string___XUB*> [#uses=1] -@C.104.1478 = internal constant %struct.string___XUB { i32 1, i32 25 } ; <%struct.string___XUB*> [#uses=1] -@C.124.1606 = internal constant %struct.string___XUB { i32 1, i32 18 } ; <%struct.string___XUB*> [#uses=1] -@C.143.1720 = internal constant [2 x i32] [ i32 1, i32 2 ] ; <[2 x i32]*> [#uses=1] -@C.146.1725 = internal constant %struct.string___XUB { i32 1, i32 37 } ; <%struct.string___XUB*> [#uses=1] -@C.170.1990 = internal constant %struct.string___XUB { i32 1, i32 19 } ; <%struct.string___XUB*> [#uses=1] -@C.178.2066 = internal constant %struct.string___XUB { i32 1, i32 27 } ; <%struct.string___XUB*> [#uses=1] -@.str = internal constant [13 x i8] c"c36104b.adb\00\00" ; <[13 x i8]*> [#uses=1] -@.str1 = internal constant [85 x i8] c"CONSTRAINT_ERROR IS RAISED OR NOT IN DYNAMIC DISCRETE_RANGES WITH EXPLICIT TYPE_MARKS" ; <[85 x i8]*> [#uses=1] -@.str2 = internal constant [7 x i8] c"C36104B" ; <[7 x i8]*> [#uses=1] -@constraint_error = external global %struct.exception ; <%struct.exception*> [#uses=18] -@__gnat_others_value = external constant i32 ; <i32*> [#uses=37] -@.str3 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 1 " ; <[30 x i8]*> [#uses=1] -@system__soft_links__abort_undefer = external global void ()* ; <void ()**> [#uses=30] -@.str4 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 1" ; <[28 x i8]*> [#uses=1] -@.str5 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 1" ; <[24 x i8]*> [#uses=1] -@.str6 = internal constant [29 x i8] c"CONSTRAINT_ERROR NOT RAISED 3" ; <[29 x i8]*> [#uses=1] -@.str7 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 3" ; <[24 x i8]*> [#uses=1] -@.str10 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 4" ; <[24 x i8]*> [#uses=1] -@.str11 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 7 " ; <[30 x i8]*> [#uses=1] -@.str12 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 7" ; <[28 x i8]*> [#uses=1] -@.str13 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 7" ; <[24 x i8]*> [#uses=1] -@.str14 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 8 " ; <[30 x i8]*> [#uses=1] -@.str15 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 8" ; <[28 x i8]*> [#uses=1] -@.str16 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 8" ; <[24 x i8]*> [#uses=1] -@.str17 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 9 " ; <[30 x i8]*> [#uses=1] -@.str18 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 9" ; <[24 x i8]*> [#uses=1] -@.str19 = internal constant [31 x i8] c"CONSTRAINT_ERROR NOT RAISED 10 " ; <[31 x i8]*> [#uses=1] -@.str20 = internal constant [46 x i8] c"DID NOT RAISE CONSTRAINT_ERROR AT PROPER PLACE" ; <[46 x i8]*> [#uses=1] -@.str21 = internal constant [25 x i8] c"WRONG EXCEPTION RAISED 10" ; <[25 x i8]*> [#uses=1] -@.str22 = internal constant [31 x i8] c"CONSTRAINT_ERROR NOT RAISED 11 " ; <[31 x i8]*> [#uses=1] -@.str23 = internal constant [25 x i8] c"WRONG EXCEPTION RAISED 11" ; <[25 x i8]*> [#uses=1] -@.str24 = internal constant [30 x i8] c"'FIRST OF NULL ARRAY INCORRECT" ; <[30 x i8]*> [#uses=1] -@.str25 = internal constant [18 x i8] c"EXCEPTION RAISED 1" ; <[18 x i8]*> [#uses=1] -@.str26 = internal constant [18 x i8] c"EXCEPTION RAISED 3" ; <[18 x i8]*> [#uses=1] -@.str27 = internal constant [31 x i8] c"'LENGTH OF NULL ARRAY INCORRECT" ; <[31 x i8]*> [#uses=1] -@.str28 = internal constant [18 x i8] c"EXCEPTION RAISED 5" ; <[18 x i8]*> [#uses=1] -@.str29 = internal constant [37 x i8] c"EVALUATION OF EXPRESSION IS INCORRECT" ; <[37 x i8]*> [#uses=1] -@.str30 = internal constant [18 x i8] c"EXCEPTION RAISED 7" ; <[18 x i8]*> [#uses=1] -@.str32 = internal constant [18 x i8] c"EXCEPTION RAISED 9" ; <[18 x i8]*> [#uses=1] -@.str33 = internal constant [19 x i8] c"EXCEPTION RAISED 10" ; <[19 x i8]*> [#uses=1] -@.str34 = internal constant [19 x i8] c"EXCEPTION RAISED 12" ; <[19 x i8]*> [#uses=1] -@.str35 = internal constant [27 x i8] c"INCORRECT 'IN' EVALUATION 1" ; <[27 x i8]*> [#uses=1] -@.str36 = internal constant [27 x i8] c"INCORRECT 'IN' EVALUATION 2" ; <[27 x i8]*> [#uses=1] -@.str37 = internal constant [29 x i8] c"INCORRECT 'NOT IN' EVALUATION" ; <[29 x i8]*> [#uses=1] -@.str38 = internal constant [19 x i8] c"EXCEPTION RAISED 52" ; <[19 x i8]*> [#uses=1] - -define void @_ada_c36104b() { -entry: - %tmp9 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp12 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp15 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp31 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp34 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp37 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp46 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp49 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp52 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp55 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp58 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp61 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp63 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp66 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp69 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp72 = alloca %struct.system__secondary_stack__mark_id, align 8 ; <%struct.system__secondary_stack__mark_id*> [#uses=3] - %tmp75 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp78 = alloca %struct.string___XUP, align 8 ; <%struct.string___XUP*> [#uses=3] - %tmp123 = call i32 @report__ident_int( i32 0 ) ; <i32> [#uses=3] - %tmp125 = icmp ugt i32 %tmp123, 6 ; <i1> [#uses=1] - br i1 %tmp125, label %cond_true, label %cond_next136 - -cond_true: ; preds = %entry - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 50 ) - unreachable - -cond_next136: ; preds = %entry - %tmp137138 = trunc i32 %tmp123 to i8 ; <i8> [#uses=21] - %tmp139 = icmp ugt i8 %tmp137138, 6 ; <i1> [#uses=1] - br i1 %tmp139, label %bb, label %bb144 - -bb: ; preds = %cond_next136 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 50 ) - unreachable - -bb144: ; preds = %cond_next136 - %tmp150 = call i32 @report__ident_int( i32 1 ) ; <i32> [#uses=4] - %tmp154 = icmp ugt i32 %tmp150, 6 ; <i1> [#uses=1] - br i1 %tmp154, label %cond_true157, label %cond_next169 - -cond_true157: ; preds = %bb144 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 51 ) - unreachable - -cond_next169: ; preds = %bb144 - %tmp170171 = trunc i32 %tmp150 to i8 ; <i8> [#uses=34] - %tmp172 = icmp ugt i8 %tmp170171, 6 ; <i1> [#uses=1] - br i1 %tmp172, label %bb175, label %bb178 - -bb175: ; preds = %cond_next169 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 51 ) - unreachable - -bb178: ; preds = %cond_next169 - %tmp184 = call i32 @report__ident_int( i32 2 ) ; <i32> [#uses=3] - %tmp188 = icmp ugt i32 %tmp184, 6 ; <i1> [#uses=1] - br i1 %tmp188, label %cond_true191, label %cond_next203 - -cond_true191: ; preds = %bb178 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 52 ) - unreachable - -cond_next203: ; preds = %bb178 - %tmp204205 = trunc i32 %tmp184 to i8 ; <i8> [#uses=30] - %tmp206 = icmp ugt i8 %tmp204205, 6 ; <i1> [#uses=3] - br i1 %tmp206, label %bb209, label %bb212 - -bb209: ; preds = %cond_next203 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 52 ) - unreachable - -bb212: ; preds = %cond_next203 - %tmp218 = call i32 @report__ident_int( i32 3 ) ; <i32> [#uses=4] - %tmp222 = icmp ugt i32 %tmp218, 6 ; <i1> [#uses=1] - br i1 %tmp222, label %cond_true225, label %cond_next237 - -cond_true225: ; preds = %bb212 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 53 ) - unreachable - -cond_next237: ; preds = %bb212 - %tmp238239 = trunc i32 %tmp218 to i8 ; <i8> [#uses=34] - %tmp240 = icmp ugt i8 %tmp238239, 6 ; <i1> [#uses=2] - br i1 %tmp240, label %bb243, label %bb246 - -bb243: ; preds = %cond_next237 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 53 ) - unreachable - -bb246: ; preds = %cond_next237 - %tmp252 = call i32 @report__ident_int( i32 4 ) ; <i32> [#uses=3] - %tmp256 = icmp ugt i32 %tmp252, 6 ; <i1> [#uses=1] - br i1 %tmp256, label %cond_true259, label %cond_next271 - -cond_true259: ; preds = %bb246 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 54 ) - unreachable - -cond_next271: ; preds = %bb246 - %tmp272273 = trunc i32 %tmp252 to i8 ; <i8> [#uses=27] - %tmp274 = icmp ugt i8 %tmp272273, 6 ; <i1> [#uses=4] - br i1 %tmp274, label %bb277, label %bb280 - -bb277: ; preds = %cond_next271 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 54 ) - unreachable - -bb280: ; preds = %cond_next271 - %tmp286 = call i32 @report__ident_int( i32 5 ) ; <i32> [#uses=3] - %tmp290 = icmp ugt i32 %tmp286, 6 ; <i1> [#uses=1] - br i1 %tmp290, label %cond_true293, label %cond_next305 - -cond_true293: ; preds = %bb280 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 55 ) - unreachable - -cond_next305: ; preds = %bb280 - %tmp306307 = trunc i32 %tmp286 to i8 ; <i8> [#uses=16] - %tmp308 = icmp ugt i8 %tmp306307, 6 ; <i1> [#uses=1] - br i1 %tmp308, label %bb311, label %bb314 - -bb311: ; preds = %cond_next305 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 55 ) - unreachable - -bb314: ; preds = %cond_next305 - %tmp320 = call i32 @report__ident_int( i32 6 ) ; <i32> [#uses=2] - %tmp324 = icmp ugt i32 %tmp320, 6 ; <i1> [#uses=1] - br i1 %tmp324, label %cond_true327, label %cond_next339 - -cond_true327: ; preds = %bb314 - call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 56 ) - unreachable - -cond_next339: ; preds = %bb314 - %tmp340341 = trunc i32 %tmp320 to i8 ; <i8> [#uses=4] - %tmp342 = icmp ugt i8 %tmp340341, 6 ; <i1> [#uses=1] - br i1 %tmp342, label %bb345, label %bb348 - -bb345: ; preds = %cond_next339 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 56 ) - unreachable - -bb348: ; preds = %cond_next339 - %tmp364 = icmp ult i8 %tmp272273, %tmp204205 ; <i1> [#uses=2] - br i1 %tmp364, label %cond_next383, label %cond_true367 - -cond_true367: ; preds = %bb348 - %tmp370 = icmp ult i8 %tmp204205, %tmp170171 ; <i1> [#uses=1] - %tmp374 = icmp ugt i8 %tmp272273, %tmp306307 ; <i1> [#uses=1] - %tmp378 = or i1 %tmp374, %tmp370 ; <i1> [#uses=1] - br i1 %tmp378, label %cond_true381, label %cond_next383 - -cond_true381: ; preds = %cond_true367 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 59 ) - unreachable - -cond_next383: ; preds = %cond_true367, %bb348 - %tmp384 = call i32 @report__ident_int( i32 -5 ) ; <i32> [#uses=15] - %tmp388 = add i32 %tmp384, 10 ; <i32> [#uses=1] - %tmp389 = icmp ugt i32 %tmp388, 20 ; <i1> [#uses=1] - br i1 %tmp389, label %cond_true392, label %cond_next393 - -cond_true392: ; preds = %cond_next383 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 63 ) - unreachable - -cond_next393: ; preds = %cond_next383 - %tmp394 = call i32 @report__ident_int( i32 5 ) ; <i32> [#uses=18] - %tmp398 = add i32 %tmp394, 10 ; <i32> [#uses=1] - %tmp399 = icmp ugt i32 %tmp398, 20 ; <i1> [#uses=1] - br i1 %tmp399, label %cond_true402, label %cond_next403 - -cond_true402: ; preds = %cond_next393 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 64 ) - unreachable - -cond_next403: ; preds = %cond_next393 - %tmp416 = icmp slt i32 %tmp394, %tmp384 ; <i1> [#uses=1] - br i1 %tmp416, label %cond_next437, label %cond_true419 - -cond_true419: ; preds = %cond_next403 - %tmp423 = icmp slt i32 %tmp384, -10 ; <i1> [#uses=1] - %tmp428 = icmp sgt i32 %tmp394, 10 ; <i1> [#uses=1] - %tmp432 = or i1 %tmp428, %tmp423 ; <i1> [#uses=1] - br i1 %tmp432, label %cond_true435, label %cond_next437 - -cond_true435: ; preds = %cond_true419 - call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 63 ) - unreachable - -cond_next437: ; preds = %cond_true419, %cond_next403 - call void @report__test( i64 or (i64 zext (i32 ptrtoint ([7 x i8]* @.str2 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.29.865 to i32) to i64), i64 32)), i64 or (i64 zext (i32 ptrtoint ([85 x i8]* @.str1 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.28.862 to i32) to i64), i64 32)) ) - %tmp453 = icmp sgt i32 %tmp384, 0 ; <i1> [#uses=1] - %tmp458 = icmp slt i32 %tmp394, 6 ; <i1> [#uses=1] - %tmp462 = or i1 %tmp458, %tmp453 ; <i1> [#uses=3] - br i1 %tmp462, label %cond_true465, label %cond_next467 - -cond_true465: ; preds = %cond_next437 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 80 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind - -unwind: ; preds = %cleanup798, %unwind783, %cond_true465 - %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid8065921 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp8085923 = icmp eq i32 %eh_select, %eh_typeid8065921 ; <i1> [#uses=1] - br i1 %tmp8085923, label %eh_then809, label %eh_else823 - -cond_next467: ; preds = %cond_next437 - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp9 sret ) - to label %invcont472 unwind label %unwind468 - -unwind468: ; preds = %cleanup, %unwind480, %cond_next467 - %eh_ptr469 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select471 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr469, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid5928 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp7815929 = icmp eq i32 %eh_select471, %eh_typeid5928 ; <i1> [#uses=1] - br i1 %tmp7815929, label %eh_then, label %cleanup805 - -invcont472: ; preds = %cond_next467 - %tmp475 = getelementptr %struct.system__secondary_stack__mark_id* %tmp9, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp476 = load i8** %tmp475 ; <i8*> [#uses=2] - %tmp478 = getelementptr %struct.system__secondary_stack__mark_id* %tmp9, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp479 = load i32* %tmp478 ; <i32> [#uses=2] - %tmp485 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont484 unwind label %unwind480 ; <i32> [#uses=2] - -unwind480: ; preds = %invcont734, %invcont717, %cond_next665, %cond_true663, %cond_next639, %cond_true637, %cond_next613, %cond_true611, %cond_next587, %cond_true585, %cond_next561, %cond_true559, %cond_next535, %cond_true533, %cond_next509, %cond_true507, %invcont472 - %eh_ptr481 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select483 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr481, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %tmp7685575 = ptrtoint i8* %tmp476 to i32 ; <i32> [#uses=1] - %tmp76855755576 = zext i32 %tmp7685575 to i64 ; <i64> [#uses=1] - %tmp7715572 = zext i32 %tmp479 to i64 ; <i64> [#uses=1] - %tmp77155725573 = shl i64 %tmp7715572, 32 ; <i64> [#uses=1] - %tmp77155725573.ins = or i64 %tmp77155725573, %tmp76855755576 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp77155725573.ins ) - to label %cleanup779 unwind label %unwind468 - -invcont484: ; preds = %invcont472 - %tmp492 = icmp slt i32 %tmp485, %tmp384 ; <i1> [#uses=1] - %tmp500 = icmp sgt i32 %tmp485, %tmp394 ; <i1> [#uses=1] - %tmp504 = or i1 %tmp492, %tmp500 ; <i1> [#uses=1] - br i1 %tmp504, label %cond_true507, label %cond_next509 - -cond_true507: ; preds = %invcont484 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next509: ; preds = %invcont484 - %tmp511 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont510 unwind label %unwind480 ; <i32> [#uses=3] - -invcont510: ; preds = %cond_next509 - %tmp518 = icmp slt i32 %tmp511, %tmp384 ; <i1> [#uses=1] - %tmp526 = icmp sgt i32 %tmp511, %tmp394 ; <i1> [#uses=1] - %tmp530 = or i1 %tmp518, %tmp526 ; <i1> [#uses=1] - br i1 %tmp530, label %cond_true533, label %cond_next535 - -cond_true533: ; preds = %invcont510 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next535: ; preds = %invcont510 - %tmp537 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont536 unwind label %unwind480 ; <i32> [#uses=2] - -invcont536: ; preds = %cond_next535 - %tmp544 = icmp slt i32 %tmp537, %tmp384 ; <i1> [#uses=1] - %tmp552 = icmp sgt i32 %tmp537, %tmp394 ; <i1> [#uses=1] - %tmp556 = or i1 %tmp544, %tmp552 ; <i1> [#uses=1] - br i1 %tmp556, label %cond_true559, label %cond_next561 - -cond_true559: ; preds = %invcont536 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next561: ; preds = %invcont536 - %tmp563 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont562 unwind label %unwind480 ; <i32> [#uses=2] - -invcont562: ; preds = %cond_next561 - %tmp570 = icmp slt i32 %tmp563, %tmp384 ; <i1> [#uses=1] - %tmp578 = icmp sgt i32 %tmp563, %tmp394 ; <i1> [#uses=1] - %tmp582 = or i1 %tmp570, %tmp578 ; <i1> [#uses=1] - br i1 %tmp582, label %cond_true585, label %cond_next587 - -cond_true585: ; preds = %invcont562 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next587: ; preds = %invcont562 - %tmp589 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont588 unwind label %unwind480 ; <i32> [#uses=2] - -invcont588: ; preds = %cond_next587 - %tmp596 = icmp slt i32 %tmp589, %tmp384 ; <i1> [#uses=1] - %tmp604 = icmp sgt i32 %tmp589, %tmp394 ; <i1> [#uses=1] - %tmp608 = or i1 %tmp596, %tmp604 ; <i1> [#uses=1] - br i1 %tmp608, label %cond_true611, label %cond_next613 - -cond_true611: ; preds = %invcont588 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next613: ; preds = %invcont588 - %tmp615 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont614 unwind label %unwind480 ; <i32> [#uses=2] - -invcont614: ; preds = %cond_next613 - %tmp622 = icmp slt i32 %tmp615, %tmp384 ; <i1> [#uses=1] - %tmp630 = icmp sgt i32 %tmp615, %tmp394 ; <i1> [#uses=1] - %tmp634 = or i1 %tmp622, %tmp630 ; <i1> [#uses=1] - br i1 %tmp634, label %cond_true637, label %cond_next639 - -cond_true637: ; preds = %invcont614 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next639: ; preds = %invcont614 - %tmp641 = invoke i32 @report__ident_int( i32 1 ) - to label %invcont640 unwind label %unwind480 ; <i32> [#uses=2] - -invcont640: ; preds = %cond_next639 - %tmp648 = icmp slt i32 %tmp641, %tmp384 ; <i1> [#uses=1] - %tmp656 = icmp sgt i32 %tmp641, %tmp394 ; <i1> [#uses=1] - %tmp660 = or i1 %tmp648, %tmp656 ; <i1> [#uses=1] - br i1 %tmp660, label %cond_true663, label %cond_next665 - -cond_true663: ; preds = %invcont640 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind480 - -cond_next665: ; preds = %invcont640 - invoke void @system__img_int__image_integer( %struct.string___XUP* %tmp12 sret , i32 %tmp511 ) - to label %invcont717 unwind label %unwind480 - -invcont717: ; preds = %cond_next665 - %tmp719 = getelementptr %struct.string___XUP* %tmp12, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp720 = load i8** %tmp719 ; <i8*> [#uses=1] - %tmp7205888 = ptrtoint i8* %tmp720 to i32 ; <i32> [#uses=1] - %tmp72058885889 = zext i32 %tmp7205888 to i64 ; <i64> [#uses=1] - %tmp722 = getelementptr %struct.string___XUP* %tmp12, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp723 = load %struct.string___XUB** %tmp722 ; <%struct.string___XUB*> [#uses=1] - %tmp7235884 = ptrtoint %struct.string___XUB* %tmp723 to i32 ; <i32> [#uses=1] - %tmp72358845885 = zext i32 %tmp7235884 to i64 ; <i64> [#uses=1] - %tmp723588458855886 = shl i64 %tmp72358845885, 32 ; <i64> [#uses=1] - %tmp723588458855886.ins = or i64 %tmp723588458855886, %tmp72058885889 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp15 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str3 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp723588458855886.ins ) - to label %invcont734 unwind label %unwind480 - -invcont734: ; preds = %invcont717 - %tmp736 = getelementptr %struct.string___XUP* %tmp15, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp737 = load i8** %tmp736 ; <i8*> [#uses=1] - %tmp7375876 = ptrtoint i8* %tmp737 to i32 ; <i32> [#uses=1] - %tmp73758765877 = zext i32 %tmp7375876 to i64 ; <i64> [#uses=1] - %tmp739 = getelementptr %struct.string___XUP* %tmp15, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp740 = load %struct.string___XUB** %tmp739 ; <%struct.string___XUB*> [#uses=1] - %tmp7405872 = ptrtoint %struct.string___XUB* %tmp740 to i32 ; <i32> [#uses=1] - %tmp74058725873 = zext i32 %tmp7405872 to i64 ; <i64> [#uses=1] - %tmp740587258735874 = shl i64 %tmp74058725873, 32 ; <i64> [#uses=1] - %tmp740587258735874.ins = or i64 %tmp740587258735874, %tmp73758765877 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp740587258735874.ins ) - to label %cleanup unwind label %unwind480 - -cleanup: ; preds = %invcont734 - %tmp7515581 = ptrtoint i8* %tmp476 to i32 ; <i32> [#uses=1] - %tmp75155815582 = zext i32 %tmp7515581 to i64 ; <i64> [#uses=1] - %tmp7545578 = zext i32 %tmp479 to i64 ; <i64> [#uses=1] - %tmp75455785579 = shl i64 %tmp7545578, 32 ; <i64> [#uses=1] - %tmp75455785579.ins = or i64 %tmp75455785579, %tmp75155815582 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp75455785579.ins ) - to label %cond_true856 unwind label %unwind468 - -cleanup779: ; preds = %unwind480 - %eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp781 = icmp eq i32 %eh_select483, %eh_typeid ; <i1> [#uses=1] - br i1 %tmp781, label %eh_then, label %cleanup805 - -eh_then: ; preds = %cleanup779, %unwind468 - %eh_exception.35924.0 = phi i8* [ %eh_ptr469, %unwind468 ], [ %eh_ptr481, %cleanup779 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.35924.0 ) - to label %invcont787 unwind label %unwind783 - -unwind783: ; preds = %invcont789, %invcont787, %eh_then - %eh_ptr784 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select786 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr784, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.35924.0 ) - to label %cleanup805 unwind label %unwind - -invcont787: ; preds = %eh_then - %tmp788 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp788( ) - to label %invcont789 unwind label %unwind783 - -invcont789: ; preds = %invcont787 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str4 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) ) - to label %cleanup798 unwind label %unwind783 - -cleanup798: ; preds = %invcont789 - invoke void @__gnat_end_handler( i8* %eh_exception.35924.0 ) - to label %cond_true856 unwind label %unwind - -cleanup805: ; preds = %unwind783, %cleanup779, %unwind468 - %eh_selector.0 = phi i32 [ %eh_select471, %unwind468 ], [ %eh_select483, %cleanup779 ], [ %eh_select786, %unwind783 ] ; <i32> [#uses=2] - %eh_exception.0 = phi i8* [ %eh_ptr469, %unwind468 ], [ %eh_ptr481, %cleanup779 ], [ %eh_ptr784, %unwind783 ] ; <i8*> [#uses=2] - %eh_typeid806 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp808 = icmp eq i32 %eh_selector.0, %eh_typeid806 ; <i1> [#uses=1] - br i1 %tmp808, label %eh_then809, label %eh_else823 - -eh_then809: ; preds = %cleanup805, %unwind - %eh_exception.05914.0 = phi i8* [ %eh_ptr, %unwind ], [ %eh_exception.0, %cleanup805 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.05914.0 ) - to label %invcont815 unwind label %unwind813 - -unwind813: ; preds = %invcont815, %eh_then809 - %eh_ptr814 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.05914.0 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr814 ) ; <i32>:0 [#uses=0] - unreachable - -invcont815: ; preds = %eh_then809 - %tmp816 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp816( ) - to label %cleanup819 unwind label %unwind813 - -cleanup819: ; preds = %invcont815 - call void @__gnat_end_handler( i8* %eh_exception.05914.0 ) - %tmp8595931 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %tmp8635932 = icmp ugt i8 %tmp170171, %tmp272273 ; <i1> [#uses=1] - %tmp8675933 = or i1 %tmp8635932, %tmp8595931 ; <i1> [#uses=1] - br i1 %tmp8675933, label %cond_true870, label %bb887 - -eh_else823: ; preds = %cleanup805, %unwind - %eh_selector.05912.1 = phi i32 [ %eh_select, %unwind ], [ %eh_selector.0, %cleanup805 ] ; <i32> [#uses=1] - %eh_exception.05914.1 = phi i8* [ %eh_ptr, %unwind ], [ %eh_exception.0, %cleanup805 ] ; <i8*> [#uses=4] - %eh_typeid824 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp826 = icmp eq i32 %eh_selector.05912.1, %eh_typeid824 ; <i1> [#uses=1] - br i1 %tmp826, label %eh_then827, label %Unwind - -eh_then827: ; preds = %eh_else823 - invoke void @__gnat_begin_handler( i8* %eh_exception.05914.1 ) - to label %invcont833 unwind label %unwind831 - -unwind831: ; preds = %invcont835, %invcont833, %eh_then827 - %eh_ptr832 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.05914.1 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr832 ) ; <i32>:1 [#uses=0] - unreachable - -invcont833: ; preds = %eh_then827 - %tmp834 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp834( ) - to label %invcont835 unwind label %unwind831 - -invcont835: ; preds = %invcont833 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str5 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup844 unwind label %unwind831 - -cleanup844: ; preds = %invcont835 - call void @__gnat_end_handler( i8* %eh_exception.05914.1 ) - br label %cond_true856 - -cond_true856: ; preds = %cleanup844, %cleanup798, %cleanup - %tmp859 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %tmp863 = icmp ugt i8 %tmp170171, %tmp272273 ; <i1> [#uses=1] - %tmp867 = or i1 %tmp863, %tmp859 ; <i1> [#uses=1] - br i1 %tmp867, label %cond_true870, label %bb887 - -cond_true870: ; preds = %cond_true856, %cleanup819 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 103 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind871 - -unwind871: ; preds = %cond_next905, %bb887, %cond_true870 - %sat.3 = phi i8 [ %tmp340341, %cond_true870 ], [ %sat.1, %bb887 ], [ %sat.0, %cond_next905 ] ; <i8> [#uses=2] - %eh_ptr872 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=8] - %eh_select874 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr872, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid915 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp917 = icmp eq i32 %eh_select874, %eh_typeid915 ; <i1> [#uses=1] - br i1 %tmp917, label %eh_then918, label %eh_else932 - -bb887: ; preds = %cond_next901, %cond_true856, %cleanup819 - %indvar = phi i8 [ %indvar.next10, %cond_next901 ], [ 0, %cond_true856 ], [ 0, %cleanup819 ] ; <i8> [#uses=2] - %sat.1 = phi i8 [ %sat.0, %cond_next901 ], [ %tmp340341, %cond_true856 ], [ %tmp340341, %cleanup819 ] ; <i8> [#uses=2] - %tmp889 = invoke i8 @report__equal( i32 2, i32 2 ) - to label %invcont888 unwind label %unwind871 ; <i8> [#uses=1] - -invcont888: ; preds = %bb887 - %i.4 = add i8 %indvar, %tmp170171 ; <i8> [#uses=1] - %tmp890 = icmp eq i8 %tmp889, 0 ; <i1> [#uses=1] - %sat.0 = select i1 %tmp890, i8 %sat.1, i8 6 ; <i8> [#uses=3] - %tmp897 = icmp eq i8 %i.4, %tmp170171 ; <i1> [#uses=1] - br i1 %tmp897, label %cond_next905, label %cond_next901 - -cond_next901: ; preds = %invcont888 - %indvar.next10 = add i8 %indvar, 1 ; <i8> [#uses=1] - br label %bb887 - -cond_next905: ; preds = %invcont888 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([29 x i8]* @.str6 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.36.923 to i32) to i64), i64 32)) ) - to label %finally913 unwind label %unwind871 - -eh_then918: ; preds = %unwind871 - invoke void @__gnat_begin_handler( i8* %eh_ptr872 ) - to label %invcont924 unwind label %unwind922 - -unwind922: ; preds = %invcont924, %eh_then918 - %eh_ptr923 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr872 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr923 ) ; <i32>:2 [#uses=0] - unreachable - -invcont924: ; preds = %eh_then918 - %tmp925 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp925( ) - to label %cleanup928 unwind label %unwind922 - -cleanup928: ; preds = %invcont924 - call void @__gnat_end_handler( i8* %eh_ptr872 ) - br i1 %tmp462, label %cond_true973, label %UnifiedReturnBlock35 - -eh_else932: ; preds = %unwind871 - %eh_typeid933 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp935 = icmp eq i32 %eh_select874, %eh_typeid933 ; <i1> [#uses=1] - br i1 %tmp935, label %eh_then936, label %Unwind - -eh_then936: ; preds = %eh_else932 - invoke void @__gnat_begin_handler( i8* %eh_ptr872 ) - to label %invcont942 unwind label %unwind940 - -unwind940: ; preds = %invcont944, %invcont942, %eh_then936 - %eh_ptr941 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr872 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr941 ) ; <i32>:3 [#uses=0] - unreachable - -invcont942: ; preds = %eh_then936 - %tmp943 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp943( ) - to label %invcont944 unwind label %unwind940 - -invcont944: ; preds = %invcont942 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str7 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup953 unwind label %unwind940 - -cleanup953: ; preds = %invcont944 - call void @__gnat_end_handler( i8* %eh_ptr872 ) - br label %finally913 - -finally913: ; preds = %cleanup953, %cond_next905 - %sat.4 = phi i8 [ %sat.3, %cleanup953 ], [ %sat.0, %cond_next905 ] ; <i8> [#uses=1] - br i1 %tmp462, label %cond_true973, label %UnifiedReturnBlock35 - -cond_true973: ; preds = %finally913, %cleanup928 - %sat.45934.0 = phi i8 [ %sat.3, %cleanup928 ], [ %sat.4, %finally913 ] ; <i8> [#uses=9] - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 119 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind974 - -unwind974: ; preds = %cond_true973 - %eh_ptr975 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=8] - %eh_select977 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr975, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid13135959 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp13155961 = icmp eq i32 %eh_select977, %eh_typeid13135959 ; <i1> [#uses=1] - br i1 %tmp13155961, label %eh_then1316, label %eh_else1330 - -eh_then1316: ; preds = %unwind974 - invoke void @__gnat_begin_handler( i8* %eh_ptr975 ) - to label %invcont1322 unwind label %unwind1320 - -unwind1320: ; preds = %invcont1322, %eh_then1316 - %eh_ptr1321 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr975 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1321 ) ; <i32>:4 [#uses=0] - unreachable - -invcont1322: ; preds = %eh_then1316 - %tmp1323 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp1323( ) - to label %cleanup1326 unwind label %unwind1320 - -cleanup1326: ; preds = %invcont1322 - call void @__gnat_end_handler( i8* %eh_ptr975 ) - br label %finally1311 - -eh_else1330: ; preds = %unwind974 - %eh_typeid1331 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp1333 = icmp eq i32 %eh_select977, %eh_typeid1331 ; <i1> [#uses=1] - br i1 %tmp1333, label %eh_then1334, label %Unwind - -eh_then1334: ; preds = %eh_else1330 - invoke void @__gnat_begin_handler( i8* %eh_ptr975 ) - to label %invcont1340 unwind label %unwind1338 - -unwind1338: ; preds = %invcont1342, %invcont1340, %eh_then1334 - %eh_ptr1339 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr975 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1339 ) ; <i32>:5 [#uses=0] - unreachable - -invcont1340: ; preds = %eh_then1334 - %tmp1341 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp1341( ) - to label %invcont1342 unwind label %unwind1338 - -invcont1342: ; preds = %invcont1340 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str10 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup1351 unwind label %unwind1338 - -cleanup1351: ; preds = %invcont1342 - call void @__gnat_end_handler( i8* %eh_ptr975 ) - br label %finally1311 - -finally1311: ; preds = %cleanup1351, %cleanup1326 - %tmp1356 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=6] - %tmp13571358 = and i32 %tmp184, 255 ; <i32> [#uses=11] - %tmp13831384 = and i32 %tmp252, 255 ; <i32> [#uses=5] - %tmp1387 = add i32 %tmp13571358, -1 ; <i32> [#uses=2] - %tmp1388 = icmp sge i32 %tmp13831384, %tmp1387 ; <i1> [#uses=1] - %max1389 = select i1 %tmp1388, i32 %tmp13831384, i32 %tmp1387 ; <i32> [#uses=1] - %tmp1392 = sub i32 %max1389, %tmp13571358 ; <i32> [#uses=1] - %tmp1393 = add i32 %tmp1392, 1 ; <i32> [#uses=2] - %tmp1394 = icmp sgt i32 %tmp1393, -1 ; <i1> [#uses=1] - %max1395 = select i1 %tmp1394, i32 %tmp1393, i32 0 ; <i32> [#uses=5] - %tmp1397 = alloca i8, i32 %max1395 ; <i8*> [#uses=2] - %tmp1401 = icmp ult i8 %tmp238239, %tmp170171 ; <i1> [#uses=2] - br i1 %tmp1401, label %cond_next1425, label %cond_true1404 - -cond_true1404: ; preds = %finally1311 - %tmp1407 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %tmp1411 = icmp ugt i8 %tmp238239, %tmp272273 ; <i1> [#uses=1] - %tmp1415 = or i1 %tmp1411, %tmp1407 ; <i1> [#uses=1] - br i1 %tmp1415, label %cond_true1418, label %cond_next1425 - -cond_true1418: ; preds = %cond_true1404 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 144 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind1419 - -unwind1419: ; preds = %cleanup1702, %cleanup1686, %unwind1676, %cond_next1548, %cond_true1546, %cond_true1418 - %eh_ptr1420 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select1422 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr1420, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid17215981 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp17235983 = icmp eq i32 %eh_select1422, %eh_typeid17215981 ; <i1> [#uses=1] - br i1 %tmp17235983, label %eh_then1724, label %eh_else1742 - -cond_next1425: ; preds = %cond_true1404, %finally1311 - %tmp14281429 = and i32 %tmp150, 255 ; <i32> [#uses=3] - %tmp14841485 = and i32 %tmp218, 255 ; <i32> [#uses=3] - %tmp1488 = add i32 %tmp14281429, -1 ; <i32> [#uses=2] - %tmp1489 = icmp sge i32 %tmp14841485, %tmp1488 ; <i1> [#uses=1] - %max1490 = select i1 %tmp1489, i32 %tmp14841485, i32 %tmp1488 ; <i32> [#uses=1] - %tmp1493 = sub i32 %max1490, %tmp14281429 ; <i32> [#uses=1] - %tmp1494 = add i32 %tmp1493, 1 ; <i32> [#uses=2] - %tmp1495 = icmp sgt i32 %tmp1494, -1 ; <i1> [#uses=1] - %max1496 = select i1 %tmp1495, i32 %tmp1494, i32 0 ; <i32> [#uses=1] - %tmp1497 = alloca i8, i32 %max1496 ; <i8*> [#uses=3] - %tmp1504 = icmp ugt i8 %tmp170171, %tmp238239 ; <i1> [#uses=1] - br i1 %tmp1504, label %cond_next1526, label %bb1509 - -bb1509: ; preds = %cond_next1425 - store i8 %tmp238239, i8* %tmp1497 - %tmp1518 = icmp eq i8 %tmp238239, %tmp170171 ; <i1> [#uses=1] - br i1 %tmp1518, label %cond_next1526, label %cond_next1522.preheader - -cond_next1522.preheader: ; preds = %bb1509 - %J64b.55984.8 = add i8 %tmp170171, 1 ; <i8> [#uses=1] - br label %cond_next1522 - -cond_next1522: ; preds = %cond_next1522, %cond_next1522.preheader - %indvar6241 = phi i8 [ 0, %cond_next1522.preheader ], [ %indvar.next, %cond_next1522 ] ; <i8> [#uses=2] - %tmp1524 = add i8 %J64b.55984.8, %indvar6241 ; <i8> [#uses=2] - %tmp151015115988 = zext i8 %tmp1524 to i32 ; <i32> [#uses=1] - %tmp15135989 = sub i32 %tmp151015115988, %tmp14281429 ; <i32> [#uses=1] - %tmp15145990 = getelementptr i8* %tmp1497, i32 %tmp15135989 ; <i8*> [#uses=1] - store i8 %tmp238239, i8* %tmp15145990 - %tmp15185992 = icmp eq i8 %tmp238239, %tmp1524 ; <i1> [#uses=1] - %indvar.next = add i8 %indvar6241, 1 ; <i8> [#uses=1] - br i1 %tmp15185992, label %cond_next1526, label %cond_next1522 - -cond_next1526: ; preds = %cond_next1522, %bb1509, %cond_next1425 - %tmp15271528 = zext i8 %tmp272273 to i64 ; <i64> [#uses=1] - %tmp15291530 = zext i8 %tmp204205 to i64 ; <i64> [#uses=1] - %tmp1531 = sub i64 %tmp15271528, %tmp15291530 ; <i64> [#uses=1] - %tmp1532 = add i64 %tmp1531, 1 ; <i64> [#uses=2] - %tmp1533 = icmp sgt i64 %tmp1532, -1 ; <i1> [#uses=1] - %max1534 = select i1 %tmp1533, i64 %tmp1532, i64 0 ; <i64> [#uses=1] - %tmp15351536 = zext i8 %tmp238239 to i64 ; <i64> [#uses=1] - %tmp15371538 = zext i8 %tmp170171 to i64 ; <i64> [#uses=1] - %tmp1539 = sub i64 %tmp15351536, %tmp15371538 ; <i64> [#uses=1] - %tmp1540 = add i64 %tmp1539, 1 ; <i64> [#uses=2] - %tmp1541 = icmp sgt i64 %tmp1540, -1 ; <i1> [#uses=1] - %max1542 = select i1 %tmp1541, i64 %tmp1540, i64 0 ; <i64> [#uses=1] - %tmp1543 = icmp eq i64 %max1534, %max1542 ; <i1> [#uses=1] - br i1 %tmp1543, label %cond_next1548, label %cond_true1546 - -cond_true1546: ; preds = %cond_next1526 - invoke void @__gnat_rcheck_07( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 144 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind1419 - -cond_next1548: ; preds = %cond_next1526 - call void @llvm.memcpy.i32( i8* %tmp1397, i8* %tmp1497, i32 %max1395, i32 1 ) - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp31 sret ) - to label %invcont1552 unwind label %unwind1419 - -invcont1552: ; preds = %cond_next1548 - %tmp1555 = getelementptr %struct.system__secondary_stack__mark_id* %tmp31, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp1556 = load i8** %tmp1555 ; <i8*> [#uses=3] - %tmp1558 = getelementptr %struct.system__secondary_stack__mark_id* %tmp31, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp1559 = load i32* %tmp1558 ; <i32> [#uses=3] - %tmp1562 = icmp ult i8 %tmp238239, %tmp204205 ; <i1> [#uses=1] - %tmp1566 = icmp ugt i8 %tmp238239, %tmp272273 ; <i1> [#uses=1] - %tmp1570 = or i1 %tmp1566, %tmp1562 ; <i1> [#uses=1] - br i1 %tmp1570, label %cond_true1573, label %cond_next1591 - -cond_true1573: ; preds = %invcont1552 - invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 148 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind1574 - -unwind1574: ; preds = %invcont1638, %invcont1621, %bb1607, %bb1605, %cond_true1573 - %eh_ptr1575 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select1577 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr1575, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid1652 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp1654 = icmp eq i32 %eh_select1577, %eh_typeid1652 ; <i1> [#uses=1] - br i1 %tmp1654, label %eh_then1655, label %cleanup1686 - -cond_next1591: ; preds = %invcont1552 - %tmp1595 = sub i32 %tmp14841485, %tmp13571358 ; <i32> [#uses=1] - %tmp1596 = getelementptr i8* %tmp1397, i32 %tmp1595 ; <i8*> [#uses=1] - %tmp1597 = load i8* %tmp1596 ; <i8> [#uses=2] - %tmp1599 = icmp ugt i8 %tmp1597, 6 ; <i1> [#uses=1] - br i1 %tmp1599, label %bb1605, label %bb1607 - -bb1605: ; preds = %cond_next1591 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 148 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind1574 - -bb1607: ; preds = %cond_next1591 - %tmp16151616 = zext i8 %tmp1597 to i32 ; <i32> [#uses=1] - invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp34 sret , i32 %tmp16151616, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) ) - to label %invcont1621 unwind label %unwind1574 - -invcont1621: ; preds = %bb1607 - %tmp1623 = getelementptr %struct.string___XUP* %tmp34, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp1624 = load i8** %tmp1623 ; <i8*> [#uses=1] - %tmp16245815 = ptrtoint i8* %tmp1624 to i32 ; <i32> [#uses=1] - %tmp162458155816 = zext i32 %tmp16245815 to i64 ; <i64> [#uses=1] - %tmp1626 = getelementptr %struct.string___XUP* %tmp34, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp1627 = load %struct.string___XUB** %tmp1626 ; <%struct.string___XUB*> [#uses=1] - %tmp16275811 = ptrtoint %struct.string___XUB* %tmp1627 to i32 ; <i32> [#uses=1] - %tmp162758115812 = zext i32 %tmp16275811 to i64 ; <i64> [#uses=1] - %tmp1627581158125813 = shl i64 %tmp162758115812, 32 ; <i64> [#uses=1] - %tmp1627581158125813.ins = or i64 %tmp1627581158125813, %tmp162458155816 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp37 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str11 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp1627581158125813.ins ) - to label %invcont1638 unwind label %unwind1574 - -invcont1638: ; preds = %invcont1621 - %tmp1640 = getelementptr %struct.string___XUP* %tmp37, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp1641 = load i8** %tmp1640 ; <i8*> [#uses=1] - %tmp16415803 = ptrtoint i8* %tmp1641 to i32 ; <i32> [#uses=1] - %tmp164158035804 = zext i32 %tmp16415803 to i64 ; <i64> [#uses=1] - %tmp1643 = getelementptr %struct.string___XUP* %tmp37, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp1644 = load %struct.string___XUB** %tmp1643 ; <%struct.string___XUB*> [#uses=1] - %tmp16445799 = ptrtoint %struct.string___XUB* %tmp1644 to i32 ; <i32> [#uses=1] - %tmp164457995800 = zext i32 %tmp16445799 to i64 ; <i64> [#uses=1] - %tmp1644579958005801 = shl i64 %tmp164457995800, 32 ; <i64> [#uses=1] - %tmp1644579958005801.ins = or i64 %tmp1644579958005801, %tmp164158035804 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp1644579958005801.ins ) - to label %cleanup1702 unwind label %unwind1574 - -eh_then1655: ; preds = %unwind1574 - invoke void @__gnat_begin_handler( i8* %eh_ptr1575 ) - to label %invcont1663 unwind label %unwind1659 - -unwind1659: ; preds = %invcont1665, %invcont1663, %eh_then1655 - %eh_ptr1660 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select1662 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr1660, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_ptr1575 ) - to label %cleanup1686 unwind label %unwind1676 - -invcont1663: ; preds = %eh_then1655 - %tmp1664 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp1664( ) - to label %invcont1665 unwind label %unwind1659 - -invcont1665: ; preds = %invcont1663 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str12 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) ) - to label %cleanup1674 unwind label %unwind1659 - -cleanup1674: ; preds = %invcont1665 - invoke void @__gnat_end_handler( i8* %eh_ptr1575 ) - to label %cleanup1702 unwind label %unwind1676 - -unwind1676: ; preds = %cleanup1674, %unwind1659 - %eh_ptr1677 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select1679 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr1677, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - %tmp169255575995 = ptrtoint i8* %tmp1556 to i32 ; <i32> [#uses=1] - %tmp1692555755585996 = zext i32 %tmp169255575995 to i64 ; <i64> [#uses=1] - %tmp169555545997 = zext i32 %tmp1559 to i64 ; <i64> [#uses=1] - %tmp1695555455555998 = shl i64 %tmp169555545997, 32 ; <i64> [#uses=1] - %tmp169555545555.ins5999 = or i64 %tmp1695555455555998, %tmp1692555755585996 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp169555545555.ins5999 ) - to label %cleanup1720 unwind label %unwind1419 - -cleanup1686: ; preds = %unwind1659, %unwind1574 - %eh_selector.18 = phi i32 [ %eh_select1577, %unwind1574 ], [ %eh_select1662, %unwind1659 ] ; <i32> [#uses=1] - %eh_exception.18 = phi i8* [ %eh_ptr1575, %unwind1574 ], [ %eh_ptr1660, %unwind1659 ] ; <i8*> [#uses=1] - %tmp16925557 = ptrtoint i8* %tmp1556 to i32 ; <i32> [#uses=1] - %tmp169255575558 = zext i32 %tmp16925557 to i64 ; <i64> [#uses=1] - %tmp16955554 = zext i32 %tmp1559 to i64 ; <i64> [#uses=1] - %tmp169555545555 = shl i64 %tmp16955554, 32 ; <i64> [#uses=1] - %tmp169555545555.ins = or i64 %tmp169555545555, %tmp169255575558 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp169555545555.ins ) - to label %cleanup1720 unwind label %unwind1419 - -cleanup1702: ; preds = %cleanup1674, %invcont1638 - %tmp17095551 = ptrtoint i8* %tmp1556 to i32 ; <i32> [#uses=1] - %tmp170955515552 = zext i32 %tmp17095551 to i64 ; <i64> [#uses=1] - %tmp17125548 = zext i32 %tmp1559 to i64 ; <i64> [#uses=1] - %tmp171255485549 = shl i64 %tmp17125548, 32 ; <i64> [#uses=1] - %tmp171255485549.ins = or i64 %tmp171255485549, %tmp170955515552 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp171255485549.ins ) - to label %cleanup1773 unwind label %unwind1419 - -cleanup1720: ; preds = %cleanup1686, %unwind1676 - %eh_selector.185993.1 = phi i32 [ %eh_select1679, %unwind1676 ], [ %eh_selector.18, %cleanup1686 ] ; <i32> [#uses=2] - %eh_exception.185994.1 = phi i8* [ %eh_ptr1677, %unwind1676 ], [ %eh_exception.18, %cleanup1686 ] ; <i8*> [#uses=2] - %eh_typeid1721 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp1723 = icmp eq i32 %eh_selector.185993.1, %eh_typeid1721 ; <i1> [#uses=1] - br i1 %tmp1723, label %eh_then1724, label %eh_else1742 - -eh_then1724: ; preds = %cleanup1720, %unwind1419 - %eh_exception.135974.0 = phi i8* [ %eh_ptr1420, %unwind1419 ], [ %eh_exception.185994.1, %cleanup1720 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.135974.0 ) - to label %invcont1730 unwind label %unwind1728 - -unwind1728: ; preds = %invcont1730, %eh_then1724 - %eh_ptr1729 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.135974.0 ) - to label %cleanup1771 unwind label %unwind1736 - -invcont1730: ; preds = %eh_then1724 - %tmp1731 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp1731( ) - to label %cleanup1734 unwind label %unwind1728 - -cleanup1734: ; preds = %invcont1730 - invoke void @__gnat_end_handler( i8* %eh_exception.135974.0 ) - to label %cleanup1773 unwind label %unwind1736 - -unwind1736: ; preds = %cleanup1763, %unwind1750, %cleanup1734, %unwind1728 - %eh_ptr1737 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp1356 ) - call void @llvm.stackrestore( i8* %tmp1356 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1737 ) ; <i32>:6 [#uses=0] - unreachable - -eh_else1742: ; preds = %cleanup1720, %unwind1419 - %eh_selector.135972.1 = phi i32 [ %eh_select1422, %unwind1419 ], [ %eh_selector.185993.1, %cleanup1720 ] ; <i32> [#uses=1] - %eh_exception.135974.1 = phi i8* [ %eh_ptr1420, %unwind1419 ], [ %eh_exception.185994.1, %cleanup1720 ] ; <i8*> [#uses=4] - %eh_typeid1743 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp1745 = icmp eq i32 %eh_selector.135972.1, %eh_typeid1743 ; <i1> [#uses=1] - br i1 %tmp1745, label %eh_then1746, label %cleanup1771 - -eh_then1746: ; preds = %eh_else1742 - invoke void @__gnat_begin_handler( i8* %eh_exception.135974.1 ) - to label %invcont1752 unwind label %unwind1750 - -unwind1750: ; preds = %invcont1754, %invcont1752, %eh_then1746 - %eh_ptr1751 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.135974.1 ) - to label %cleanup1771 unwind label %unwind1736 - -invcont1752: ; preds = %eh_then1746 - %tmp1753 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp1753( ) - to label %invcont1754 unwind label %unwind1750 - -invcont1754: ; preds = %invcont1752 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str13 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup1763 unwind label %unwind1750 - -cleanup1763: ; preds = %invcont1754 - invoke void @__gnat_end_handler( i8* %eh_exception.135974.1 ) - to label %cleanup1773 unwind label %unwind1736 - -cleanup1771: ; preds = %unwind1750, %eh_else1742, %unwind1728 - %eh_exception.20 = phi i8* [ %eh_ptr1729, %unwind1728 ], [ %eh_exception.135974.1, %eh_else1742 ], [ %eh_ptr1751, %unwind1750 ] ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp1356 ) - call void @llvm.stackrestore( i8* %tmp1356 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_exception.20 ) ; <i32>:7 [#uses=0] - unreachable - -cleanup1773: ; preds = %cleanup1763, %cleanup1734, %cleanup1702 - call void @llvm.stackrestore( i8* %tmp1356 ) - call void @llvm.stackrestore( i8* %tmp1356 ) - %tmp1780 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=6] - %tmp17811782 = and i32 %tmp150, 255 ; <i32> [#uses=4] - %tmp18071808 = and i32 %tmp286, 255 ; <i32> [#uses=2] - %tmp1811 = add i32 %tmp17811782, -1 ; <i32> [#uses=2] - %tmp1812 = icmp sge i32 %tmp18071808, %tmp1811 ; <i1> [#uses=1] - %max1813 = select i1 %tmp1812, i32 %tmp18071808, i32 %tmp1811 ; <i32> [#uses=1] - %tmp1816 = sub i32 %max1813, %tmp17811782 ; <i32> [#uses=1] - %tmp1817 = add i32 %tmp1816, 1 ; <i32> [#uses=2] - %tmp1818 = icmp sgt i32 %tmp1817, -1 ; <i1> [#uses=1] - %max1819 = select i1 %tmp1818, i32 %tmp1817, i32 0 ; <i32> [#uses=3] - %tmp1821 = alloca i8, i32 %max1819 ; <i8*> [#uses=2] - %tmp1863 = alloca i8, i32 %max1819 ; <i8*> [#uses=3] - %tmp1870 = icmp ugt i8 %tmp170171, %tmp306307 ; <i1> [#uses=1] - br i1 %tmp1870, label %cond_next1900, label %bb1875 - -bb1875: ; preds = %cleanup1773 - store i8 %tmp238239, i8* %tmp1863 - %tmp1884 = icmp eq i8 %tmp306307, %tmp170171 ; <i1> [#uses=1] - br i1 %tmp1884, label %cond_next1900, label %cond_next1888.preheader - -cond_next1888.preheader: ; preds = %bb1875 - %J77b.26000.2 = add i8 %tmp170171, 1 ; <i8> [#uses=1] - br label %cond_next1888 - -cond_next1888: ; preds = %cond_next1888, %cond_next1888.preheader - %indvar6245 = phi i8 [ 0, %cond_next1888.preheader ], [ %indvar.next14, %cond_next1888 ] ; <i8> [#uses=2] - %tmp1890 = add i8 %J77b.26000.2, %indvar6245 ; <i8> [#uses=2] - %tmp187618776004 = zext i8 %tmp1890 to i32 ; <i32> [#uses=1] - %tmp18796005 = sub i32 %tmp187618776004, %tmp17811782 ; <i32> [#uses=1] - %tmp18806006 = getelementptr i8* %tmp1863, i32 %tmp18796005 ; <i8*> [#uses=1] - store i8 %tmp238239, i8* %tmp18806006 - %tmp18846008 = icmp eq i8 %tmp306307, %tmp1890 ; <i1> [#uses=1] - %indvar.next14 = add i8 %indvar6245, 1 ; <i8> [#uses=1] - br i1 %tmp18846008, label %cond_next1900, label %cond_next1888 - -unwind1895: ; preds = %cleanup2300, %cleanup2284, %unwind2274, %cond_next2149, %cond_true1946 - %eh_ptr1896 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select1898 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr1896, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid23196018 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp23216020 = icmp eq i32 %eh_select1898, %eh_typeid23196018 ; <i1> [#uses=1] - br i1 %tmp23216020, label %eh_then2322, label %eh_else2340 - -cond_next1900: ; preds = %cond_next1888, %bb1875, %cleanup1773 - call void @llvm.memcpy.i32( i8* %tmp1821, i8* %tmp1863, i32 %max1819, i32 1 ) - ret void - -cond_true1909: ; No predecessors! - %tmp1912 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %tmp1916 = icmp ugt i8 %tmp238239, %tmp272273 ; <i1> [#uses=1] - %tmp1920 = or i1 %tmp1916, %tmp1912 ; <i1> [#uses=0] - ret void - -cond_true1923: ; No predecessors! - ret void - -cond_next1926: ; No predecessors! - %tmp1929.not = icmp uge i8 %tmp238239, %tmp170171 ; <i1> [#uses=1] - %tmp1939 = icmp ugt i8 %tmp238239, %tmp306307 ; <i1> [#uses=2] - %bothcond = and i1 %tmp1939, %tmp1929.not ; <i1> [#uses=0] - ret void - -cond_true1946: ; No predecessors! - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 162 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind1895 - -cond_next2149: ; No predecessors! - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp46 sret ) - to label %invcont2150 unwind label %unwind1895 - -invcont2150: ; preds = %cond_next2149 - %tmp2153 = getelementptr %struct.system__secondary_stack__mark_id* %tmp46, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2154 = load i8** %tmp2153 ; <i8*> [#uses=3] - %tmp2156 = getelementptr %struct.system__secondary_stack__mark_id* %tmp46, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp2157 = load i32* %tmp2156 ; <i32> [#uses=3] - %tmp2168 = or i1 %tmp1939, %tmp1401 ; <i1> [#uses=1] - br i1 %tmp2168, label %cond_true2171, label %cond_next2189 - -cond_true2171: ; preds = %invcont2150 - invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 165 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2172 - -unwind2172: ; preds = %invcont2236, %invcont2219, %bb2205, %bb2203, %cond_true2171 - %eh_ptr2173 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select2175 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2173, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid2250 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp2252 = icmp eq i32 %eh_select2175, %eh_typeid2250 ; <i1> [#uses=1] - br i1 %tmp2252, label %eh_then2253, label %cleanup2284 - -cond_next2189: ; preds = %invcont2150 - %tmp21902191 = and i32 %tmp218, 255 ; <i32> [#uses=1] - %tmp2193 = sub i32 %tmp21902191, %tmp17811782 ; <i32> [#uses=1] - %tmp2194 = getelementptr i8* %tmp1821, i32 %tmp2193 ; <i8*> [#uses=1] - %tmp2195 = load i8* %tmp2194 ; <i8> [#uses=2] - %tmp2197 = icmp ugt i8 %tmp2195, 6 ; <i1> [#uses=1] - br i1 %tmp2197, label %bb2203, label %bb2205 - -bb2203: ; preds = %cond_next2189 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 165 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2172 - -bb2205: ; preds = %cond_next2189 - %tmp22132214 = zext i8 %tmp2195 to i32 ; <i32> [#uses=1] - invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp49 sret , i32 %tmp22132214, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) ) - to label %invcont2219 unwind label %unwind2172 - -invcont2219: ; preds = %bb2205 - %tmp2221 = getelementptr %struct.string___XUP* %tmp49, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2222 = load i8** %tmp2221 ; <i8*> [#uses=1] - %tmp22225781 = ptrtoint i8* %tmp2222 to i32 ; <i32> [#uses=1] - %tmp222257815782 = zext i32 %tmp22225781 to i64 ; <i64> [#uses=1] - %tmp2224 = getelementptr %struct.string___XUP* %tmp49, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2225 = load %struct.string___XUB** %tmp2224 ; <%struct.string___XUB*> [#uses=1] - %tmp22255777 = ptrtoint %struct.string___XUB* %tmp2225 to i32 ; <i32> [#uses=1] - %tmp222557775778 = zext i32 %tmp22255777 to i64 ; <i64> [#uses=1] - %tmp2225577757785779 = shl i64 %tmp222557775778, 32 ; <i64> [#uses=1] - %tmp2225577757785779.ins = or i64 %tmp2225577757785779, %tmp222257815782 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp52 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str14 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp2225577757785779.ins ) - to label %invcont2236 unwind label %unwind2172 - -invcont2236: ; preds = %invcont2219 - %tmp2238 = getelementptr %struct.string___XUP* %tmp52, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2239 = load i8** %tmp2238 ; <i8*> [#uses=1] - %tmp22395769 = ptrtoint i8* %tmp2239 to i32 ; <i32> [#uses=1] - %tmp223957695770 = zext i32 %tmp22395769 to i64 ; <i64> [#uses=1] - %tmp2241 = getelementptr %struct.string___XUP* %tmp52, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2242 = load %struct.string___XUB** %tmp2241 ; <%struct.string___XUB*> [#uses=1] - %tmp22425765 = ptrtoint %struct.string___XUB* %tmp2242 to i32 ; <i32> [#uses=1] - %tmp224257655766 = zext i32 %tmp22425765 to i64 ; <i64> [#uses=1] - %tmp2242576557665767 = shl i64 %tmp224257655766, 32 ; <i64> [#uses=1] - %tmp2242576557665767.ins = or i64 %tmp2242576557665767, %tmp223957695770 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp2242576557665767.ins ) - to label %cleanup2300 unwind label %unwind2172 - -eh_then2253: ; preds = %unwind2172 - invoke void @__gnat_begin_handler( i8* %eh_ptr2173 ) - to label %invcont2261 unwind label %unwind2257 - -unwind2257: ; preds = %invcont2263, %invcont2261, %eh_then2253 - %eh_ptr2258 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select2260 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2258, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_ptr2173 ) - to label %cleanup2284 unwind label %unwind2274 - -invcont2261: ; preds = %eh_then2253 - %tmp2262 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2262( ) - to label %invcont2263 unwind label %unwind2257 - -invcont2263: ; preds = %invcont2261 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str15 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) ) - to label %cleanup2272 unwind label %unwind2257 - -cleanup2272: ; preds = %invcont2263 - invoke void @__gnat_end_handler( i8* %eh_ptr2173 ) - to label %cleanup2300 unwind label %unwind2274 - -unwind2274: ; preds = %cleanup2272, %unwind2257 - %eh_ptr2275 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select2277 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2275, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - %tmp229055456023 = ptrtoint i8* %tmp2154 to i32 ; <i32> [#uses=1] - %tmp2290554555466024 = zext i32 %tmp229055456023 to i64 ; <i64> [#uses=1] - %tmp229355426025 = zext i32 %tmp2157 to i64 ; <i64> [#uses=1] - %tmp2293554255436026 = shl i64 %tmp229355426025, 32 ; <i64> [#uses=1] - %tmp229355425543.ins6027 = or i64 %tmp2293554255436026, %tmp2290554555466024 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp229355425543.ins6027 ) - to label %cleanup2318 unwind label %unwind1895 - -cleanup2284: ; preds = %unwind2257, %unwind2172 - %eh_selector.24 = phi i32 [ %eh_select2175, %unwind2172 ], [ %eh_select2260, %unwind2257 ] ; <i32> [#uses=1] - %eh_exception.26 = phi i8* [ %eh_ptr2173, %unwind2172 ], [ %eh_ptr2258, %unwind2257 ] ; <i8*> [#uses=1] - %tmp22905545 = ptrtoint i8* %tmp2154 to i32 ; <i32> [#uses=1] - %tmp229055455546 = zext i32 %tmp22905545 to i64 ; <i64> [#uses=1] - %tmp22935542 = zext i32 %tmp2157 to i64 ; <i64> [#uses=1] - %tmp229355425543 = shl i64 %tmp22935542, 32 ; <i64> [#uses=1] - %tmp229355425543.ins = or i64 %tmp229355425543, %tmp229055455546 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp229355425543.ins ) - to label %cleanup2318 unwind label %unwind1895 - -cleanup2300: ; preds = %cleanup2272, %invcont2236 - %tmp23075539 = ptrtoint i8* %tmp2154 to i32 ; <i32> [#uses=1] - %tmp230755395540 = zext i32 %tmp23075539 to i64 ; <i64> [#uses=1] - %tmp23105536 = zext i32 %tmp2157 to i64 ; <i64> [#uses=1] - %tmp231055365537 = shl i64 %tmp23105536, 32 ; <i64> [#uses=1] - %tmp231055365537.ins = or i64 %tmp231055365537, %tmp230755395540 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp231055365537.ins ) - to label %cleanup2371 unwind label %unwind1895 - -cleanup2318: ; preds = %cleanup2284, %unwind2274 - %eh_selector.246021.1 = phi i32 [ %eh_select2277, %unwind2274 ], [ %eh_selector.24, %cleanup2284 ] ; <i32> [#uses=2] - %eh_exception.266022.1 = phi i8* [ %eh_ptr2275, %unwind2274 ], [ %eh_exception.26, %cleanup2284 ] ; <i8*> [#uses=2] - %eh_typeid2319 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp2321 = icmp eq i32 %eh_selector.246021.1, %eh_typeid2319 ; <i1> [#uses=1] - br i1 %tmp2321, label %eh_then2322, label %eh_else2340 - -eh_then2322: ; preds = %cleanup2318, %unwind1895 - %eh_exception.216011.0 = phi i8* [ %eh_ptr1896, %unwind1895 ], [ %eh_exception.266022.1, %cleanup2318 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.216011.0 ) - to label %invcont2328 unwind label %unwind2326 - -unwind2326: ; preds = %invcont2328, %eh_then2322 - %eh_ptr2327 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.216011.0 ) - to label %cleanup2369 unwind label %unwind2334 - -invcont2328: ; preds = %eh_then2322 - %tmp2329 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2329( ) - to label %cleanup2332 unwind label %unwind2326 - -cleanup2332: ; preds = %invcont2328 - invoke void @__gnat_end_handler( i8* %eh_exception.216011.0 ) - to label %cleanup2371 unwind label %unwind2334 - -unwind2334: ; preds = %cleanup2361, %unwind2348, %cleanup2332, %unwind2326 - %eh_ptr2335 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp1780 ) - call void @llvm.stackrestore( i8* %tmp1780 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2335 ) ; <i32>:8 [#uses=0] - unreachable - -eh_else2340: ; preds = %cleanup2318, %unwind1895 - %eh_selector.196009.1 = phi i32 [ %eh_select1898, %unwind1895 ], [ %eh_selector.246021.1, %cleanup2318 ] ; <i32> [#uses=1] - %eh_exception.216011.1 = phi i8* [ %eh_ptr1896, %unwind1895 ], [ %eh_exception.266022.1, %cleanup2318 ] ; <i8*> [#uses=4] - %eh_typeid2341 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp2343 = icmp eq i32 %eh_selector.196009.1, %eh_typeid2341 ; <i1> [#uses=1] - br i1 %tmp2343, label %eh_then2344, label %cleanup2369 - -eh_then2344: ; preds = %eh_else2340 - invoke void @__gnat_begin_handler( i8* %eh_exception.216011.1 ) - to label %invcont2350 unwind label %unwind2348 - -unwind2348: ; preds = %invcont2352, %invcont2350, %eh_then2344 - %eh_ptr2349 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.216011.1 ) - to label %cleanup2369 unwind label %unwind2334 - -invcont2350: ; preds = %eh_then2344 - %tmp2351 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2351( ) - to label %invcont2352 unwind label %unwind2348 - -invcont2352: ; preds = %invcont2350 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str16 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup2361 unwind label %unwind2348 - -cleanup2361: ; preds = %invcont2352 - invoke void @__gnat_end_handler( i8* %eh_exception.216011.1 ) - to label %cleanup2371 unwind label %unwind2334 - -cleanup2369: ; preds = %unwind2348, %eh_else2340, %unwind2326 - %eh_exception.28 = phi i8* [ %eh_ptr2327, %unwind2326 ], [ %eh_exception.216011.1, %eh_else2340 ], [ %eh_ptr2349, %unwind2348 ] ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp1780 ) - call void @llvm.stackrestore( i8* %tmp1780 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_exception.28 ) ; <i32>:9 [#uses=0] - unreachable - -cleanup2371: ; preds = %cleanup2361, %cleanup2332, %cleanup2300 - call void @llvm.stackrestore( i8* %tmp1780 ) - call void @llvm.stackrestore( i8* %tmp1780 ) - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp55 sret ) - to label %invcont2382 unwind label %unwind2378 - -unwind2378: ; preds = %cleanup2371 - %eh_ptr2379 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2381 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2379, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid26496037 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp26516039 = icmp eq i32 %eh_select2381, %eh_typeid26496037 ; <i1> [#uses=1] - br i1 %tmp26516039, label %eh_then2652, label %eh_else2666 - -invcont2382: ; preds = %cleanup2371 - %tmp2385 = getelementptr %struct.system__secondary_stack__mark_id* %tmp55, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2386 = load i8** %tmp2385 ; <i8*> [#uses=2] - %tmp2388 = getelementptr %struct.system__secondary_stack__mark_id* %tmp55, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp2389 = load i32* %tmp2388 ; <i32> [#uses=2] - %tmp2390 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=3] - %tmp2393 = icmp ult i8 %tmp306307, %tmp170171 ; <i1> [#uses=1] - br i1 %tmp2393, label %cond_next2417, label %cond_true2396 - -cond_true2396: ; preds = %invcont2382 - %tmp2399 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %tmp2403 = icmp ugt i8 %tmp306307, %tmp272273 ; <i1> [#uses=1] - %tmp2407 = or i1 %tmp2403, %tmp2399 ; <i1> [#uses=1] - br i1 %tmp2407, label %cond_true2410, label %cond_next2417 - -cond_true2410: ; preds = %cond_true2396 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 177 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2411 - -unwind2411: ; preds = %invcont2591, %invcont2574, %bb2560, %bb2558, %bb2524, %bb2506, %cond_true2410 - %eh_ptr2412 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2414 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2412, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %tmp26315527 = ptrtoint i8* %tmp2386 to i32 ; <i32> [#uses=1] - %tmp263155275528 = zext i32 %tmp26315527 to i64 ; <i64> [#uses=1] - %tmp26345524 = zext i32 %tmp2389 to i64 ; <i64> [#uses=1] - %tmp263455245525 = shl i64 %tmp26345524, 32 ; <i64> [#uses=1] - %tmp263455245525.ins = or i64 %tmp263455245525, %tmp263155275528 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp263455245525.ins ) - to label %cleanup2644 unwind label %unwind2618 - -cond_next2417: ; preds = %cond_true2396, %invcont2382 - %tmp2493 = icmp ugt i8 %tmp170171, %tmp238239 ; <i1> [#uses=1] - %tmp2500 = icmp ugt i8 %tmp238239, %tmp306307 ; <i1> [#uses=1] - %bothcond5903 = or i1 %tmp2500, %tmp2493 ; <i1> [#uses=1] - br i1 %bothcond5903, label %bb2506, label %cond_next2515 - -bb2506: ; preds = %cond_next2417 - invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 180 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2411 - -cond_next2515: ; preds = %cond_next2417 - br i1 %tmp240, label %bb2524, label %bb2526 - -bb2524: ; preds = %cond_next2515 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 180 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2411 - -bb2526: ; preds = %cond_next2515 - br i1 %tmp274, label %bb2558, label %bb2560 - -bb2558: ; preds = %bb2526 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 182 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2411 - -bb2560: ; preds = %bb2526 - invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp58 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) ) - to label %invcont2574 unwind label %unwind2411 - -invcont2574: ; preds = %bb2560 - %tmp2576 = getelementptr %struct.string___XUP* %tmp58, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2577 = load i8** %tmp2576 ; <i8*> [#uses=1] - %tmp25775747 = ptrtoint i8* %tmp2577 to i32 ; <i32> [#uses=1] - %tmp257757475748 = zext i32 %tmp25775747 to i64 ; <i64> [#uses=1] - %tmp2579 = getelementptr %struct.string___XUP* %tmp58, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2580 = load %struct.string___XUB** %tmp2579 ; <%struct.string___XUB*> [#uses=1] - %tmp25805743 = ptrtoint %struct.string___XUB* %tmp2580 to i32 ; <i32> [#uses=1] - %tmp258057435744 = zext i32 %tmp25805743 to i64 ; <i64> [#uses=1] - %tmp2580574357445745 = shl i64 %tmp258057435744, 32 ; <i64> [#uses=1] - %tmp2580574357445745.ins = or i64 %tmp2580574357445745, %tmp257757475748 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp61 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str17 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp2580574357445745.ins ) - to label %invcont2591 unwind label %unwind2411 - -invcont2591: ; preds = %invcont2574 - %tmp2593 = getelementptr %struct.string___XUP* %tmp61, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2594 = load i8** %tmp2593 ; <i8*> [#uses=1] - %tmp25945735 = ptrtoint i8* %tmp2594 to i32 ; <i32> [#uses=1] - %tmp259457355736 = zext i32 %tmp25945735 to i64 ; <i64> [#uses=1] - %tmp2596 = getelementptr %struct.string___XUP* %tmp61, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2597 = load %struct.string___XUB** %tmp2596 ; <%struct.string___XUB*> [#uses=1] - %tmp25975731 = ptrtoint %struct.string___XUB* %tmp2597 to i32 ; <i32> [#uses=1] - %tmp259757315732 = zext i32 %tmp25975731 to i64 ; <i64> [#uses=1] - %tmp2597573157325733 = shl i64 %tmp259757315732, 32 ; <i64> [#uses=1] - %tmp2597573157325733.ins = or i64 %tmp2597573157325733, %tmp259457355736 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp2597573157325733.ins ) - to label %cleanup2604 unwind label %unwind2411 - -cleanup2604: ; preds = %invcont2591 - %tmp26105533 = ptrtoint i8* %tmp2386 to i32 ; <i32> [#uses=1] - %tmp261055335534 = zext i32 %tmp26105533 to i64 ; <i64> [#uses=1] - %tmp26135530 = zext i32 %tmp2389 to i64 ; <i64> [#uses=1] - %tmp261355305531 = shl i64 %tmp26135530, 32 ; <i64> [#uses=1] - %tmp261355305531.ins = or i64 %tmp261355305531, %tmp261055335534 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp261355305531.ins ) - to label %cleanup2642 unwind label %unwind2618 - -unwind2618: ; preds = %cleanup2604, %unwind2411 - %eh_ptr2619 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2621 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2619, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - call void @llvm.stackrestore( i8* %tmp2390 ) - %eh_typeid26493 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp26514 = icmp eq i32 %eh_select2621, %eh_typeid26493 ; <i1> [#uses=1] - br i1 %tmp26514, label %eh_then2652, label %eh_else2666 - -cleanup2642: ; preds = %cleanup2604 - call void @llvm.stackrestore( i8* %tmp2390 ) - %tmp26946042 = icmp ult i8 %tmp238239, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp26946042, label %cond_next2718, label %cond_true2697 - -cleanup2644: ; preds = %unwind2411 - call void @llvm.stackrestore( i8* %tmp2390 ) - %eh_typeid2649 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp2651 = icmp eq i32 %eh_select2414, %eh_typeid2649 ; <i1> [#uses=1] - br i1 %tmp2651, label %eh_then2652, label %eh_else2666 - -eh_then2652: ; preds = %cleanup2644, %unwind2618, %unwind2378 - %eh_exception.296030.0 = phi i8* [ %eh_ptr2379, %unwind2378 ], [ %eh_ptr2619, %unwind2618 ], [ %eh_ptr2412, %cleanup2644 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.296030.0 ) - to label %invcont2658 unwind label %unwind2656 - -unwind2656: ; preds = %invcont2658, %eh_then2652 - %eh_ptr2657 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.296030.0 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2657 ) ; <i32>:10 [#uses=0] - unreachable - -invcont2658: ; preds = %eh_then2652 - %tmp2659 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2659( ) - to label %cleanup2662 unwind label %unwind2656 - -cleanup2662: ; preds = %invcont2658 - call void @__gnat_end_handler( i8* %eh_exception.296030.0 ) - %tmp26946043 = icmp ult i8 %tmp238239, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp26946043, label %cond_next2718, label %cond_true2697 - -eh_else2666: ; preds = %cleanup2644, %unwind2618, %unwind2378 - %eh_selector.256028.1 = phi i32 [ %eh_select2381, %unwind2378 ], [ %eh_select2621, %unwind2618 ], [ %eh_select2414, %cleanup2644 ] ; <i32> [#uses=1] - %eh_exception.296030.1 = phi i8* [ %eh_ptr2379, %unwind2378 ], [ %eh_ptr2619, %unwind2618 ], [ %eh_ptr2412, %cleanup2644 ] ; <i8*> [#uses=4] - %eh_typeid2667 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp2669 = icmp eq i32 %eh_selector.256028.1, %eh_typeid2667 ; <i1> [#uses=1] - br i1 %tmp2669, label %eh_then2670, label %Unwind - -eh_then2670: ; preds = %eh_else2666 - invoke void @__gnat_begin_handler( i8* %eh_exception.296030.1 ) - to label %invcont2676 unwind label %unwind2674 - -unwind2674: ; preds = %invcont2678, %invcont2676, %eh_then2670 - %eh_ptr2675 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.296030.1 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2675 ) ; <i32>:11 [#uses=0] - unreachable - -invcont2676: ; preds = %eh_then2670 - %tmp2677 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2677( ) - to label %invcont2678 unwind label %unwind2674 - -invcont2678: ; preds = %invcont2676 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str18 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) ) - to label %cleanup2687 unwind label %unwind2674 - -cleanup2687: ; preds = %invcont2678 - call void @__gnat_end_handler( i8* %eh_exception.296030.1 ) - %tmp2694 = icmp ult i8 %tmp238239, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp2694, label %cond_next2718, label %cond_true2697 - -cond_true2697: ; preds = %cleanup2687, %cleanup2662, %cleanup2642 - %tmp2700 = icmp ult i8 %tmp137138, %tmp204205 ; <i1> [#uses=1] - %tmp2704 = icmp ugt i8 %tmp238239, %tmp272273 ; <i1> [#uses=1] - %tmp2708 = or i1 %tmp2704, %tmp2700 ; <i1> [#uses=1] - br i1 %tmp2708, label %cond_true2711, label %cond_next2718 - -cond_true2711: ; preds = %cond_true2697 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 192 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2712 - -unwind2712: ; preds = %cleanup2990, %unwind2975, %cond_true2711 - %eh_ptr2713 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2715 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2713, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid29996053 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp30016055 = icmp eq i32 %eh_select2715, %eh_typeid29996053 ; <i1> [#uses=1] - br i1 %tmp30016055, label %eh_then3002, label %eh_else3016 - -cond_next2718: ; preds = %cond_true2697, %cleanup2687, %cleanup2662, %cleanup2642 - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp63 sret ) - to label %invcont2766 unwind label %unwind2762 - -unwind2762: ; preds = %cond_next2718 - %eh_ptr2763 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2765 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2763, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid29686060 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp29706061 = icmp eq i32 %eh_select2765, %eh_typeid29686060 ; <i1> [#uses=1] - br i1 %tmp29706061, label %eh_then2971, label %cleanup2998 - -invcont2766: ; preds = %cond_next2718 - %tmp2769 = getelementptr %struct.system__secondary_stack__mark_id* %tmp63, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2770 = load i8** %tmp2769 ; <i8*> [#uses=2] - %tmp2772 = getelementptr %struct.system__secondary_stack__mark_id* %tmp63, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp2773 = load i32* %tmp2772 ; <i32> [#uses=2] - %tmp2774 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=3] - %tmp2808 = icmp ugt i8 %tmp137138, %tmp204205 ; <i1> [#uses=1] - %tmp2815 = icmp ult i8 %tmp238239, %tmp204205 ; <i1> [#uses=1] - %bothcond5904 = or i1 %tmp2815, %tmp2808 ; <i1> [#uses=1] - br i1 %bothcond5904, label %bb2821, label %cond_next2834 - -bb2821: ; preds = %invcont2766 - invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 198 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2822 - -unwind2822: ; preds = %invcont2910, %invcont2893, %bb2879, %bb2877, %bb2843, %bb2821 - %eh_ptr2823 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2825 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2823, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %tmp29295521 = ptrtoint i8* %tmp2770 to i32 ; <i32> [#uses=1] - %tmp292955215522 = zext i32 %tmp29295521 to i64 ; <i64> [#uses=1] - %tmp29325518 = zext i32 %tmp2773 to i64 ; <i64> [#uses=1] - %tmp293255185519 = shl i64 %tmp29325518, 32 ; <i64> [#uses=1] - %tmp293255185519.ins = or i64 %tmp293255185519, %tmp292955215522 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp293255185519.ins ) - to label %cleanup2963 unwind label %unwind2937 - -cond_next2834: ; preds = %invcont2766 - br i1 %tmp206, label %bb2843, label %bb2845 - -bb2843: ; preds = %cond_next2834 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 198 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2822 - -bb2845: ; preds = %cond_next2834 - br i1 %tmp274, label %bb2877, label %bb2879 - -bb2877: ; preds = %bb2845 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 200 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind2822 - -bb2879: ; preds = %bb2845 - invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp66 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) ) - to label %invcont2893 unwind label %unwind2822 - -invcont2893: ; preds = %bb2879 - %tmp2895 = getelementptr %struct.string___XUP* %tmp66, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2896 = load i8** %tmp2895 ; <i8*> [#uses=1] - %tmp28965718 = ptrtoint i8* %tmp2896 to i32 ; <i32> [#uses=1] - %tmp289657185719 = zext i32 %tmp28965718 to i64 ; <i64> [#uses=1] - %tmp2898 = getelementptr %struct.string___XUP* %tmp66, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2899 = load %struct.string___XUB** %tmp2898 ; <%struct.string___XUB*> [#uses=1] - %tmp28995714 = ptrtoint %struct.string___XUB* %tmp2899 to i32 ; <i32> [#uses=1] - %tmp289957145715 = zext i32 %tmp28995714 to i64 ; <i64> [#uses=1] - %tmp2899571457155716 = shl i64 %tmp289957145715, 32 ; <i64> [#uses=1] - %tmp2899571457155716.ins = or i64 %tmp2899571457155716, %tmp289657185719 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp69 sret , i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str19 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)), i64 %tmp2899571457155716.ins ) - to label %invcont2910 unwind label %unwind2822 - -invcont2910: ; preds = %invcont2893 - %tmp2912 = getelementptr %struct.string___XUP* %tmp69, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp2913 = load i8** %tmp2912 ; <i8*> [#uses=1] - %tmp29135706 = ptrtoint i8* %tmp2913 to i32 ; <i32> [#uses=1] - %tmp291357065707 = zext i32 %tmp29135706 to i64 ; <i64> [#uses=1] - %tmp2915 = getelementptr %struct.string___XUP* %tmp69, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp2916 = load %struct.string___XUB** %tmp2915 ; <%struct.string___XUB*> [#uses=1] - %tmp29165702 = ptrtoint %struct.string___XUB* %tmp2916 to i32 ; <i32> [#uses=1] - %tmp291657025703 = zext i32 %tmp29165702 to i64 ; <i64> [#uses=1] - %tmp2916570257035704 = shl i64 %tmp291657025703, 32 ; <i64> [#uses=1] - %tmp2916570257035704.ins = or i64 %tmp2916570257035704, %tmp291357065707 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp2916570257035704.ins ) - to label %cleanup2943 unwind label %unwind2822 - -unwind2937: ; preds = %cleanup2943, %unwind2822 - %eh_ptr2938 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select2940 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2938, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - call void @llvm.stackrestore( i8* %tmp2774 ) - %eh_typeid29685 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp29706 = icmp eq i32 %eh_select2940, %eh_typeid29685 ; <i1> [#uses=1] - br i1 %tmp29706, label %eh_then2971, label %cleanup2998 - -cleanup2943: ; preds = %invcont2910 - %tmp29505515 = ptrtoint i8* %tmp2770 to i32 ; <i32> [#uses=1] - %tmp295055155516 = zext i32 %tmp29505515 to i64 ; <i64> [#uses=1] - %tmp29535512 = zext i32 %tmp2773 to i64 ; <i64> [#uses=1] - %tmp295355125513 = shl i64 %tmp29535512, 32 ; <i64> [#uses=1] - %tmp295355125513.ins = or i64 %tmp295355125513, %tmp295055155516 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp295355125513.ins ) - to label %cleanup2961 unwind label %unwind2937 - -cleanup2961: ; preds = %cleanup2943 - call void @llvm.stackrestore( i8* %tmp2774 ) - %tmp3044.not6066 = icmp uge i8 %tmp272273, %tmp170171 ; <i1> [#uses=1] - %tmp30506067 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %bothcond59056068 = and i1 %tmp3044.not6066, %tmp30506067 ; <i1> [#uses=1] - br i1 %bothcond59056068, label %cond_true3061, label %cond_next3068 - -cleanup2963: ; preds = %unwind2822 - call void @llvm.stackrestore( i8* %tmp2774 ) - %eh_typeid2968 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp2970 = icmp eq i32 %eh_select2825, %eh_typeid2968 ; <i1> [#uses=1] - br i1 %tmp2970, label %eh_then2971, label %cleanup2998 - -eh_then2971: ; preds = %cleanup2963, %unwind2937, %unwind2762 - %eh_exception.356056.0 = phi i8* [ %eh_ptr2763, %unwind2762 ], [ %eh_ptr2938, %unwind2937 ], [ %eh_ptr2823, %cleanup2963 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.356056.0 ) - to label %invcont2979 unwind label %unwind2975 - -unwind2975: ; preds = %invcont2981, %invcont2979, %eh_then2971 - %eh_ptr2976 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select2978 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr2976, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.356056.0 ) - to label %cleanup2998 unwind label %unwind2712 - -invcont2979: ; preds = %eh_then2971 - %tmp2980 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp2980( ) - to label %invcont2981 unwind label %unwind2975 - -invcont2981: ; preds = %invcont2979 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([46 x i8]* @.str20 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.101.1473 to i32) to i64), i64 32)) ) - to label %cleanup2990 unwind label %unwind2975 - -cleanup2990: ; preds = %invcont2981 - invoke void @__gnat_end_handler( i8* %eh_exception.356056.0 ) - to label %finally2997 unwind label %unwind2712 - -cleanup2998: ; preds = %unwind2975, %cleanup2963, %unwind2937, %unwind2762 - %eh_selector.29 = phi i32 [ %eh_select2765, %unwind2762 ], [ %eh_select2940, %unwind2937 ], [ %eh_select2825, %cleanup2963 ], [ %eh_select2978, %unwind2975 ] ; <i32> [#uses=2] - %eh_exception.33 = phi i8* [ %eh_ptr2763, %unwind2762 ], [ %eh_ptr2938, %unwind2937 ], [ %eh_ptr2823, %cleanup2963 ], [ %eh_ptr2976, %unwind2975 ] ; <i8*> [#uses=2] - %eh_typeid2999 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp3001 = icmp eq i32 %eh_selector.29, %eh_typeid2999 ; <i1> [#uses=1] - br i1 %tmp3001, label %eh_then3002, label %eh_else3016 - -eh_then3002: ; preds = %cleanup2998, %unwind2712 - %eh_exception.336046.0 = phi i8* [ %eh_ptr2713, %unwind2712 ], [ %eh_exception.33, %cleanup2998 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.336046.0 ) - to label %invcont3008 unwind label %unwind3006 - -unwind3006: ; preds = %invcont3008, %eh_then3002 - %eh_ptr3007 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.336046.0 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3007 ) ; <i32>:12 [#uses=0] - unreachable - -invcont3008: ; preds = %eh_then3002 - %tmp3009 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3009( ) - to label %cleanup3012 unwind label %unwind3006 - -cleanup3012: ; preds = %invcont3008 - call void @__gnat_end_handler( i8* %eh_exception.336046.0 ) - %tmp3044.not6069 = icmp uge i8 %tmp272273, %tmp170171 ; <i1> [#uses=1] - %tmp30506070 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %bothcond59056071 = and i1 %tmp3044.not6069, %tmp30506070 ; <i1> [#uses=1] - br i1 %bothcond59056071, label %cond_true3061, label %cond_next3068 - -eh_else3016: ; preds = %cleanup2998, %unwind2712 - %eh_selector.296044.1 = phi i32 [ %eh_select2715, %unwind2712 ], [ %eh_selector.29, %cleanup2998 ] ; <i32> [#uses=1] - %eh_exception.336046.1 = phi i8* [ %eh_ptr2713, %unwind2712 ], [ %eh_exception.33, %cleanup2998 ] ; <i8*> [#uses=4] - %eh_typeid3017 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp3019 = icmp eq i32 %eh_selector.296044.1, %eh_typeid3017 ; <i1> [#uses=1] - br i1 %tmp3019, label %eh_then3020, label %Unwind - -eh_then3020: ; preds = %eh_else3016 - invoke void @__gnat_begin_handler( i8* %eh_exception.336046.1 ) - to label %invcont3026 unwind label %unwind3024 - -unwind3024: ; preds = %invcont3028, %invcont3026, %eh_then3020 - %eh_ptr3025 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.336046.1 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3025 ) ; <i32>:13 [#uses=0] - unreachable - -invcont3026: ; preds = %eh_then3020 - %tmp3027 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3027( ) - to label %invcont3028 unwind label %unwind3024 - -invcont3028: ; preds = %invcont3026 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([25 x i8]* @.str21 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.104.1478 to i32) to i64), i64 32)) ) - to label %cleanup3037 unwind label %unwind3024 - -cleanup3037: ; preds = %invcont3028 - call void @__gnat_end_handler( i8* %eh_exception.336046.1 ) - br label %finally2997 - -finally2997: ; preds = %cleanup3037, %cleanup2990 - %tmp3044.not = icmp uge i8 %tmp272273, %tmp170171 ; <i1> [#uses=1] - %tmp3050 = icmp ult i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %bothcond5905 = and i1 %tmp3044.not, %tmp3050 ; <i1> [#uses=1] - br i1 %bothcond5905, label %cond_true3061, label %cond_next3068 - -cond_true3061: ; preds = %finally2997, %cleanup3012, %cleanup2961 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 214 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3062 - -unwind3062: ; preds = %cleanup3340, %unwind3325, %cond_true3061 - %eh_ptr3063 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select3065 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3063, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid33496081 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp33516083 = icmp eq i32 %eh_select3065, %eh_typeid33496081 ; <i1> [#uses=1] - br i1 %tmp33516083, label %eh_then3352, label %eh_else3366 - -cond_next3068: ; preds = %finally2997, %cleanup3012, %cleanup2961 - invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp72 sret ) - to label %invcont3116 unwind label %unwind3112 - -unwind3112: ; preds = %cond_next3068 - %eh_ptr3113 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select3115 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3113, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %eh_typeid33186088 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp33206089 = icmp eq i32 %eh_select3115, %eh_typeid33186088 ; <i1> [#uses=1] - br i1 %tmp33206089, label %eh_then3321, label %cleanup3348 - -invcont3116: ; preds = %cond_next3068 - %tmp3119 = getelementptr %struct.system__secondary_stack__mark_id* %tmp72, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp3120 = load i8** %tmp3119 ; <i8*> [#uses=2] - %tmp3122 = getelementptr %struct.system__secondary_stack__mark_id* %tmp72, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp3123 = load i32* %tmp3122 ; <i32> [#uses=2] - %tmp3124 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=3] - %tmp3158 = icmp ugt i8 %tmp170171, %tmp204205 ; <i1> [#uses=1] - %bothcond5906 = or i1 %tmp364, %tmp3158 ; <i1> [#uses=1] - br i1 %bothcond5906, label %bb3171, label %cond_next3184 - -bb3171: ; preds = %invcont3116 - invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 220 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3172 - -unwind3172: ; preds = %invcont3260, %invcont3243, %bb3229, %bb3227, %bb3193, %bb3171 - %eh_ptr3173 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select3175 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3173, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - %tmp32795509 = ptrtoint i8* %tmp3120 to i32 ; <i32> [#uses=1] - %tmp327955095510 = zext i32 %tmp32795509 to i64 ; <i64> [#uses=1] - %tmp32825506 = zext i32 %tmp3123 to i64 ; <i64> [#uses=1] - %tmp328255065507 = shl i64 %tmp32825506, 32 ; <i64> [#uses=1] - %tmp328255065507.ins = or i64 %tmp328255065507, %tmp327955095510 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp328255065507.ins ) - to label %cleanup3313 unwind label %unwind3287 - -cond_next3184: ; preds = %invcont3116 - br i1 %tmp206, label %bb3193, label %bb3195 - -bb3193: ; preds = %cond_next3184 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 220 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3172 - -bb3195: ; preds = %cond_next3184 - br i1 %tmp274, label %bb3227, label %bb3229 - -bb3227: ; preds = %bb3195 - invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 222 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3172 - -bb3229: ; preds = %bb3195 - invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp75 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) ) - to label %invcont3243 unwind label %unwind3172 - -invcont3243: ; preds = %bb3229 - %tmp3245 = getelementptr %struct.string___XUP* %tmp75, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp3246 = load i8** %tmp3245 ; <i8*> [#uses=1] - %tmp32465684 = ptrtoint i8* %tmp3246 to i32 ; <i32> [#uses=1] - %tmp324656845685 = zext i32 %tmp32465684 to i64 ; <i64> [#uses=1] - %tmp3248 = getelementptr %struct.string___XUP* %tmp75, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp3249 = load %struct.string___XUB** %tmp3248 ; <%struct.string___XUB*> [#uses=1] - %tmp32495680 = ptrtoint %struct.string___XUB* %tmp3249 to i32 ; <i32> [#uses=1] - %tmp324956805681 = zext i32 %tmp32495680 to i64 ; <i64> [#uses=1] - %tmp3249568056815682 = shl i64 %tmp324956805681, 32 ; <i64> [#uses=1] - %tmp3249568056815682.ins = or i64 %tmp3249568056815682, %tmp324656845685 ; <i64> [#uses=1] - invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp78 sret , i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str22 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)), i64 %tmp3249568056815682.ins ) - to label %invcont3260 unwind label %unwind3172 - -invcont3260: ; preds = %invcont3243 - %tmp3262 = getelementptr %struct.string___XUP* %tmp78, i32 0, i32 0 ; <i8**> [#uses=1] - %tmp3263 = load i8** %tmp3262 ; <i8*> [#uses=1] - %tmp32635672 = ptrtoint i8* %tmp3263 to i32 ; <i32> [#uses=1] - %tmp326356725673 = zext i32 %tmp32635672 to i64 ; <i64> [#uses=1] - %tmp3265 = getelementptr %struct.string___XUP* %tmp78, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1] - %tmp3266 = load %struct.string___XUB** %tmp3265 ; <%struct.string___XUB*> [#uses=1] - %tmp32665668 = ptrtoint %struct.string___XUB* %tmp3266 to i32 ; <i32> [#uses=1] - %tmp326656685669 = zext i32 %tmp32665668 to i64 ; <i64> [#uses=1] - %tmp3266566856695670 = shl i64 %tmp326656685669, 32 ; <i64> [#uses=1] - %tmp3266566856695670.ins = or i64 %tmp3266566856695670, %tmp326356725673 ; <i64> [#uses=1] - invoke void @report__failed( i64 %tmp3266566856695670.ins ) - to label %cleanup3293 unwind label %unwind3172 - -unwind3287: ; preds = %cleanup3293, %unwind3172 - %eh_ptr3288 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=3] - %eh_select3290 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3288, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=2] - call void @llvm.stackrestore( i8* %tmp3124 ) - %eh_typeid33187 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp33208 = icmp eq i32 %eh_select3290, %eh_typeid33187 ; <i1> [#uses=1] - br i1 %tmp33208, label %eh_then3321, label %cleanup3348 - -cleanup3293: ; preds = %invcont3260 - %tmp33005503 = ptrtoint i8* %tmp3120 to i32 ; <i32> [#uses=1] - %tmp330055035504 = zext i32 %tmp33005503 to i64 ; <i64> [#uses=1] - %tmp33035500 = zext i32 %tmp3123 to i64 ; <i64> [#uses=1] - %tmp330355005501 = shl i64 %tmp33035500, 32 ; <i64> [#uses=1] - %tmp330355005501.ins = or i64 %tmp330355005501, %tmp330055035504 ; <i64> [#uses=1] - invoke void @system__secondary_stack__ss_release( i64 %tmp330355005501.ins ) - to label %cleanup3311 unwind label %unwind3287 - -cleanup3311: ; preds = %cleanup3293 - call void @llvm.stackrestore( i8* %tmp3124 ) - br label %finally3347 - -cleanup3313: ; preds = %unwind3172 - call void @llvm.stackrestore( i8* %tmp3124 ) - %eh_typeid3318 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp3320 = icmp eq i32 %eh_select3175, %eh_typeid3318 ; <i1> [#uses=1] - br i1 %tmp3320, label %eh_then3321, label %cleanup3348 - -eh_then3321: ; preds = %cleanup3313, %unwind3287, %unwind3112 - %eh_exception.416084.0 = phi i8* [ %eh_ptr3113, %unwind3112 ], [ %eh_ptr3288, %unwind3287 ], [ %eh_ptr3173, %cleanup3313 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.416084.0 ) - to label %invcont3329 unwind label %unwind3325 - -unwind3325: ; preds = %invcont3331, %invcont3329, %eh_then3321 - %eh_ptr3326 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2] - %eh_select3328 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3326, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value ) ; <i32> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_exception.416084.0 ) - to label %cleanup3348 unwind label %unwind3062 - -invcont3329: ; preds = %eh_then3321 - %tmp3330 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3330( ) - to label %invcont3331 unwind label %unwind3325 - -invcont3331: ; preds = %invcont3329 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([46 x i8]* @.str20 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.101.1473 to i32) to i64), i64 32)) ) - to label %cleanup3340 unwind label %unwind3325 - -cleanup3340: ; preds = %invcont3331 - invoke void @__gnat_end_handler( i8* %eh_exception.416084.0 ) - to label %finally3347 unwind label %unwind3062 - -cleanup3348: ; preds = %unwind3325, %cleanup3313, %unwind3287, %unwind3112 - %eh_selector.35 = phi i32 [ %eh_select3115, %unwind3112 ], [ %eh_select3290, %unwind3287 ], [ %eh_select3175, %cleanup3313 ], [ %eh_select3328, %unwind3325 ] ; <i32> [#uses=2] - %eh_exception.39 = phi i8* [ %eh_ptr3113, %unwind3112 ], [ %eh_ptr3288, %unwind3287 ], [ %eh_ptr3173, %cleanup3313 ], [ %eh_ptr3326, %unwind3325 ] ; <i8*> [#uses=2] - %eh_typeid3349 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1] - %tmp3351 = icmp eq i32 %eh_selector.35, %eh_typeid3349 ; <i1> [#uses=1] - br i1 %tmp3351, label %eh_then3352, label %eh_else3366 - -eh_then3352: ; preds = %cleanup3348, %unwind3062 - %eh_exception.396074.0 = phi i8* [ %eh_ptr3063, %unwind3062 ], [ %eh_exception.39, %cleanup3348 ] ; <i8*> [#uses=3] - invoke void @__gnat_begin_handler( i8* %eh_exception.396074.0 ) - to label %invcont3358 unwind label %unwind3356 - -unwind3356: ; preds = %invcont3358, %eh_then3352 - %eh_ptr3357 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.396074.0 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3357 ) ; <i32>:14 [#uses=0] - unreachable - -invcont3358: ; preds = %eh_then3352 - %tmp3359 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3359( ) - to label %cleanup3362 unwind label %unwind3356 - -cleanup3362: ; preds = %invcont3358 - call void @__gnat_end_handler( i8* %eh_exception.396074.0 ) - br label %finally3347 - -eh_else3366: ; preds = %cleanup3348, %unwind3062 - %eh_selector.356072.1 = phi i32 [ %eh_select3065, %unwind3062 ], [ %eh_selector.35, %cleanup3348 ] ; <i32> [#uses=1] - %eh_exception.396074.1 = phi i8* [ %eh_ptr3063, %unwind3062 ], [ %eh_exception.39, %cleanup3348 ] ; <i8*> [#uses=4] - %eh_typeid3367 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp3369 = icmp eq i32 %eh_selector.356072.1, %eh_typeid3367 ; <i1> [#uses=1] - br i1 %tmp3369, label %eh_then3370, label %Unwind - -eh_then3370: ; preds = %eh_else3366 - invoke void @__gnat_begin_handler( i8* %eh_exception.396074.1 ) - to label %invcont3376 unwind label %unwind3374 - -unwind3374: ; preds = %invcont3378, %invcont3376, %eh_then3370 - %eh_ptr3375 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_exception.396074.1 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3375 ) ; <i32>:15 [#uses=0] - unreachable - -invcont3376: ; preds = %eh_then3370 - %tmp3377 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3377( ) - to label %invcont3378 unwind label %unwind3374 - -invcont3378: ; preds = %invcont3376 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([25 x i8]* @.str23 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.104.1478 to i32) to i64), i64 32)) ) - to label %cleanup3387 unwind label %unwind3374 - -cleanup3387: ; preds = %invcont3378 - call void @__gnat_end_handler( i8* %eh_exception.396074.1 ) - br label %finally3347 - -finally3347: ; preds = %cleanup3387, %cleanup3362, %cleanup3340, %cleanup3311 - %tmp3392 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=2] - %tmp3398 = invoke i32 @report__ident_int( i32 -5 ) - to label %invcont3397 unwind label %unwind3393 ; <i32> [#uses=4] - -unwind3393: ; preds = %cond_true3555, %cond_true3543, %cond_next3451, %cond_true3448, %cond_true3420, %finally3347 - %eh_ptr3394 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select3396 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3394, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - call void @llvm.stackrestore( i8* %tmp3392 ) - %eh_typeid3571 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp3573 = icmp eq i32 %eh_select3396, %eh_typeid3571 ; <i1> [#uses=1] - br i1 %tmp3573, label %eh_then3574, label %Unwind - -invcont3397: ; preds = %finally3347 - %tmp3405 = icmp slt i32 %tmp3398, %tmp384 ; <i1> [#uses=2] - %tmp3413 = icmp sgt i32 %tmp3398, %tmp394 ; <i1> [#uses=1] - %tmp3417 = or i1 %tmp3405, %tmp3413 ; <i1> [#uses=1] - br i1 %tmp3417, label %cond_true3420, label %cond_next3422 - -cond_true3420: ; preds = %invcont3397 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 238 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3393 - -cond_next3422: ; preds = %invcont3397 - %tmp3426 = icmp slt i32 %tmp3398, -5 ; <i1> [#uses=1] - br i1 %tmp3426, label %cond_true3429, label %cond_next3451 - -cond_true3429: ; preds = %cond_next3422 - %tmp3441 = icmp slt i32 %tmp394, -6 ; <i1> [#uses=1] - %tmp3445 = or i1 %tmp3405, %tmp3441 ; <i1> [#uses=1] - br i1 %tmp3445, label %cond_true3448, label %cond_next3451 - -cond_true3448: ; preds = %cond_true3429 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 238 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3393 - -cond_next3451: ; preds = %cond_true3429, %cond_next3422 - %tmp3521 = invoke i32 @report__ident_int( i32 -5 ) - to label %invcont3520 unwind label %unwind3393 ; <i32> [#uses=3] - -invcont3520: ; preds = %cond_next3451 - %tmp3528 = icmp slt i32 %tmp3521, %tmp384 ; <i1> [#uses=1] - %tmp3536 = icmp sgt i32 %tmp3521, %tmp394 ; <i1> [#uses=1] - %tmp3540 = or i1 %tmp3528, %tmp3536 ; <i1> [#uses=1] - br i1 %tmp3540, label %cond_true3543, label %cond_next3545 - -cond_true3543: ; preds = %invcont3520 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 241 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3393 - -cond_next3545: ; preds = %invcont3520 - %tmp3552 = icmp eq i32 %tmp3398, %tmp3521 ; <i1> [#uses=1] - br i1 %tmp3552, label %cleanup3565, label %cond_true3555 - -cond_true3555: ; preds = %cond_next3545 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str24 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)) ) - to label %cleanup3565 unwind label %unwind3393 - -cleanup3565: ; preds = %cond_true3555, %cond_next3545 - call void @llvm.stackrestore( i8* %tmp3392 ) - %tmp36006095 = icmp ult i8 %tmp137138, %sat.45934.0 ; <i1> [#uses=1] - br i1 %tmp36006095, label %cond_next3624, label %cond_true3603 - -eh_then3574: ; preds = %unwind3393 - invoke void @__gnat_begin_handler( i8* %eh_ptr3394 ) - to label %invcont3580 unwind label %unwind3578 - -unwind3578: ; preds = %invcont3582, %invcont3580, %eh_then3574 - %eh_ptr3579 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr3394 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3579 ) ; <i32>:16 [#uses=0] - unreachable - -invcont3580: ; preds = %eh_then3574 - %tmp3581 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3581( ) - to label %invcont3582 unwind label %unwind3578 - -invcont3582: ; preds = %invcont3580 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str25 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) ) - to label %cleanup3591 unwind label %unwind3578 - -cleanup3591: ; preds = %invcont3582 - call void @__gnat_end_handler( i8* %eh_ptr3394 ) - %tmp3600 = icmp ult i8 %tmp137138, %sat.45934.0 ; <i1> [#uses=1] - br i1 %tmp3600, label %cond_next3624, label %cond_true3603 - -cond_true3603: ; preds = %cleanup3591, %cleanup3565 - %tmp3606 = icmp ult i8 %sat.45934.0, %tmp204205 ; <i1> [#uses=1] - %tmp3610 = icmp ugt i8 %tmp137138, %tmp272273 ; <i1> [#uses=1] - %tmp3614 = or i1 %tmp3606, %tmp3610 ; <i1> [#uses=1] - br i1 %tmp3614, label %cond_true3617, label %cond_next3624 - -cond_true3617: ; preds = %cond_true3603 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 250 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3618 - -unwind3618: ; preds = %bb3743, %cond_true3729, %bb3689, %cond_true3675, %bb3635, %cond_true3617 - %wed.3 = phi i8 [ %tmp238239, %cond_true3617 ], [ %wed.1, %bb3743 ], [ %tmp238239, %bb3689 ], [ %tmp238239, %bb3635 ], [ %tmp238239, %cond_true3675 ], [ %tmp238239, %cond_true3729 ] ; <i8> [#uses=1] - %tue.3 = phi i8 [ %tmp204205, %cond_true3617 ], [ %tue.2, %bb3743 ], [ %tue.2, %bb3689 ], [ %tue.1, %bb3635 ], [ %tue.2, %cond_true3675 ], [ %tue.2, %cond_true3729 ] ; <i8> [#uses=1] - %mon.3 = phi i8 [ %tmp170171, %cond_true3617 ], [ %mon.2, %bb3743 ], [ %mon.1, %bb3689 ], [ %tmp170171, %bb3635 ], [ %tmp170171, %cond_true3675 ], [ %mon.2, %cond_true3729 ] ; <i8> [#uses=1] - %eh_ptr3619 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select3621 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3619, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid3854 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp3856 = icmp eq i32 %eh_select3621, %eh_typeid3854 ; <i1> [#uses=1] - br i1 %tmp3856, label %eh_then3857, label %Unwind - -cond_next3624: ; preds = %cond_true3603, %cleanup3591, %cleanup3565 - %tmp3629 = icmp ugt i8 %sat.45934.0, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp3629, label %cond_next3653, label %bb3635 - -bb3635: ; preds = %cond_next3649, %cond_next3624 - %indvar6258 = phi i8 [ %indvar.next16, %cond_next3649 ], [ 0, %cond_next3624 ] ; <i8> [#uses=2] - %tue.1 = phi i8 [ %tue.0, %cond_next3649 ], [ %tmp204205, %cond_next3624 ] ; <i8> [#uses=2] - %tmp3637 = invoke i8 @report__equal( i32 2, i32 2 ) - to label %invcont3636 unwind label %unwind3618 ; <i8> [#uses=1] - -invcont3636: ; preds = %bb3635 - %i3633.4 = add i8 %indvar6258, %sat.45934.0 ; <i8> [#uses=1] - %tmp3638 = icmp eq i8 %tmp3637, 0 ; <i1> [#uses=1] - %tue.0 = select i1 %tmp3638, i8 %tue.1, i8 2 ; <i8> [#uses=2] - %tmp3645 = icmp eq i8 %i3633.4, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp3645, label %cond_next3653, label %cond_next3649 - -cond_next3649: ; preds = %invcont3636 - %indvar.next16 = add i8 %indvar6258, 1 ; <i8> [#uses=1] - br label %bb3635 - -cond_next3653: ; preds = %invcont3636, %cond_next3624 - %tue.2 = phi i8 [ %tmp204205, %cond_next3624 ], [ %tue.0, %invcont3636 ] ; <i8> [#uses=6] - %tmp3658 = icmp ult i8 %tmp238239, %tmp306307 ; <i1> [#uses=1] - br i1 %tmp3658, label %cond_next3678, label %cond_true3661 - -cond_true3661: ; preds = %cond_next3653 - %tmp3664 = icmp ult i8 %tmp306307, %tmp204205 ; <i1> [#uses=1] - %tmp3668 = icmp ugt i8 %tmp238239, %tmp272273 ; <i1> [#uses=1] - %tmp3672 = or i1 %tmp3664, %tmp3668 ; <i1> [#uses=1] - br i1 %tmp3672, label %cond_true3675, label %cond_next3678 - -cond_true3675: ; preds = %cond_true3661 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 257 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3618 - -cond_next3678: ; preds = %cond_true3661, %cond_next3653 - %tmp3683 = icmp ugt i8 %tmp306307, %tmp238239 ; <i1> [#uses=1] - br i1 %tmp3683, label %cond_next3707, label %bb3689 - -bb3689: ; preds = %cond_next3703, %cond_next3678 - %indvar6261 = phi i8 [ %indvar.next18, %cond_next3703 ], [ 0, %cond_next3678 ] ; <i8> [#uses=2] - %mon.1 = phi i8 [ %mon.0, %cond_next3703 ], [ %tmp170171, %cond_next3678 ] ; <i8> [#uses=2] - %tmp3691 = invoke i8 @report__equal( i32 2, i32 2 ) - to label %invcont3690 unwind label %unwind3618 ; <i8> [#uses=1] - -invcont3690: ; preds = %bb3689 - %i3687.4 = add i8 %indvar6261, %tmp306307 ; <i8> [#uses=1] - %tmp3692 = icmp eq i8 %tmp3691, 0 ; <i1> [#uses=1] - %mon.0 = select i1 %tmp3692, i8 %mon.1, i8 1 ; <i8> [#uses=2] - %tmp3699 = icmp eq i8 %i3687.4, %tmp238239 ; <i1> [#uses=1] - br i1 %tmp3699, label %cond_next3707, label %cond_next3703 - -cond_next3703: ; preds = %invcont3690 - %indvar.next18 = add i8 %indvar6261, 1 ; <i8> [#uses=1] - br label %bb3689 - -cond_next3707: ; preds = %invcont3690, %cond_next3678 - %mon.2 = phi i8 [ %tmp170171, %cond_next3678 ], [ %mon.0, %invcont3690 ] ; <i8> [#uses=8] - %tmp3712 = icmp ult i8 %tmp137138, %mon.2 ; <i1> [#uses=1] - br i1 %tmp3712, label %cond_next3732, label %cond_true3715 - -cond_true3715: ; preds = %cond_next3707 - %tmp3718 = icmp ult i8 %mon.2, %tmp204205 ; <i1> [#uses=1] - %tmp3722 = icmp ugt i8 %tmp137138, %tmp272273 ; <i1> [#uses=1] - %tmp3726 = or i1 %tmp3718, %tmp3722 ; <i1> [#uses=1] - br i1 %tmp3726, label %cond_true3729, label %cond_next3732 - -cond_true3729: ; preds = %cond_true3715 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 264 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3618 - -cond_next3732: ; preds = %cond_true3715, %cond_next3707 - %tmp3737 = icmp ugt i8 %mon.2, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp3737, label %finally3852, label %bb3743 - -bb3743: ; preds = %cond_next3757, %cond_next3732 - %indvar6265 = phi i8 [ %indvar.next20, %cond_next3757 ], [ 0, %cond_next3732 ] ; <i8> [#uses=2] - %wed.1 = phi i8 [ %wed.0, %cond_next3757 ], [ %tmp238239, %cond_next3732 ] ; <i8> [#uses=2] - %tmp3745 = invoke i8 @report__equal( i32 3, i32 3 ) - to label %invcont3744 unwind label %unwind3618 ; <i8> [#uses=1] - -invcont3744: ; preds = %bb3743 - %i3741.4 = add i8 %indvar6265, %mon.2 ; <i8> [#uses=1] - %tmp3746 = icmp eq i8 %tmp3745, 0 ; <i1> [#uses=1] - %wed.0 = select i1 %tmp3746, i8 %wed.1, i8 3 ; <i8> [#uses=2] - %tmp3753 = icmp eq i8 %i3741.4, %tmp137138 ; <i1> [#uses=1] - br i1 %tmp3753, label %finally3852, label %cond_next3757 - -cond_next3757: ; preds = %invcont3744 - %indvar.next20 = add i8 %indvar6265, 1 ; <i8> [#uses=1] - br label %bb3743 - -eh_then3857: ; preds = %unwind3618 - invoke void @__gnat_begin_handler( i8* %eh_ptr3619 ) - to label %invcont3863 unwind label %unwind3861 - -unwind3861: ; preds = %invcont3865, %invcont3863, %eh_then3857 - %eh_ptr3862 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr3619 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3862 ) ; <i32>:17 [#uses=0] - unreachable - -invcont3863: ; preds = %eh_then3857 - %tmp3864 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp3864( ) - to label %invcont3865 unwind label %unwind3861 - -invcont3865: ; preds = %invcont3863 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str26 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) ) - to label %cleanup3874 unwind label %unwind3861 - -cleanup3874: ; preds = %invcont3865 - call void @__gnat_end_handler( i8* %eh_ptr3619 ) - br label %finally3852 - -finally3852: ; preds = %cleanup3874, %invcont3744, %cond_next3732 - %wed.4 = phi i8 [ %wed.3, %cleanup3874 ], [ %tmp238239, %cond_next3732 ], [ %wed.0, %invcont3744 ] ; <i8> [#uses=4] - %tue.4 = phi i8 [ %tue.3, %cleanup3874 ], [ %tue.2, %cond_next3732 ], [ %tue.2, %invcont3744 ] ; <i8> [#uses=13] - %mon.4 = phi i8 [ %mon.3, %cleanup3874 ], [ %mon.2, %cond_next3732 ], [ %mon.2, %invcont3744 ] ; <i8> [#uses=18] - %tmp3885 = invoke i32 @report__ident_int( i32 -5 ) - to label %invcont3884 unwind label %unwind3880 ; <i32> [#uses=4] - -unwind3880: ; preds = %cond_true4138, %invcont4122, %cond_next4120, %cond_true4117, %cond_true4027, %cond_next3938, %cond_true3935, %cond_true3907, %finally3852 - %eh_ptr3881 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select3883 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr3881, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid4149 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp4151 = icmp eq i32 %eh_select3883, %eh_typeid4149 ; <i1> [#uses=1] - br i1 %tmp4151, label %eh_then4152, label %Unwind - -invcont3884: ; preds = %finally3852 - %tmp3892 = icmp slt i32 %tmp3885, %tmp384 ; <i1> [#uses=2] - %tmp3900 = icmp sgt i32 %tmp3885, %tmp394 ; <i1> [#uses=1] - %tmp3904 = or i1 %tmp3892, %tmp3900 ; <i1> [#uses=1] - br i1 %tmp3904, label %cond_true3907, label %cond_next3909 - -cond_true3907: ; preds = %invcont3884 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 312 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3880 - -cond_next3909: ; preds = %invcont3884 - %tmp3913 = icmp slt i32 %tmp3885, -5 ; <i1> [#uses=1] - br i1 %tmp3913, label %cond_true3916, label %cond_next3938 - -cond_true3916: ; preds = %cond_next3909 - %tmp3928 = icmp slt i32 %tmp394, -6 ; <i1> [#uses=1] - %tmp3932 = or i1 %tmp3892, %tmp3928 ; <i1> [#uses=1] - br i1 %tmp3932, label %cond_true3935, label %cond_next3938 - -cond_true3935: ; preds = %cond_true3916 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 312 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3880 - -cond_next3938: ; preds = %cond_true3916, %cond_next3909 - %tmp4005 = invoke i32 @report__ident_int( i32 -5 ) - to label %invcont4004 unwind label %unwind3880 ; <i32> [#uses=6] - -invcont4004: ; preds = %cond_next3938 - %tmp4012 = icmp slt i32 %tmp4005, %tmp384 ; <i1> [#uses=2] - %tmp4020 = icmp sgt i32 %tmp4005, %tmp394 ; <i1> [#uses=1] - %tmp4024 = or i1 %tmp4012, %tmp4020 ; <i1> [#uses=1] - br i1 %tmp4024, label %cond_true4027, label %cond_next4029 - -cond_true4027: ; preds = %invcont4004 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 313 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3880 - -cond_next4029: ; preds = %invcont4004 - %tmp4071 = icmp sgt i32 %tmp4005, -6 ; <i1> [#uses=1] - %tmp4078 = add i32 %tmp4005, 1073741823 ; <i32> [#uses=1] - %iftmp.132.0 = select i1 %tmp4071, i32 %tmp4078, i32 1073741818 ; <i32> [#uses=1] - %tmp4085 = sub i32 %iftmp.132.0, %tmp4005 ; <i32> [#uses=1] - %tmp4086 = shl i32 %tmp4085, 2 ; <i32> [#uses=2] - %tmp4087 = add i32 %tmp4086, 4 ; <i32> [#uses=1] - %tmp4088 = icmp sgt i32 %tmp4087, -1 ; <i1> [#uses=1] - %tmp4087.op = add i32 %tmp4086, 7 ; <i32> [#uses=1] - %tmp4087.op.op = and i32 %tmp4087.op, -4 ; <i32> [#uses=1] - %tmp4091 = select i1 %tmp4088, i32 %tmp4087.op.op, i32 0 ; <i32> [#uses=1] - %tmp4095 = icmp slt i32 %tmp4005, -5 ; <i1> [#uses=1] - br i1 %tmp4095, label %cond_true4098, label %cond_next4120 - -cond_true4098: ; preds = %cond_next4029 - %tmp4110 = icmp slt i32 %tmp394, -6 ; <i1> [#uses=1] - %tmp4114 = or i1 %tmp4012, %tmp4110 ; <i1> [#uses=1] - br i1 %tmp4114, label %cond_true4117, label %cond_next4120 - -cond_true4117: ; preds = %cond_true4098 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 313 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind3880 - -cond_next4120: ; preds = %cond_true4098, %cond_next4029 - %tmp4123 = invoke i8* @__gnat_malloc( i32 %tmp4091 ) - to label %invcont4122 unwind label %unwind3880 ; <i8*> [#uses=0] - -invcont4122: ; preds = %cond_next4120 - %tmp41254128 = sext i32 %tmp3885 to i64 ; <i64> [#uses=1] - %tmp4129 = sub i64 -5, %tmp41254128 ; <i64> [#uses=2] - %tmp4134 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont4133 unwind label %unwind3880 ; <i32> [#uses=1] - -invcont4133: ; preds = %invcont4122 - %tmp4130 = icmp sgt i64 %tmp4129, -1 ; <i1> [#uses=1] - %tmp4129.cast = trunc i64 %tmp4129 to i32 ; <i32> [#uses=1] - %max41314132 = select i1 %tmp4130, i32 %tmp4129.cast, i32 0 ; <i32> [#uses=1] - %tmp4135 = icmp eq i32 %max41314132, %tmp4134 ; <i1> [#uses=1] - br i1 %tmp4135, label %finally4147, label %cond_true4138 - -cond_true4138: ; preds = %invcont4133 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str27 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)) ) - to label %finally4147 unwind label %unwind3880 - -eh_then4152: ; preds = %unwind3880 - invoke void @__gnat_begin_handler( i8* %eh_ptr3881 ) - to label %invcont4158 unwind label %unwind4156 - -unwind4156: ; preds = %invcont4160, %invcont4158, %eh_then4152 - %eh_ptr4157 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr3881 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4157 ) ; <i32>:18 [#uses=0] - unreachable - -invcont4158: ; preds = %eh_then4152 - %tmp4159 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp4159( ) - to label %invcont4160 unwind label %unwind4156 - -invcont4160: ; preds = %invcont4158 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str28 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) ) - to label %cleanup4169 unwind label %unwind4156 - -cleanup4169: ; preds = %invcont4160 - call void @__gnat_end_handler( i8* %eh_ptr3881 ) - br label %finally4147 - -finally4147: ; preds = %cleanup4169, %cond_true4138, %invcont4133 - %tmp4174 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=3] - %tmp4180 = invoke i32 @report__ident_int( i32 4 ) - to label %invcont4179 unwind label %unwind4175 ; <i32> [#uses=6] - -unwind4175: ; preds = %cond_true4292, %cond_true4187, %finally4147 - %eh_ptr4176 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select4178 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr4176, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid4304 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp4306 = icmp eq i32 %eh_select4178, %eh_typeid4304 ; <i1> [#uses=1] - br i1 %tmp4306, label %eh_then4307, label %cleanup4334 - -invcont4179: ; preds = %finally4147 - %tmp4184 = icmp slt i32 %tmp4180, 1 ; <i1> [#uses=1] - br i1 %tmp4184, label %cond_true4187, label %cond_next4189 - -cond_true4187: ; preds = %invcont4179 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 329 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind4175 - -cond_next4189: ; preds = %invcont4179 - %tmp4231 = icmp sgt i32 %tmp4180, 2 ; <i1> [#uses=2] - %tmp4238 = add i32 %tmp4180, 1073741823 ; <i32> [#uses=1] - %iftmp.138.0 = select i1 %tmp4231, i32 %tmp4238, i32 2 ; <i32> [#uses=1] - %tmp4245 = sub i32 %iftmp.138.0, %tmp4180 ; <i32> [#uses=1] - %tmp4246 = shl i32 %tmp4245, 2 ; <i32> [#uses=2] - %tmp4247 = add i32 %tmp4246, 4 ; <i32> [#uses=1] - %tmp4248 = icmp sgt i32 %tmp4247, -1 ; <i1> [#uses=1] - %tmp4247.op = add i32 %tmp4246, 7 ; <i32> [#uses=1] - %tmp4247.op.op = and i32 %tmp4247.op, -4 ; <i32> [#uses=1] - %tmp4251 = select i1 %tmp4248, i32 %tmp4247.op.op, i32 0 ; <i32> [#uses=1] - %tmp4253 = alloca i8, i32 %tmp4251 ; <i8*> [#uses=2] - %tmp42534254 = bitcast i8* %tmp4253 to i32* ; <i32*> [#uses=1] - br i1 %tmp4231, label %bb4276, label %cond_next4266.preheader - -cond_next4266.preheader: ; preds = %cond_next4189 - %J152b.36147.3 = add i32 %tmp4180, 1 ; <i32> [#uses=1] - br label %cond_next4266 - -cond_next4266: ; preds = %cond_next4266, %cond_next4266.preheader - %indvar6268 = phi i32 [ 0, %cond_next4266.preheader ], [ %indvar.next22, %cond_next4266 ] ; <i32> [#uses=3] - %tmp4273 = getelementptr i32* %tmp42534254, i32 %indvar6268 ; <i32*> [#uses=1] - store i32 5, i32* %tmp4273 - %tmp4275 = add i32 %J152b.36147.3, %indvar6268 ; <i32> [#uses=1] - %tmp42626151 = icmp sgt i32 %tmp4275, 2 ; <i1> [#uses=1] - %indvar.next22 = add i32 %indvar6268, 1 ; <i32> [#uses=1] - br i1 %tmp42626151, label %bb4276, label %cond_next4266 - -bb4276: ; preds = %cond_next4266, %cond_next4189 - %tmp4280 = sub i32 2, %tmp4180 ; <i32> [#uses=1] - %tmp4281 = icmp eq i32 %tmp4280, 1 ; <i1> [#uses=1] - br i1 %tmp4281, label %cond_true4284, label %cleanup4336 - -cond_true4284: ; preds = %bb4276 - %tmp4288 = call i32 (i8*, i8*, i32, ...)* @memcmp( i8* %tmp4253, i8* bitcast ([2 x i32]* @C.143.1720 to i8*), i32 8 ) ; <i32> [#uses=1] - %tmp4289 = icmp eq i32 %tmp4288, 0 ; <i1> [#uses=1] - br i1 %tmp4289, label %cond_true4292, label %cleanup4336 - -cond_true4292: ; preds = %cond_true4284 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([37 x i8]* @.str29 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.146.1725 to i32) to i64), i64 32)) ) - to label %cleanup4336 unwind label %unwind4175 - -eh_then4307: ; preds = %unwind4175 - invoke void @__gnat_begin_handler( i8* %eh_ptr4176 ) - to label %invcont4313 unwind label %unwind4311 - -unwind4311: ; preds = %invcont4315, %invcont4313, %eh_then4307 - %eh_ptr4312 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_ptr4176 ) - to label %cleanup4334 unwind label %unwind4326 - -invcont4313: ; preds = %eh_then4307 - %tmp4314 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp4314( ) - to label %invcont4315 unwind label %unwind4311 - -invcont4315: ; preds = %invcont4313 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str30 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) ) - to label %cleanup4324 unwind label %unwind4311 - -cleanup4324: ; preds = %invcont4315 - invoke void @__gnat_end_handler( i8* %eh_ptr4176 ) - to label %cleanup4336 unwind label %unwind4326 - -unwind4326: ; preds = %cleanup4324, %unwind4311 - %eh_ptr4327 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp4174 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4327 ) ; <i32>:19 [#uses=0] - unreachable - -cleanup4334: ; preds = %unwind4311, %unwind4175 - %eh_exception.50 = phi i8* [ %eh_ptr4176, %unwind4175 ], [ %eh_ptr4312, %unwind4311 ] ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp4174 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_exception.50 ) ; <i32>:20 [#uses=0] - unreachable - -cleanup4336: ; preds = %cleanup4324, %cond_true4292, %cond_true4284, %bb4276 - call void @llvm.stackrestore( i8* %tmp4174 ) - %tmp4338 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=6] - %tmp4379 = alloca i8, i32 %max1395 ; <i8*> [#uses=9] - %tmp4421 = alloca i8, i32 %max1395 ; <i8*> [#uses=3] - %tmp4428 = icmp ugt i8 %tmp204205, %tmp272273 ; <i1> [#uses=1] - br i1 %tmp4428, label %cond_next4458, label %bb4433 - -bb4433: ; preds = %cleanup4336 - store i8 %wed.4, i8* %tmp4421 - %tmp4442 = icmp eq i8 %tmp272273, %tmp204205 ; <i1> [#uses=1] - br i1 %tmp4442, label %cond_next4458, label %cond_next4446.preheader - -cond_next4446.preheader: ; preds = %bb4433 - %J161b.26152.2 = add i8 %tmp204205, 1 ; <i8> [#uses=1] - br label %cond_next4446 - -cond_next4446: ; preds = %cond_next4446, %cond_next4446.preheader - %indvar6271 = phi i8 [ 0, %cond_next4446.preheader ], [ %indvar.next24, %cond_next4446 ] ; <i8> [#uses=2] - %tmp4448 = add i8 %J161b.26152.2, %indvar6271 ; <i8> [#uses=2] - %tmp443444356156 = zext i8 %tmp4448 to i32 ; <i32> [#uses=1] - %tmp44376157 = sub i32 %tmp443444356156, %tmp13571358 ; <i32> [#uses=1] - %tmp44386158 = getelementptr i8* %tmp4421, i32 %tmp44376157 ; <i8*> [#uses=1] - store i8 %wed.4, i8* %tmp44386158 - %tmp44426160 = icmp eq i8 %tmp272273, %tmp4448 ; <i1> [#uses=1] - %indvar.next24 = add i8 %indvar6271, 1 ; <i8> [#uses=1] - br i1 %tmp44426160, label %cond_next4458, label %cond_next4446 - -unwind4453: ; preds = %cond_true4609, %cond_true4504, %cond_true4481 - %eh_ptr4454 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=4] - %eh_select4456 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr4454, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid4710 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp4712 = icmp eq i32 %eh_select4456, %eh_typeid4710 ; <i1> [#uses=1] - br i1 %tmp4712, label %eh_then4713, label %cleanup4740 - -cond_next4458: ; preds = %cond_next4446, %bb4433, %cleanup4336 - call void @llvm.memcpy.i32( i8* %tmp4379, i8* %tmp4421, i32 %max1395, i32 1 ) - %tmp4464 = icmp ult i8 %tmp137138, %mon.4 ; <i1> [#uses=2] - br i1 %tmp4464, label %cond_next4484, label %cond_true4467 - -cond_true4467: ; preds = %cond_next4458 - %tmp4470 = icmp ult i8 %mon.4, %tmp204205 ; <i1> [#uses=1] - %tmp4474 = icmp ugt i8 %tmp137138, %tmp272273 ; <i1> [#uses=1] - %tmp4478 = or i1 %tmp4470, %tmp4474 ; <i1> [#uses=1] - br i1 %tmp4478, label %cond_true4481, label %cond_next4484 - -cond_true4481: ; preds = %cond_true4467 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind4453 - -cond_next4484: ; preds = %cond_true4467, %cond_next4458 - %tmp4487 = icmp ult i8 %mon.4, %tue.4 ; <i1> [#uses=2] - br i1 %tmp4487, label %cond_next4507, label %cond_true4490 - -cond_true4490: ; preds = %cond_next4484 - %tmp4493 = icmp ult i8 %tue.4, %tmp204205 ; <i1> [#uses=1] - %tmp4497 = icmp ugt i8 %mon.4, %tmp272273 ; <i1> [#uses=1] - %tmp4501 = or i1 %tmp4497, %tmp4493 ; <i1> [#uses=1] - br i1 %tmp4501, label %cond_true4504, label %cond_next4507 - -cond_true4504: ; preds = %cond_true4490 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind4453 - -cond_next4507: ; preds = %cond_true4490, %cond_next4484 - %tmp45904591 = zext i8 %mon.4 to i64 ; <i64> [#uses=3] - %tmp45924593 = zext i8 %tue.4 to i64 ; <i64> [#uses=1] - %tmp4594 = sub i64 %tmp45904591, %tmp45924593 ; <i64> [#uses=1] - %tmp4595 = add i64 %tmp4594, 1 ; <i64> [#uses=2] - %tmp4596 = icmp sgt i64 %tmp4595, -1 ; <i1> [#uses=1] - %max4597 = select i1 %tmp4596, i64 %tmp4595, i64 0 ; <i64> [#uses=1] - %tmp45984599 = zext i8 %tmp137138 to i64 ; <i64> [#uses=1] - %tmp4602 = sub i64 %tmp45984599, %tmp45904591 ; <i64> [#uses=1] - %tmp4603 = add i64 %tmp4602, 1 ; <i64> [#uses=3] - %tmp4604 = icmp sgt i64 %tmp4603, -1 ; <i1> [#uses=2] - %max4605 = select i1 %tmp4604, i64 %tmp4603, i64 0 ; <i64> [#uses=1] - %tmp4606 = icmp eq i64 %max4597, %max4605 ; <i1> [#uses=1] - br i1 %tmp4606, label %cond_next4611, label %cond_true4609 - -cond_true4609: ; preds = %cond_next4507 - invoke void @__gnat_rcheck_07( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind4453 - -cond_next4611: ; preds = %cond_next4507 - %tmp46124613 = zext i8 %tue.4 to i32 ; <i32> [#uses=1] - %tmp4616 = sub i32 %tmp46124613, %tmp13571358 ; <i32> [#uses=2] - %tmp46244625 = zext i8 %mon.4 to i32 ; <i32> [#uses=1] - %tmp4628 = sub i32 %tmp46244625, %tmp13571358 ; <i32> [#uses=3] - %tmp4636 = icmp slt i32 %tmp4628, %tmp4616 ; <i1> [#uses=1] - %tmp4677 = icmp ugt i8 %tue.4, %mon.4 ; <i1> [#uses=2] - br i1 %tmp4636, label %cond_false4673, label %cond_true4639 - -cond_true4639: ; preds = %cond_next4611 - br i1 %tmp4677, label %cleanup4742, label %bb4648.preheader - -bb4648.preheader: ; preds = %cond_true4639 - %tmp46556217 = getelementptr i8* %tmp4379, i32 %tmp4628 ; <i8*> [#uses=1] - %tmp46566218 = load i8* %tmp46556217 ; <i8> [#uses=1] - %tmp46596220 = getelementptr i8* %tmp4379, i32 %tmp4616 ; <i8*> [#uses=1] - store i8 %tmp46566218, i8* %tmp46596220 - %tmp46646223 = icmp eq i8 %tue.4, %mon.4 ; <i1> [#uses=1] - br i1 %tmp46646223, label %cleanup4742, label %cond_next4668.preheader - -cond_next4668.preheader: ; preds = %bb4648.preheader - %tmp46616222.in = add i8 %mon.4, 1 ; <i8> [#uses=1] - %L174b.26213 = add i8 %tue.4, 1 ; <i8> [#uses=1] - %tmp.27 = sub i8 %mon.4, %tue.4 ; <i8> [#uses=1] - br label %cond_next4668 - -cond_next4668: ; preds = %cond_next4668, %cond_next4668.preheader - %indvar6275 = phi i8 [ 0, %cond_next4668.preheader ], [ %indvar.next26, %cond_next4668 ] ; <i8> [#uses=3] - %tmp46616222 = add i8 %tmp46616222.in, %indvar6275 ; <i8> [#uses=1] - %tmp4670 = add i8 %L174b.26213, %indvar6275 ; <i8> [#uses=1] - %tmp46494650 = zext i8 %tmp4670 to i32 ; <i32> [#uses=1] - %tmp46514652 = zext i8 %tmp46616222 to i32 ; <i32> [#uses=1] - %tmp4654 = sub i32 %tmp46514652, %tmp13571358 ; <i32> [#uses=1] - %tmp4655 = getelementptr i8* %tmp4379, i32 %tmp4654 ; <i8*> [#uses=1] - %tmp4656 = load i8* %tmp4655 ; <i8> [#uses=1] - %tmp4658 = sub i32 %tmp46494650, %tmp13571358 ; <i32> [#uses=1] - %tmp4659 = getelementptr i8* %tmp4379, i32 %tmp4658 ; <i8*> [#uses=1] - store i8 %tmp4656, i8* %tmp4659 - %indvar.next26 = add i8 %indvar6275, 1 ; <i8> [#uses=2] - %exitcond28 = icmp eq i8 %indvar.next26, %tmp.27 ; <i1> [#uses=1] - br i1 %exitcond28, label %cleanup4742, label %cond_next4668 - -cond_false4673: ; preds = %cond_next4611 - br i1 %tmp4677, label %cleanup4742, label %bb4682.preheader - -bb4682.preheader: ; preds = %cond_false4673 - %tmp468546866228 = and i32 %tmp123, 255 ; <i32> [#uses=1] - %tmp46886229 = sub i32 %tmp468546866228, %tmp13571358 ; <i32> [#uses=1] - %tmp46896230 = getelementptr i8* %tmp4379, i32 %tmp46886229 ; <i8*> [#uses=1] - %tmp46906231 = load i8* %tmp46896230 ; <i8> [#uses=1] - %tmp46936233 = getelementptr i8* %tmp4379, i32 %tmp4628 ; <i8*> [#uses=1] - store i8 %tmp46906231, i8* %tmp46936233 - %tmp46986236 = icmp eq i8 %mon.4, %tue.4 ; <i1> [#uses=1] - br i1 %tmp46986236, label %cleanup4742, label %cond_next4702.preheader - -cond_next4702.preheader: ; preds = %bb4682.preheader - %tmp46956235.in = add i8 %tmp137138, -1 ; <i8> [#uses=1] - %L172b.26226 = add i8 %mon.4, -1 ; <i8> [#uses=1] - %tmp.32 = sub i8 %mon.4, %tue.4 ; <i8> [#uses=1] - br label %cond_next4702 - -cond_next4702: ; preds = %cond_next4702, %cond_next4702.preheader - %indvar6278 = phi i8 [ 0, %cond_next4702.preheader ], [ %indvar.next30, %cond_next4702 ] ; <i8> [#uses=3] - %tmp46956235 = sub i8 %tmp46956235.in, %indvar6278 ; <i8> [#uses=1] - %tmp4704 = sub i8 %L172b.26226, %indvar6278 ; <i8> [#uses=1] - %tmp46834684 = zext i8 %tmp4704 to i32 ; <i32> [#uses=1] - %tmp46854686 = zext i8 %tmp46956235 to i32 ; <i32> [#uses=1] - %tmp4688 = sub i32 %tmp46854686, %tmp13571358 ; <i32> [#uses=1] - %tmp4689 = getelementptr i8* %tmp4379, i32 %tmp4688 ; <i8*> [#uses=1] - %tmp4690 = load i8* %tmp4689 ; <i8> [#uses=1] - %tmp4692 = sub i32 %tmp46834684, %tmp13571358 ; <i32> [#uses=1] - %tmp4693 = getelementptr i8* %tmp4379, i32 %tmp4692 ; <i8*> [#uses=1] - store i8 %tmp4690, i8* %tmp4693 - %indvar.next30 = add i8 %indvar6278, 1 ; <i8> [#uses=2] - %exitcond33 = icmp eq i8 %indvar.next30, %tmp.32 ; <i1> [#uses=1] - br i1 %exitcond33, label %cleanup4742, label %cond_next4702 - -eh_then4713: ; preds = %unwind4453 - invoke void @__gnat_begin_handler( i8* %eh_ptr4454 ) - to label %invcont4719 unwind label %unwind4717 - -unwind4717: ; preds = %invcont4719, %eh_then4713 - %eh_ptr4718 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - invoke void @__gnat_end_handler( i8* %eh_ptr4454 ) - to label %cleanup4740 unwind label %unwind4732 - -invcont4719: ; preds = %eh_then4713 - %tmp4720 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp4720( ) - to label %UnifiedReturnBlock35 unwind label %unwind4717 - -unwind4732: ; preds = %unwind4717 - %eh_ptr4733 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp4338 ) - call void @llvm.stackrestore( i8* %tmp4338 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4733 ) ; <i32>:21 [#uses=0] - unreachable - -cleanup4740: ; preds = %unwind4717, %unwind4453 - %eh_exception.53 = phi i8* [ %eh_ptr4454, %unwind4453 ], [ %eh_ptr4718, %unwind4717 ] ; <i8*> [#uses=1] - call void @llvm.stackrestore( i8* %tmp4338 ) - call void @llvm.stackrestore( i8* %tmp4338 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_exception.53 ) ; <i32>:22 [#uses=0] - unreachable - -cleanup4742: ; preds = %cond_next4702, %bb4682.preheader, %cond_false4673, %cond_next4668, %bb4648.preheader, %cond_true4639 - call void @llvm.stackrestore( i8* %tmp4338 ) - call void @llvm.stackrestore( i8* %tmp4338 ) - %tmp4749 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=2] - br i1 %tmp4464, label %cond_next4776, label %UnifiedReturnBlock35 - -unwind4770: ; preds = %cond_next4776 - %eh_ptr4771 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select4773 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr4771, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - call void @llvm.stackrestore( i8* %tmp4749 ) - %eh_typeid4874 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp4876 = icmp eq i32 %eh_select4773, %eh_typeid4874 ; <i1> [#uses=1] - br i1 %tmp4876, label %eh_then4877, label %Unwind - -cond_next4776: ; preds = %cleanup4742 - %tmp4856.cast = trunc i64 %tmp4603 to i32 ; <i32> [#uses=1] - %max48584859 = select i1 %tmp4604, i32 %tmp4856.cast, i32 0 ; <i32> [#uses=1] - %tmp4861 = invoke i8 @report__equal( i32 %max48584859, i32 0 ) - to label %invcont4860 unwind label %unwind4770 ; <i8> [#uses=1] - -invcont4860: ; preds = %cond_next4776 - %tmp4862 = icmp eq i8 %tmp4861, 0 ; <i1> [#uses=1] - %tue.8 = select i1 %tmp4862, i8 %tue.4, i8 2 ; <i8> [#uses=3] - call void @llvm.stackrestore( i8* %tmp4749 ) - %tmp49016170 = icmp ult i8 %mon.4, %tue.8 ; <i1> [#uses=1] - br i1 %tmp49016170, label %cond_next4925, label %cond_true4904 - -eh_then4877: ; preds = %unwind4770 - invoke void @__gnat_begin_handler( i8* %eh_ptr4771 ) - to label %invcont4883 unwind label %unwind4881 - -unwind4881: ; preds = %invcont4885, %invcont4883, %eh_then4877 - %eh_ptr4882 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr4771 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4882 ) ; <i32>:23 [#uses=0] - unreachable - -invcont4883: ; preds = %eh_then4877 - %tmp4884 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp4884( ) - to label %invcont4885 unwind label %unwind4881 - -invcont4885: ; preds = %invcont4883 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str32 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) ) - to label %cleanup4894 unwind label %unwind4881 - -cleanup4894: ; preds = %invcont4885 - call void @__gnat_end_handler( i8* %eh_ptr4771 ) - br i1 %tmp4487, label %cond_next4925, label %cond_true4904 - -cond_true4904: ; preds = %cleanup4894, %invcont4860 - %tue.96161.0 = phi i8 [ %tue.8, %invcont4860 ], [ %tue.4, %cleanup4894 ] ; <i8> [#uses=3] - %tmp4907 = icmp ult i8 %tue.96161.0, %tmp204205 ; <i1> [#uses=1] - %tmp4911 = icmp ugt i8 %mon.4, %tmp272273 ; <i1> [#uses=1] - %tmp4915 = or i1 %tmp4907, %tmp4911 ; <i1> [#uses=1] - br i1 %tmp4915, label %cond_true4918, label %cond_next4925 - -cond_true4918: ; preds = %cond_true4904 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 361 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind4919 - -unwind4919: ; preds = %cond_next4925, %cond_true4918 - %tue.96161.2 = phi i8 [ %tue.96161.0, %cond_true4918 ], [ %tue.96161.1, %cond_next4925 ] ; <i8> [#uses=1] - %eh_ptr4920 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select4922 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr4920, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid4987 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp4989 = icmp eq i32 %eh_select4922, %eh_typeid4987 ; <i1> [#uses=1] - br i1 %tmp4989, label %eh_then4990, label %Unwind - -cond_next4925: ; preds = %cond_true4904, %cleanup4894, %invcont4860 - %tue.96161.1 = phi i8 [ %tue.8, %invcont4860 ], [ %tue.4, %cleanup4894 ], [ %tue.96161.0, %cond_true4904 ] ; <i8> [#uses=6] - %tmp49714972 = zext i8 %tue.96161.1 to i64 ; <i64> [#uses=1] - %tmp4973 = sub i64 %tmp45904591, %tmp49714972 ; <i64> [#uses=1] - %tmp4974 = add i64 %tmp4973, 1 ; <i64> [#uses=2] - %tmp4975 = icmp sgt i64 %tmp4974, -1 ; <i1> [#uses=1] - %tmp4974.cast = trunc i64 %tmp4974 to i32 ; <i32> [#uses=1] - %max49764977 = select i1 %tmp4975, i32 %tmp4974.cast, i32 0 ; <i32> [#uses=1] - %tmp4979 = invoke i8 @report__equal( i32 %max49764977, i32 0 ) - to label %invcont4978 unwind label %unwind4919 ; <i8> [#uses=1] - -invcont4978: ; preds = %cond_next4925 - %tmp4980 = icmp eq i8 %tmp4979, 0 ; <i1> [#uses=1] - br i1 %tmp4980, label %finally4985, label %cond_true4983 - -cond_true4983: ; preds = %invcont4978 - %tmp50146178 = icmp ugt i8 %tue.96161.1, 1 ; <i1> [#uses=1] - br i1 %tmp50146178, label %cond_next5038, label %cond_true5017 - -eh_then4990: ; preds = %unwind4919 - invoke void @__gnat_begin_handler( i8* %eh_ptr4920 ) - to label %invcont4996 unwind label %unwind4994 - -unwind4994: ; preds = %invcont4998, %invcont4996, %eh_then4990 - %eh_ptr4995 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr4920 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4995 ) ; <i32>:24 [#uses=0] - unreachable - -invcont4996: ; preds = %eh_then4990 - %tmp4997 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp4997( ) - to label %invcont4998 unwind label %unwind4994 - -invcont4998: ; preds = %invcont4996 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str33 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) ) - to label %cleanup5007 unwind label %unwind4994 - -cleanup5007: ; preds = %invcont4998 - call void @__gnat_end_handler( i8* %eh_ptr4920 ) - br label %finally4985 - -finally4985: ; preds = %cleanup5007, %invcont4978 - %tue.96161.3 = phi i8 [ %tue.96161.2, %cleanup5007 ], [ %tue.96161.1, %invcont4978 ] ; <i8> [#uses=3] - %tmp5014 = icmp ult i8 %mon.4, %tue.96161.3 ; <i1> [#uses=1] - br i1 %tmp5014, label %cond_next5038, label %cond_true5017 - -cond_true5017: ; preds = %finally4985, %cond_true4983 - %tue.96161.4 = phi i8 [ %tue.96161.1, %cond_true4983 ], [ %tue.96161.3, %finally4985 ] ; <i8> [#uses=3] - %mon.86171.0 = phi i8 [ 1, %cond_true4983 ], [ %mon.4, %finally4985 ] ; <i8> [#uses=3] - %tmp5020 = icmp ult i8 %tue.96161.4, %tmp204205 ; <i1> [#uses=1] - %tmp5024 = icmp ugt i8 %mon.86171.0, %tmp272273 ; <i1> [#uses=1] - %tmp5028 = or i1 %tmp5024, %tmp5020 ; <i1> [#uses=1] - br i1 %tmp5028, label %cond_true5031, label %cond_next5038 - -cond_true5031: ; preds = %cond_true5017 - invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 375 ) - to label %UnifiedUnreachableBlock34 unwind label %unwind5032 - -unwind5032: ; preds = %cond_next5038, %cond_true5031 - %tue.96161.6 = phi i8 [ %tue.96161.4, %cond_true5031 ], [ %tue.96161.5, %cond_next5038 ] ; <i8> [#uses=1] - %mon.86171.2 = phi i8 [ %mon.86171.0, %cond_true5031 ], [ %mon.86171.1, %cond_next5038 ] ; <i8> [#uses=1] - %eh_ptr5033 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select5035 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr5033, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid5100 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp5102 = icmp eq i32 %eh_select5035, %eh_typeid5100 ; <i1> [#uses=1] - br i1 %tmp5102, label %eh_then5103, label %Unwind - -cond_next5038: ; preds = %cond_true5017, %finally4985, %cond_true4983 - %tue.96161.5 = phi i8 [ %tue.96161.1, %cond_true4983 ], [ %tue.96161.3, %finally4985 ], [ %tue.96161.4, %cond_true5017 ] ; <i8> [#uses=4] - %mon.86171.1 = phi i8 [ 1, %cond_true4983 ], [ %mon.4, %finally4985 ], [ %mon.86171.0, %cond_true5017 ] ; <i8> [#uses=4] - %tmp50825083 = zext i8 %mon.86171.1 to i64 ; <i64> [#uses=1] - %tmp50845085 = zext i8 %tue.96161.5 to i64 ; <i64> [#uses=1] - %tmp5086 = sub i64 %tmp50825083, %tmp50845085 ; <i64> [#uses=1] - %tmp5087 = add i64 %tmp5086, 1 ; <i64> [#uses=2] - %tmp5088 = icmp sgt i64 %tmp5087, -1 ; <i1> [#uses=1] - %tmp5087.cast = trunc i64 %tmp5087 to i32 ; <i32> [#uses=1] - %max50895090 = select i1 %tmp5088, i32 %tmp5087.cast, i32 0 ; <i32> [#uses=1] - %tmp5092 = invoke i8 @report__equal( i32 %max50895090, i32 0 ) - to label %invcont5091 unwind label %unwind5032 ; <i8> [#uses=1] - -invcont5091: ; preds = %cond_next5038 - %tmp5093 = icmp eq i8 %tmp5092, 0 ; <i1> [#uses=1] - br i1 %tmp5093, label %finally5098, label %cond_true5096 - -cond_true5096: ; preds = %invcont5091 - br label %finally5098 - -eh_then5103: ; preds = %unwind5032 - invoke void @__gnat_begin_handler( i8* %eh_ptr5033 ) - to label %invcont5109 unwind label %unwind5107 - -unwind5107: ; preds = %invcont5111, %invcont5109, %eh_then5103 - %eh_ptr5108 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr5033 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr5108 ) ; <i32>:25 [#uses=0] - unreachable - -invcont5109: ; preds = %eh_then5103 - %tmp5110 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp5110( ) - to label %invcont5111 unwind label %unwind5107 - -invcont5111: ; preds = %invcont5109 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str34 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) ) - to label %cleanup5120 unwind label %unwind5107 - -cleanup5120: ; preds = %invcont5111 - call void @__gnat_end_handler( i8* %eh_ptr5033 ) - br label %finally5098 - -finally5098: ; preds = %cleanup5120, %cond_true5096, %invcont5091 - %tue.96161.7 = phi i8 [ %tue.96161.6, %cleanup5120 ], [ %tue.96161.5, %cond_true5096 ], [ %tue.96161.5, %invcont5091 ] ; <i8> [#uses=1] - %mon.86171.3 = phi i8 [ %mon.86171.2, %cleanup5120 ], [ %mon.86171.1, %cond_true5096 ], [ %mon.86171.1, %invcont5091 ] ; <i8> [#uses=2] - %wed.6 = phi i8 [ %wed.4, %cleanup5120 ], [ 3, %cond_true5096 ], [ %wed.4, %invcont5091 ] ; <i8> [#uses=5] - %not.tmp5135 = icmp uge i8 %tmp137138, %sat.45934.0 ; <i1> [#uses=1] - %tmp5151 = icmp uge i8 %sat.45934.0, %tmp306307 ; <i1> [#uses=1] - %tmp5155 = icmp ule i8 %sat.45934.0, %wed.6 ; <i1> [#uses=1] - %tmp5159 = and i1 %tmp5155, %tmp5151 ; <i1> [#uses=1] - %tmp5177 = icmp ult i8 %wed.6, %tmp272273 ; <i1> [#uses=1] - %tmp5184 = icmp ugt i8 %wed.6, %tue.96161.7 ; <i1> [#uses=1] - %bothcond5907 = or i1 %tmp5177, %tmp5184 ; <i1> [#uses=2] - %not.bothcond5907 = xor i1 %bothcond5907, true ; <i1> [#uses=1] - %tmp5198 = icmp uge i8 %tmp272273, %mon.86171.3 ; <i1> [#uses=1] - %tmp5202 = icmp ule i8 %tmp272273, %tmp137138 ; <i1> [#uses=1] - %tmp5206 = and i1 %tmp5198, %tmp5202 ; <i1> [#uses=1] - %not.bothcond5908 = icmp uge i8 %tmp306307, %sat.45934.0 ; <i1> [#uses=1] - %tmp5244 = icmp uge i8 %wed.6, %tmp306307 ; <i1> [#uses=1] - %tmp5248 = icmp ule i8 %wed.6, %mon.86171.3 ; <i1> [#uses=1] - %tmp5252 = and i1 %tmp5244, %tmp5248 ; <i1> [#uses=1] - %tmp5164 = or i1 %not.tmp5135, %not.bothcond5908 ; <i1> [#uses=1] - %tmp5194 = or i1 %tmp5164, %tmp5206 ; <i1> [#uses=1] - %tmp5210 = or i1 %tmp5194, %tmp5159 ; <i1> [#uses=1] - %tmp5240 = or i1 %tmp5210, %not.bothcond5907 ; <i1> [#uses=1] - %tmp5256 = or i1 %tmp5240, %tmp5252 ; <i1> [#uses=1] - br i1 %tmp5256, label %cond_true5259, label %cond_next5271 - -cond_true5259: ; preds = %finally5098 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([27 x i8]* @.str35 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.178.2066 to i32) to i64), i64 32)) ) - to label %cond_next5271 unwind label %unwind5266 - -unwind5266: ; preds = %cond_true5462, %invcont5429, %cond_next5401, %cond_true5393, %cond_next5374, %bb5359, %cond_next5347, %invcont5330, %invcont5305, %invcont5303, %invcont5294, %bb5293, %cond_next5281, %cond_next5271, %cond_true5259 - %eh_ptr5267 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5] - %eh_select5269 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr5267, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value ) ; <i32> [#uses=1] - %eh_typeid5473 = call i32 @llvm.eh.typeid.for.i32( i8* bitcast (i32* @__gnat_others_value to i8*) ) ; <i32> [#uses=1] - %tmp5475 = icmp eq i32 %eh_select5269, %eh_typeid5473 ; <i1> [#uses=1] - br i1 %tmp5475, label %eh_then5476, label %Unwind - -cond_next5271: ; preds = %cond_true5259, %finally5098 - %tmp5273 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont5272 unwind label %unwind5266 ; <i32> [#uses=2] - -invcont5272: ; preds = %cond_next5271 - %tmp5277 = icmp slt i32 %tmp5273, 10 ; <i1> [#uses=1] - br i1 %tmp5277, label %bb5292, label %cond_next5281 - -cond_next5281: ; preds = %invcont5272 - %tmp5283 = invoke i32 @report__ident_int( i32 -10 ) - to label %invcont5282 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5282: ; preds = %cond_next5281 - %tmp5287 = icmp sgt i32 %tmp5273, %tmp5283 ; <i1> [#uses=1] - br i1 %tmp5287, label %bb5292, label %bb5293 - -bb5292: ; preds = %invcont5282, %invcont5272 - br label %bb5293 - -bb5293: ; preds = %bb5292, %invcont5282 - %iftmp.179.0 = phi i1 [ false, %bb5292 ], [ true, %invcont5282 ] ; <i1> [#uses=1] - %tmp5295 = invoke i32 @report__ident_int( i32 10 ) - to label %invcont5294 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5294: ; preds = %bb5293 - %tmp5296 = icmp slt i32 %tmp5295, 1 ; <i1> [#uses=1] - %tmp5304 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont5303 unwind label %unwind5266 ; <i32> [#uses=2] - -invcont5303: ; preds = %invcont5294 - %tmp5306 = invoke i32 @report__ident_int( i32 -10 ) - to label %invcont5305 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5305: ; preds = %invcont5303 - %tmp5331 = invoke i32 @report__ident_int( i32 -20 ) - to label %invcont5330 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5330: ; preds = %invcont5305 - %tmp5310 = icmp slt i32 %tmp5304, %tmp5306 ; <i1> [#uses=1] - %tmp5318 = icmp sgt i32 %tmp5304, -11 ; <i1> [#uses=1] - %bothcond5909 = or i1 %tmp5310, %tmp5318 ; <i1> [#uses=1] - %not.bothcond5909 = xor i1 %bothcond5909, true ; <i1> [#uses=1] - %tmp5332 = icmp sgt i32 %tmp5331, -1 ; <i1> [#uses=1] - %tmp5339 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont5338 unwind label %unwind5266 ; <i32> [#uses=2] - -invcont5338: ; preds = %invcont5330 - %tmp5343 = icmp slt i32 %tmp5339, 6 ; <i1> [#uses=1] - br i1 %tmp5343, label %bb5358, label %cond_next5347 - -cond_next5347: ; preds = %invcont5338 - %tmp5349 = invoke i32 @report__ident_int( i32 5 ) - to label %invcont5348 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5348: ; preds = %cond_next5347 - %tmp5353 = icmp sgt i32 %tmp5339, %tmp5349 ; <i1> [#uses=1] - br i1 %tmp5353, label %bb5358, label %bb5359 - -bb5358: ; preds = %invcont5348, %invcont5338 - br label %bb5359 - -bb5359: ; preds = %bb5358, %invcont5348 - %iftmp.181.0 = phi i1 [ false, %bb5358 ], [ true, %invcont5348 ] ; <i1> [#uses=1] - %tmp5366 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont5365 unwind label %unwind5266 ; <i32> [#uses=2] - -invcont5365: ; preds = %bb5359 - %tmp5370 = icmp slt i32 %tmp5366, 7 ; <i1> [#uses=1] - br i1 %tmp5370, label %bb5385, label %cond_next5374 - -cond_next5374: ; preds = %invcont5365 - %tmp5376 = invoke i32 @report__ident_int( i32 3 ) - to label %invcont5375 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5375: ; preds = %cond_next5374 - %tmp5380 = icmp sgt i32 %tmp5366, %tmp5376 ; <i1> [#uses=1] - br i1 %tmp5380, label %bb5385, label %bb5386 - -bb5385: ; preds = %invcont5375, %invcont5365 - br label %bb5386 - -bb5386: ; preds = %bb5385, %invcont5375 - %iftmp.182.0 = phi i1 [ false, %bb5385 ], [ true, %invcont5375 ] ; <i1> [#uses=1] - %tmp5301 = or i1 %tmp5296, %iftmp.179.0 ; <i1> [#uses=1] - %tmp5328 = or i1 %tmp5301, %not.bothcond5909 ; <i1> [#uses=1] - %tmp5336 = or i1 %tmp5328, %tmp5332 ; <i1> [#uses=1] - %tmp5363 = or i1 %tmp5336, %iftmp.181.0 ; <i1> [#uses=1] - %tmp5390 = or i1 %tmp5363, %iftmp.182.0 ; <i1> [#uses=1] - br i1 %tmp5390, label %cond_true5393, label %cond_next5401 - -cond_true5393: ; preds = %bb5386 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([27 x i8]* @.str36 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.178.2066 to i32) to i64), i64 32)) ) - to label %cond_next5401 unwind label %unwind5266 - -cond_next5401: ; preds = %cond_true5393, %bb5386 - %tmp5430 = invoke i32 @report__ident_int( i32 0 ) - to label %invcont5429 unwind label %unwind5266 ; <i32> [#uses=2] - -invcont5429: ; preds = %cond_next5401 - %tmp5432 = invoke i32 @report__ident_int( i32 4 ) - to label %invcont5431 unwind label %unwind5266 ; <i32> [#uses=1] - -invcont5431: ; preds = %invcont5429 - %tmp5436 = icmp slt i32 %tmp5430, %tmp5432 ; <i1> [#uses=1] - %tmp5444 = icmp sgt i32 %tmp5430, -4 ; <i1> [#uses=1] - %bothcond5911 = or i1 %tmp5436, %tmp5444 ; <i1> [#uses=1] - %tmp5457 = and i1 %bothcond5911, %bothcond5907 ; <i1> [#uses=1] - br i1 %tmp5457, label %finally5471, label %cond_true5462 - -cond_true5462: ; preds = %invcont5431 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([29 x i8]* @.str37 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.36.923 to i32) to i64), i64 32)) ) - to label %finally5471 unwind label %unwind5266 - -eh_then5476: ; preds = %unwind5266 - invoke void @__gnat_begin_handler( i8* %eh_ptr5267 ) - to label %invcont5482 unwind label %unwind5480 - -unwind5480: ; preds = %invcont5484, %invcont5482, %eh_then5476 - %eh_ptr5481 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=1] - call void @__gnat_end_handler( i8* %eh_ptr5267 ) - call i32 (...)* @_Unwind_Resume( i8* %eh_ptr5481 ) ; <i32>:26 [#uses=0] - unreachable - -invcont5482: ; preds = %eh_then5476 - %tmp5483 = load void ()** @system__soft_links__abort_undefer ; <void ()*> [#uses=1] - invoke void %tmp5483( ) - to label %invcont5484 unwind label %unwind5480 - -invcont5484: ; preds = %invcont5482 - invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str38 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) ) - to label %cleanup5493 unwind label %unwind5480 - -cleanup5493: ; preds = %invcont5484 - call void @__gnat_end_handler( i8* %eh_ptr5267 ) - call void @report__result( ) - ret void - -finally5471: ; preds = %cond_true5462, %invcont5431 - call void @report__result( ) - ret void - -Unwind: ; preds = %unwind5266, %unwind5032, %unwind4919, %unwind4770, %unwind3880, %unwind3618, %unwind3393, %eh_else3366, %eh_else3016, %eh_else2666, %eh_else1330, %eh_else932, %eh_else823 - %eh_exception.2 = phi i8* [ %eh_exception.05914.1, %eh_else823 ], [ %eh_ptr872, %eh_else932 ], [ %eh_ptr975, %eh_else1330 ], [ %eh_exception.296030.1, %eh_else2666 ], [ %eh_exception.336046.1, %eh_else3016 ], [ %eh_exception.396074.1, %eh_else3366 ], [ %eh_ptr3394, %unwind3393 ], [ %eh_ptr3619, %unwind3618 ], [ %eh_ptr3881, %unwind3880 ], [ %eh_ptr4771, %unwind4770 ], [ %eh_ptr4920, %unwind4919 ], [ %eh_ptr5033, %unwind5032 ], [ %eh_ptr5267, %unwind5266 ] ; <i8*> [#uses=1] - call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 ) ; <i32>:27 [#uses=0] - unreachable - -UnifiedUnreachableBlock34: ; preds = %cond_true5031, %cond_true4918, %cond_true4609, %cond_true4504, %cond_true4481, %cond_true4187, %cond_true4117, %cond_true4027, %cond_true3935, %cond_true3907, %cond_true3729, %cond_true3675, %cond_true3617, %cond_true3543, %cond_true3448, %cond_true3420, %bb3227, %bb3193, %bb3171, %cond_true3061, %bb2877, %bb2843, %bb2821, %cond_true2711, %bb2558, %bb2524, %bb2506, %cond_true2410, %bb2203, %cond_true2171, %cond_true1946, %bb1605, %cond_true1573, %cond_true1546, %cond_true1418, %cond_true973, %cond_true870, %cond_true663, %cond_true637, %cond_true611, %cond_true585, %cond_true559, %cond_true533, %cond_true507, %cond_true465 - unreachable - -UnifiedReturnBlock35: ; preds = %cleanup4742, %invcont4719, %finally913, %cleanup928 - ret void -} - -declare i32 @report__ident_int(i32) - -declare void @__gnat_rcheck_10(i8*, i32) - -declare void @__gnat_rcheck_12(i8*, i32) - -declare void @report__test(i64, i64) - -declare i8* @llvm.eh.exception() - -declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) - -declare i32 @llvm.eh.typeid.for.i32(i8*) - -declare i32 @__gnat_eh_personality(...) - -declare i32 @_Unwind_Resume(...) - -declare void @system__secondary_stack__ss_mark(%struct.system__secondary_stack__mark_id* sret ) - -declare void @system__img_int__image_integer(%struct.string___XUP* sret , i32) - -declare void @system__string_ops__str_concat(%struct.string___XUP* sret , i64, i64) - -declare void @report__failed(i64) - -declare void @system__secondary_stack__ss_release(i64) - -declare void @__gnat_begin_handler(i8*) - -declare void @__gnat_end_handler(i8*) - -declare i8 @report__equal(i32, i32) - -declare i8* @llvm.stacksave() - -declare void @__gnat_rcheck_07(i8*, i32) - -declare i8* @__gnat_malloc(i32) - -declare void @llvm.stackrestore(i8*) - -declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) - -declare void @__gnat_rcheck_05(i8*, i32) - -declare void @__gnat_rcheck_06(i8*, i32) - -declare void @system__img_enum__image_enumeration_8(%struct.string___XUP* sret , i32, i64, i8*) - -declare i32 @memcmp(i8*, i8*, i32, ...) - -declare void @report__result() - -; CHECK: {{Llabel138.*Region start}} -; CHECK-NEXT: Region length -; CHECK-NEXT: Landing pad -; CHECK-NEXT: {{3.*Action}} diff --git a/test/CodeGen/Generic/addc-fold2.ll b/test/CodeGen/Generic/addc-fold2.ll deleted file mode 100644 index 34f5ac1..0000000 --- a/test/CodeGen/Generic/addc-fold2.ll +++ /dev/null @@ -1,10 +0,0 @@ -; RUN: llc < %s -march=x86 | grep add -; RUN: llc < %s -march=x86 | not grep adc - -define i64 @test(i64 %A, i32 %B) { - %tmp12 = zext i32 %B to i64 ; <i64> [#uses=1] - %tmp3 = shl i64 %tmp12, 32 ; <i64> [#uses=1] - %tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1] - ret i64 %tmp5 -} - diff --git a/test/CodeGen/Generic/fpowi-promote.ll b/test/CodeGen/Generic/fpowi-promote.ll index 82628ef..8dacebe 100644 --- a/test/CodeGen/Generic/fpowi-promote.ll +++ b/test/CodeGen/Generic/fpowi-promote.ll @@ -1,5 +1,4 @@ ; RUN: llc < %s -; RUN: llc < %s -march=x86 -mcpu=i386 ; PR1239 diff --git a/test/CodeGen/Generic/switch-lower-feature-2.ll b/test/CodeGen/Generic/switch-lower-feature-2.ll deleted file mode 100644 index 80e0618..0000000 --- a/test/CodeGen/Generic/switch-lower-feature-2.ll +++ /dev/null @@ -1,50 +0,0 @@ -; RUN: llc < %s -march=x86 -o %t -; RUN: grep jb %t | count 1 -; RUN: grep \\\$6 %t | count 2 -; RUN: grep 1024 %t | count 1 -; RUN: grep 1023 %t | count 1 -; RUN: grep 119 %t | count 1 -; RUN: grep JTI %t | count 2 -; RUN: grep jg %t | count 3 -; RUN: grep ja %t | count 1 -; RUN: grep jns %t | count 1 - -target triple = "i686-pc-linux-gnu" - -define i32 @main(i32 %tmp158) { -entry: - switch i32 %tmp158, label %bb336 [ - i32 -2147483648, label %bb338 - i32 -2147483647, label %bb338 - i32 -2147483646, label %bb338 - i32 120, label %bb338 - i32 121, label %bb339 - i32 122, label %bb340 - i32 123, label %bb341 - i32 124, label %bb342 - i32 125, label %bb343 - i32 126, label %bb336 - i32 1024, label %bb338 - i32 0, label %bb338 - i32 1, label %bb338 - i32 2, label %bb338 - i32 3, label %bb338 - i32 4, label %bb338 - i32 5, label %bb338 - ] -bb336: - ret i32 10 -bb338: - ret i32 11 -bb339: - ret i32 12 -bb340: - ret i32 13 -bb341: - ret i32 14 -bb342: - ret i32 15 -bb343: - ret i32 18 - -} diff --git a/test/CodeGen/Generic/switch-lower-feature.ll b/test/CodeGen/Generic/switch-lower-feature.ll index 65fdf5a..1e9dbee 100644 --- a/test/CodeGen/Generic/switch-lower-feature.ll +++ b/test/CodeGen/Generic/switch-lower-feature.ll @@ -1,10 +1,6 @@ -; RUN: llc < %s -march=x86 -o - | grep {\$7} | count 1 -; RUN: llc < %s -march=x86 -o - | grep {\$6} | count 1 -; RUN: llc < %s -march=x86 -o - | grep 1024 | count 1 -; RUN: llc < %s -march=x86 -o - | grep jb | count 2 -; RUN: llc < %s -march=x86 -o - | grep je | count 1 +; RUN: llc < %s -define i32 @main(i32 %tmp158) { +define i32 @test(i32 %tmp158) { entry: switch i32 %tmp158, label %bb336 [ i32 120, label %bb338 @@ -27,3 +23,41 @@ bb336: bb338: ret i32 11 } + +define i32 @test2(i32 %tmp158) { +entry: + switch i32 %tmp158, label %bb336 [ + i32 -2147483648, label %bb338 + i32 -2147483647, label %bb338 + i32 -2147483646, label %bb338 + i32 120, label %bb338 + i32 121, label %bb339 + i32 122, label %bb340 + i32 123, label %bb341 + i32 124, label %bb342 + i32 125, label %bb343 + i32 126, label %bb336 + i32 1024, label %bb338 + i32 0, label %bb338 + i32 1, label %bb338 + i32 2, label %bb338 + i32 3, label %bb338 + i32 4, label %bb338 + i32 5, label %bb338 + ] +bb336: + ret i32 10 +bb338: + ret i32 11 +bb339: + ret i32 12 +bb340: + ret i32 13 +bb341: + ret i32 14 +bb342: + ret i32 15 +bb343: + ret i32 18 + +} diff --git a/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll b/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll index c4ed166..d1d28ae 100644 --- a/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll +++ b/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll @@ -1,7 +1,7 @@ ; RUN: llc < %s | grep {subfc r3,r5,r4} ; RUN: llc < %s | grep {subfze r4,r2} -; RUN: llc < %s -regalloc=local | grep {subfc r5,r4,r3} -; RUN: llc < %s -regalloc=local | grep {subfze r2,r2} +; RUN: llc < %s -regalloc=local | grep {subfc r2,r5,r4} +; RUN: llc < %s -regalloc=local | grep {subfze r3,r3} ; The first argument of subfc must not be the same as any other register. ; PR1357 diff --git a/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll b/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll index db2ab87..a05245d 100644 --- a/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll +++ b/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=ppc32 | grep nop +; RUN: llc < %s -march=ppc32 | grep .byte target triple = "powerpc-apple-darwin8" diff --git a/test/CodeGen/PowerPC/2010-02-04-EmptyGlobal.ll b/test/CodeGen/PowerPC/2010-02-04-EmptyGlobal.ll new file mode 100644 index 0000000..32ddb34 --- /dev/null +++ b/test/CodeGen/PowerPC/2010-02-04-EmptyGlobal.ll @@ -0,0 +1,11 @@ +; RUN: llc < %s -mtriple=powerpc-apple-darwin10 -relocation-model=pic -disable-fp-elim | FileCheck %s +; <rdar://problem/7604010> + +%cmd.type = type { } + +@_cmd = constant %cmd.type zeroinitializer + +; CHECK: .globl __cmd +; CHECK-NEXT: .align 3 +; CHECK-NEXT: __cmd: +; CHECK-NEXT: .space 1 diff --git a/test/CodeGen/PowerPC/2010-02-12-saveCR.ll b/test/CodeGen/PowerPC/2010-02-12-saveCR.ll new file mode 100644 index 0000000..b73382e --- /dev/null +++ b/test/CodeGen/PowerPC/2010-02-12-saveCR.ll @@ -0,0 +1,30 @@ +; RUN: llc < %s -mtriple=powerpc-apple-darwin | FileCheck %s +; ModuleID = 'hh.c' +target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32" +target triple = "powerpc-apple-darwin9.6" +; This formerly used R0 for both the stack address and CR. + +define void @foo() nounwind { +entry: +;CHECK: mfcr r2 +;CHECK: rlwinm r2, r2, 8, 0, 31 +;CHECK: lis r0, 1 +;CHECK: ori r0, r0, 34540 +;CHECK: stwx r2, r1, r0 + %x = alloca [100000 x i8] ; <[100000 x i8]*> [#uses=1] + %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] + %x1 = bitcast [100000 x i8]* %x to i8* ; <i8*> [#uses=1] + call void @bar(i8* %x1) nounwind + call void asm sideeffect "", "~{cr2}"() nounwind + br label %return + +return: ; preds = %entry +;CHECK: lis r0, 1 +;CHECK: ori r0, r0, 34540 +;CHECK: lwzx r2, r1, r0 +;CHECK: rlwinm r2, r2, 24, 0, 31 +;CHECK: mtcrf 32, r2 + ret void +} + +declare void @bar(i8*) diff --git a/test/CodeGen/PowerPC/align.ll b/test/CodeGen/PowerPC/align.ll index e619faa..109a837 100644 --- a/test/CodeGen/PowerPC/align.ll +++ b/test/CodeGen/PowerPC/align.ll @@ -1,11 +1,42 @@ -; RUN: llc < %s -march=ppc32 | \ -; RUN: grep align.4 | count 1 -; RUN: llc < %s -march=ppc32 | \ -; RUN: grep align.2 | count 1 -; RUN: llc < %s -march=ppc32 | \ -; RUN: grep align.3 | count 1 +; RUN: llc < %s -mtriple=powerpc-linux-gnu | FileCheck %s -check-prefix=ELF +; RUN: llc < %s -mtriple=powerpc-apple-darwin9 | FileCheck %s -check-prefix=DARWIN -@A = global <4 x i32> < i32 10, i32 20, i32 30, i32 40 > ; <<4 x i32>*> [#uses=0] -@B = global float 1.000000e+02 ; <float*> [#uses=0] -@C = global double 2.000000e+03 ; <double*> [#uses=0] +@a = global i1 true +; no alignment +@b = global i8 1 +; no alignment + +@c = global i16 2 +;ELF: .align 1 +;ELF: c: +;DARWIN: .align 1 +;DARWIN: _c: + +@d = global i32 3 +;ELF: .align 2 +;ELF: d: +;DARWIN: .align 2 +;DARWIN: _d: + +@e = global i64 4 +;ELF: .align 3 +;ELF: e +;DARWIN: .align 3 +;DARWIN: _e: + +@f = global float 5.0 +;ELF: .align 2 +;ELF: f: +;DARWIN: .align 2 +;DARWIN: _f: + +@g = global double 6.0 +;ELF: .align 3 +;ELF: g: +;DARWIN: .align 3 +;DARWIN: _g: + +@bar = common global [75 x i8] zeroinitializer, align 128 +;ELF: .comm bar,75,128 +;DARWIN: .comm _bar,75,7 diff --git a/test/CodeGen/SPARC/ctpop.ll b/test/CodeGen/SPARC/ctpop.ll index 37d1c5a..e56f494 100644 --- a/test/CodeGen/SPARC/ctpop.ll +++ b/test/CodeGen/SPARC/ctpop.ll @@ -1,7 +1,5 @@ -; RUN: llc < %s -march=sparc -mattr=v9 -enable-sparc-v9-insts -; RUN: llc < %s -march=sparc -mattr=-v9 | \ -; RUN: not grep popc -; RUN: llc < %s -march=sparc -mattr=v9 -enable-sparc-v9-insts | grep popc +; RUN: llc < %s -march=sparc -mattr=-v9 | not grep popc +; RUN: llc < %s -march=sparcv9 -mattr=v9 | grep popc declare i32 @llvm.ctpop.i32(i32) diff --git a/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll b/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll new file mode 100644 index 0000000..363f571 --- /dev/null +++ b/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll @@ -0,0 +1,76 @@ +; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s +target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32-n32" + +define arm_apcscc i32 @test(i32 %n) nounwind { +; CHECK: test: +; CHECK-NOT: mov +; CHECK: return +entry: + %0 = icmp eq i32 %n, 1 ; <i1> [#uses=1] + br i1 %0, label %return, label %bb.nph + +bb.nph: ; preds = %entry + %tmp = add i32 %n, -1 ; <i32> [#uses=1] + br label %bb + +bb: ; preds = %bb.nph, %bb + %indvar = phi i32 [ 0, %bb.nph ], [ %indvar.next, %bb ] ; <i32> [#uses=1] + %u.05 = phi i64 [ undef, %bb.nph ], [ %ins, %bb ] ; <i64> [#uses=1] + %1 = tail call arm_apcscc i32 @f() nounwind ; <i32> [#uses=1] + %tmp4 = zext i32 %1 to i64 ; <i64> [#uses=1] + %mask = and i64 %u.05, -4294967296 ; <i64> [#uses=1] + %ins = or i64 %tmp4, %mask ; <i64> [#uses=2] + tail call arm_apcscc void @g(i64 %ins) nounwind + %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=2] + %exitcond = icmp eq i32 %indvar.next, %tmp ; <i1> [#uses=1] + br i1 %exitcond, label %return, label %bb + +return: ; preds = %bb, %entry + ret i32 undef +} + +define arm_apcscc i32 @test_dead_cycle(i32 %n) nounwind { +; CHECK: test_dead_cycle: +; CHECK: blx +; CHECK-NOT: mov +; CHECK: blx +entry: + %0 = icmp eq i32 %n, 1 ; <i1> [#uses=1] + br i1 %0, label %return, label %bb.nph + +bb.nph: ; preds = %entry + %tmp = add i32 %n, -1 ; <i32> [#uses=2] + br label %bb + +bb: ; preds = %bb.nph, %bb2 + %indvar = phi i32 [ 0, %bb.nph ], [ %indvar.next, %bb2 ] ; <i32> [#uses=2] + %u.17 = phi i64 [ undef, %bb.nph ], [ %u.0, %bb2 ] ; <i64> [#uses=2] + %tmp9 = sub i32 %tmp, %indvar ; <i32> [#uses=1] + %1 = icmp sgt i32 %tmp9, 1 ; <i1> [#uses=1] + br i1 %1, label %bb1, label %bb2 + +bb1: ; preds = %bb + %2 = tail call arm_apcscc i32 @f() nounwind ; <i32> [#uses=1] + %tmp6 = zext i32 %2 to i64 ; <i64> [#uses=1] + %mask = and i64 %u.17, -4294967296 ; <i64> [#uses=1] + %ins = or i64 %tmp6, %mask ; <i64> [#uses=1] + tail call arm_apcscc void @g(i64 %ins) nounwind + br label %bb2 + +bb2: ; preds = %bb1, %bb +; also check for duplicate induction variables (radar 7645034) +; CHECK: subs r{{.*}}, #1 +; CHECK-NOT: subs r{{.*}}, #1 +; CHECK: pop + %u.0 = phi i64 [ %ins, %bb1 ], [ %u.17, %bb ] ; <i64> [#uses=2] + %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=2] + %exitcond = icmp eq i32 %indvar.next, %tmp ; <i1> [#uses=1] + br i1 %exitcond, label %return, label %bb + +return: ; preds = %bb2, %entry + ret i32 undef +} + +declare arm_apcscc i32 @f() + +declare arm_apcscc void @g(i64) diff --git a/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll b/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll index 8f6449e..2b20931 100644 --- a/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll +++ b/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -mtriple=thumbv7-apple-darwin9 -mcpu=cortex-a8 | grep vmov.f32 | count 7 +; RUN: llc < %s -mtriple=thumbv7-apple-darwin9 -mcpu=cortex-a8 | grep vmov.f32 | count 3 define arm_apcscc void @fht(float* nocapture %fz, i16 signext %n) nounwind { entry: diff --git a/test/CodeGen/Thumb2/lsr-deficiency.ll b/test/CodeGen/Thumb2/lsr-deficiency.ll index 7b1b57a..ac2cd34 100644 --- a/test/CodeGen/Thumb2/lsr-deficiency.ll +++ b/test/CodeGen/Thumb2/lsr-deficiency.ll @@ -1,25 +1,29 @@ ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -relocation-model=pic | FileCheck %s ; rdar://7387640 -; FIXME: We still need to rewrite array reference iv of stride -4 with loop -; count iv of stride -1. +; This now reduces to a single induction variable. + +; TODO: It still gets a GPR shuffle at the end of the loop +; This is because something in instruction selection has decided +; that comparing the pre-incremented value with zero is better +; than comparing the post-incremented value with -4. @G = external global i32 ; <i32*> [#uses=2] @array = external global i32* ; <i32**> [#uses=1] define arm_apcscc void @t() nounwind optsize { ; CHECK: t: -; CHECK: mov.w r2, #4000 -; CHECK: movw r3, #1001 +; CHECK: mov.w r2, #1000 entry: %.pre = load i32* @G, align 4 ; <i32> [#uses=1] br label %bb bb: ; preds = %bb, %entry ; CHECK: LBB1_1: -; CHECK: subs r3, #1 -; CHECK: cmp r3, #0 -; CHECK: sub.w r2, r2, #4 +; CHECK: cmp r2, #0 +; CHECK: sub.w r9, r2, #1 +; CHECK: mov r2, r9 + %0 = phi i32 [ %.pre, %entry ], [ %3, %bb ] ; <i32> [#uses=1] %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb ] ; <i32> [#uses=2] %tmp5 = sub i32 1000, %indvar ; <i32> [#uses=1] diff --git a/test/CodeGen/Thumb2/thumb2-ifcvt1.ll b/test/CodeGen/Thumb2/thumb2-ifcvt1.ll index 71199ab..1d26756 100644 --- a/test/CodeGen/Thumb2/thumb2-ifcvt1.ll +++ b/test/CodeGen/Thumb2/thumb2-ifcvt1.ll @@ -1,6 +1,6 @@ ; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s -define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) { +define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { ; CHECK: t1: ; CHECK: it ne ; CHECK: cmpne @@ -20,12 +20,12 @@ cond_next: } ; FIXME: Check for # of unconditional branch after adding branch folding post ifcvt. -define i32 @t2(i32 %a, i32 %b) { +define i32 @t2(i32 %a, i32 %b) nounwind { entry: ; CHECK: t2: -; CHECK: ite le -; CHECK: suble +; CHECK: ite gt ; CHECK: subgt +; CHECK: suble %tmp1434 = icmp eq i32 %a, %b ; <i1> [#uses=1] br i1 %tmp1434, label %bb17, label %bb.outer @@ -60,14 +60,14 @@ bb17: ; preds = %cond_false, %cond_true, %entry @x = external global i32* ; <i32**> [#uses=1] -define void @foo(i32 %a) { +define void @foo(i32 %a) nounwind { entry: %tmp = load i32** @x ; <i32*> [#uses=1] store i32 %a, i32* %tmp ret void } -define void @t3(i32 %a, i32 %b) { +define void @t3(i32 %a, i32 %b) nounwind { entry: ; CHECK: t3: ; CHECK: it lt diff --git a/test/CodeGen/Thumb2/thumb2-spill-q.ll b/test/CodeGen/Thumb2/thumb2-spill-q.ll index 2b08789..ff178b4 100644 --- a/test/CodeGen/Thumb2/thumb2-spill-q.ll +++ b/test/CodeGen/Thumb2/thumb2-spill-q.ll @@ -12,8 +12,8 @@ declare <4 x float> @llvm.arm.neon.vld1.v4f32(i8*) nounwind readonly define arm_apcscc void @aaa(%quuz* %this, i8* %block) { ; CHECK: aaa: ; CHECK: bic r4, r4, #15 -; CHECK: vst1.64 {{.*}}sp, :128 -; CHECK: vld1.64 {{.*}}sp, :128 +; CHECK: vst1.64 {{.*}}[{{.*}}, :128] +; CHECK: vld1.64 {{.*}}[{{.*}}, :128] entry: %0 = call <4 x float> @llvm.arm.neon.vld1.v4f32(i8* undef) nounwind ; <<4 x float>> [#uses=1] store float 6.300000e+01, float* undef, align 4 diff --git a/test/CodeGen/X86/2006-05-11-InstrSched.ll b/test/CodeGen/X86/2006-05-11-InstrSched.ll index bdbe713..56d6aa9 100644 --- a/test/CodeGen/X86/2006-05-11-InstrSched.ll +++ b/test/CodeGen/X86/2006-05-11-InstrSched.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=x86 -mattr=+sse2 -stats -realign-stack=0 |&\ -; RUN: grep {asm-printer} | grep 31 +; RUN: grep {asm-printer} | grep 34 target datalayout = "e-p:32:32" define void @foo(i32* %mc, i32* %bp, i32* %ms, i32* %xmb, i32* %mpp, i32* %tpmm, i32* %ip, i32* %tpim, i32* %dpp, i32* %tpdm, i32* %bpi, i32 %M) nounwind { @@ -40,7 +40,7 @@ cond_true: ; preds = %cond_true, %entry %tmp137.upgrd.7 = bitcast i32* %tmp137 to <2 x i64>* ; <<2 x i64>*> [#uses=1] store <2 x i64> %tmp131, <2 x i64>* %tmp137.upgrd.7 %tmp147 = add nsw i32 %tmp.10, 8 ; <i32> [#uses=1] - %tmp.upgrd.8 = icmp slt i32 %tmp147, %M ; <i1> [#uses=1] + %tmp.upgrd.8 = icmp ne i32 %tmp147, %M ; <i1> [#uses=1] %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1] br i1 %tmp.upgrd.8, label %cond_true, label %return diff --git a/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll b/test/CodeGen/X86/2006-12-16-InlineAsmCrash.ll index 50a244b..50a244b 100644 --- a/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll +++ b/test/CodeGen/X86/2006-12-16-InlineAsmCrash.ll diff --git a/test/CodeGen/Generic/2007-02-23-DAGCombine-Miscompile.ll b/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll index a8f0e57..a8f0e57 100644 --- a/test/CodeGen/Generic/2007-02-23-DAGCombine-Miscompile.ll +++ b/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll diff --git a/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll b/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll index 4cac9b4..e1f8901 100644 --- a/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll +++ b/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll @@ -1,7 +1,7 @@ ; RUN: llc < %s -march=x86 -mtriple=i686-darwin | \ ; RUN: grep push | count 3 -define void @foo(i8** %buf, i32 %size, i32 %col, i8* %p) { +define void @foo(i8** %buf, i32 %size, i32 %col, i8* %p) nounwind { entry: icmp sgt i32 %size, 0 ; <i1>:0 [#uses=1] br i1 %0, label %bb.preheader, label %return diff --git a/test/CodeGen/X86/2007-10-05-3AddrConvert.ll b/test/CodeGen/X86/2007-10-05-3AddrConvert.ll index 67323e8..2c2706d 100644 --- a/test/CodeGen/X86/2007-10-05-3AddrConvert.ll +++ b/test/CodeGen/X86/2007-10-05-3AddrConvert.ll @@ -36,7 +36,9 @@ bb.i6.i: ; preds = %bb.i6.i, %stepsystem.exit.i bb107.i.i: ; preds = %bb107.i.i, %bb.i6.i %q_addr.0.i.i.in = phi %struct.bnode** [ null, %bb107.i.i ], [ %4, %bb.i6.i ] ; <%struct.bnode**> [#uses=1] - %q_addr.0.i.i = load %struct.bnode** %q_addr.0.i.i.in ; <%struct.bnode*> [#uses=0] + %q_addr.0.i.i = load %struct.bnode** %q_addr.0.i.i.in ; <%struct.bnode*> [#uses=1] + %q_addr.1 = getelementptr %struct.anon* %0, i32 0, i32 4, i32 1 + store %struct.bnode* %q_addr.0.i.i, %struct.bnode** %q_addr.1, align 4 br label %bb107.i.i bb47.loopexit.i: ; preds = %bb32.i diff --git a/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll b/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll index 721d4c9..8e315f4 100644 --- a/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll +++ b/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll @@ -35,7 +35,7 @@ cond_next36.i: ; preds = %cond_next.i bb.i28.i: ; preds = %bb.i28.i, %cond_next36.i ; CHECK: %bb.i28.i ; CHECK: addl $2 -; CHECK: addl $2 +; CHECK: addl $-2 %j.0.reg2mem.0.i16.i = phi i32 [ 0, %cond_next36.i ], [ %indvar.next39.i, %bb.i28.i ] ; <i32> [#uses=2] %din_addr.1.reg2mem.0.i17.i = phi double [ 0.000000e+00, %cond_next36.i ], [ %tmp16.i25.i, %bb.i28.i ] ; <double> [#uses=1] %tmp1.i18.i = fptosi double %din_addr.1.reg2mem.0.i17.i to i32 ; <i32> [#uses=2] diff --git a/test/CodeGen/X86/2007-11-30-TestLoadFolding.ll b/test/CodeGen/X86/2007-11-30-TestLoadFolding.ll deleted file mode 100644 index debb461..0000000 --- a/test/CodeGen/X86/2007-11-30-TestLoadFolding.ll +++ /dev/null @@ -1,58 +0,0 @@ -; RUN: llc < %s -march=x86 -stats |& \ -; RUN: grep {1 .*folded into instructions} -; RUN: llc < %s -march=x86 | grep cmp | count 4 - - %struct.quad_struct = type { i32, i32, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct* } - -define fastcc i32 @perimeter(%struct.quad_struct* %tree, i32 %size) { -entry: - %tree.idx7.val = load %struct.quad_struct** null ; <%struct.quad_struct*> [#uses=1] - %tmp8.i51 = icmp eq %struct.quad_struct* %tree.idx7.val, null ; <i1> [#uses=2] - br i1 %tmp8.i51, label %cond_next, label %cond_next.i52 - -cond_next.i52: ; preds = %entry - ret i32 0 - -cond_next: ; preds = %entry - %tmp59 = load i32* null, align 4 ; <i32> [#uses=1] - %tmp70 = icmp eq i32 %tmp59, 2 ; <i1> [#uses=1] - br i1 %tmp70, label %cond_true.i35, label %bb80 - -cond_true.i35: ; preds = %cond_next - %tmp14.i.i37 = load %struct.quad_struct** null, align 4 ; <%struct.quad_struct*> [#uses=1] - %tmp3.i160 = load i32* null, align 4 ; <i32> [#uses=1] - %tmp4.i161 = icmp eq i32 %tmp3.i160, 2 ; <i1> [#uses=1] - br i1 %tmp4.i161, label %cond_true.i163, label %cond_false.i178 - -cond_true.i163: ; preds = %cond_true.i35 - %tmp7.i162 = sdiv i32 %size, 4 ; <i32> [#uses=2] - %tmp13.i168 = tail call fastcc i32 @sum_adjacent( %struct.quad_struct* null, i32 3, i32 2, i32 %tmp7.i162 ) ; <i32> [#uses=1] - %tmp18.i11.i170 = getelementptr %struct.quad_struct* %tmp14.i.i37, i32 0, i32 4 ; <%struct.quad_struct**> [#uses=1] - %tmp19.i12.i171 = load %struct.quad_struct** %tmp18.i11.i170, align 4 ; <%struct.quad_struct*> [#uses=1] - %tmp21.i173 = tail call fastcc i32 @sum_adjacent( %struct.quad_struct* %tmp19.i12.i171, i32 3, i32 2, i32 %tmp7.i162 ) ; <i32> [#uses=1] - %tmp22.i174 = add i32 %tmp21.i173, %tmp13.i168 ; <i32> [#uses=1] - br i1 %tmp4.i161, label %cond_true.i141, label %cond_false.i156 - -cond_false.i178: ; preds = %cond_true.i35 - ret i32 0 - -cond_true.i141: ; preds = %cond_true.i163 - %tmp7.i140 = sdiv i32 %size, 4 ; <i32> [#uses=1] - %tmp21.i151 = tail call fastcc i32 @sum_adjacent( %struct.quad_struct* null, i32 3, i32 2, i32 %tmp7.i140 ) ; <i32> [#uses=0] - ret i32 0 - -cond_false.i156: ; preds = %cond_true.i163 - %tmp22.i44 = add i32 0, %tmp22.i174 ; <i32> [#uses=0] - br i1 %tmp8.i51, label %bb22.i, label %cond_next.i - -bb80: ; preds = %cond_next - ret i32 0 - -cond_next.i: ; preds = %cond_false.i156 - ret i32 0 - -bb22.i: ; preds = %cond_false.i156 - ret i32 0 -} - -declare fastcc i32 @sum_adjacent(%struct.quad_struct*, i32, i32, i32) diff --git a/test/CodeGen/X86/2008-01-25-EmptyFunction.ll b/test/CodeGen/X86/2008-01-25-EmptyFunction.ll index b936686..387645f 100644 --- a/test/CodeGen/X86/2008-01-25-EmptyFunction.ll +++ b/test/CodeGen/X86/2008-01-25-EmptyFunction.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86 | grep nop +; RUN: llc < %s -march=x86 | grep {.byte 0} target triple = "i686-apple-darwin8" diff --git a/test/CodeGen/X86/2008-07-11-SpillerBug.ll b/test/CodeGen/X86/2008-07-11-SpillerBug.ll index 88a5fde..548b44d 100644 --- a/test/CodeGen/X86/2008-07-11-SpillerBug.ll +++ b/test/CodeGen/X86/2008-07-11-SpillerBug.ll @@ -1,9 +1,7 @@ -; RUN: llc < %s -march=x86 -relocation-model=static -disable-fp-elim -post-RA-scheduler=false | FileCheck %s +; RUN: llc < %s -march=x86 -relocation-model=static -disable-fp-elim -post-RA-scheduler=false -asm-verbose=0 | FileCheck %s ; PR2536 - -; CHECK: movw %cx -; CHECK-NEXT: andl $65534, % +; CHECK: andl $65534, % ; CHECK-NEXT: movl % ; CHECK-NEXT: movl $17 diff --git a/test/CodeGen/X86/2009-02-07-CoalescerBug.ll b/test/CodeGen/X86/2009-02-07-CoalescerBug.ll deleted file mode 100644 index 2d0bbe6..0000000 --- a/test/CodeGen/X86/2009-02-07-CoalescerBug.ll +++ /dev/null @@ -1,491 +0,0 @@ -; RUN: llc < %s -march=x86 -relocation-model=pic -stats |& grep {Number of valno def marked dead} | grep 1 -; rdar://6566708 - -target triple = "i386-apple-darwin9.6" - %"struct..0$_58" = type { i32, %"struct.llvm::MachineOperand"**, %"struct.llvm::MachineOperand"* } - %"struct..1$_60" = type { i32 } - %"struct..3$_53" = type { i64 } - %struct.__false_type = type <{ i8 }> - %"struct.llvm::APFloat" = type { %"struct.llvm::fltSemantics"*, %"struct..3$_53", i16, i16 } - %"struct.llvm::AbstractTypeUser" = type { i32 (...)** } - %"struct.llvm::AnalysisResolver" = type { %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >", %"struct.llvm::PMDataManager"* } - %"struct.llvm::Annotable" = type { %"struct.llvm::Annotation"* } - %"struct.llvm::Annotation" = type { i32 (...)**, %"struct..1$_60", %"struct.llvm::Annotation"* } - %"struct.llvm::Argument" = type { %"struct.llvm::Value", %"struct.llvm::ilist_node<llvm::Argument>", %"struct.llvm::Function"* } - %"struct.llvm::AttrListPtr" = type { %"struct.llvm::AttributeListImpl"* } - %"struct.llvm::AttributeListImpl" = type opaque - %"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::ilist_node<llvm::BasicBlock>", %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", %"struct.llvm::Function"* } - %"struct.llvm::BitVector" = type { i32*, i32, i32 } - %"struct.llvm::BumpPtrAllocator" = type { i8* } - %"struct.llvm::CalleeSavedInfo" = type { i32, %"struct.llvm::TargetRegisterClass"*, i32 } - %"struct.llvm::CondCodeSDNode" = type { %"struct.llvm::SDNode", i32 } - %"struct.llvm::Constant" = type { %"struct.llvm::User" } - %"struct.llvm::DebugLocTracker" = type { %"struct.std::vector<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >", %"struct.llvm::DenseMap<llvm::DebugLocTuple,unsigned int,llvm::DenseMapInfo<llvm::DebugLocTuple>,llvm::DenseMapInfo<unsigned int> >" } - %"struct.llvm::DebugLocTuple" = type { i32, i32, i32 } - %"struct.llvm::DenseMap<llvm::DebugLocTuple,unsigned int,llvm::DenseMapInfo<llvm::DebugLocTuple>,llvm::DenseMapInfo<unsigned int> >" = type { i32, %"struct.std::pair<llvm::DebugLocTuple,unsigned int>"*, i32, i32 } - %"struct.llvm::DwarfWriter" = type opaque - %"struct.llvm::FoldingSet<llvm::SDNode>" = type { %"struct.llvm::FoldingSetImpl" } - %"struct.llvm::FoldingSetImpl" = type { i32 (...)**, i8**, i32, i32 } - %"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::ilist_node<llvm::Function>", %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", %"struct.llvm::ValueSymbolTable"*, %"struct.llvm::AttrListPtr" } - %"struct.llvm::FunctionLoweringInfo" = type opaque - %"struct.llvm::GlobalAddressSDNode" = type { %"struct.llvm::SDNode", %"struct.llvm::GlobalValue"*, i64 } - %"struct.llvm::GlobalValue" = type { %"struct.llvm::Constant", %"struct.llvm::Module"*, i32, %"struct.std::string" } - %"struct.llvm::GlobalVariable" = type { %"struct.llvm::GlobalValue", %"struct.llvm::ilist_node<llvm::GlobalVariable>", i8 } - %"struct.llvm::ImmutablePass" = type { %"struct.llvm::ModulePass" } - %"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::ilist_node<llvm::Instruction>", %"struct.llvm::BasicBlock"* } - %"struct.llvm::LandingPadInfo" = type <{ %"struct.llvm::MachineBasicBlock"*, [12 x i8], %"struct.llvm::SmallVector<unsigned int,1u>", %"struct.llvm::SmallVector<unsigned int,1u>", i32, %"struct.llvm::Function"*, %"struct.std::vector<int,std::allocator<int> >", [3 x i32] }> - %"struct.llvm::MVT" = type { %"struct..1$_60" } - %"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist_node<llvm::MachineBasicBlock>", %"struct.llvm::ilist<llvm::MachineInstr>", %"struct.llvm::BasicBlock"*, i32, %"struct.llvm::MachineFunction"*, %"struct.std::vector<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >", %"struct.std::vector<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >", %"struct.std::vector<int,std::allocator<int> >", i32, i8 } - %"struct.llvm::MachineConstantPool" = type opaque - %"struct.llvm::MachineFrameInfo" = type { %"struct.std::vector<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >", i32, i8, i8, i64, i32, i32, i8, i32, i32, %"struct.std::vector<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >", %"struct.llvm::MachineModuleInfo"*, %"struct.llvm::TargetFrameInfo"* } - %"struct.llvm::MachineFrameInfo::StackObject" = type { i64, i32, i8, i64 } - %"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", %"struct.llvm::Function"*, %"struct.llvm::TargetMachine"*, %"struct.llvm::MachineRegisterInfo"*, %"struct.llvm::AbstractTypeUser"*, %"struct.llvm::MachineFrameInfo"*, %"struct.llvm::MachineConstantPool"*, %"struct.llvm::MachineJumpTableInfo"*, %"struct.std::vector<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >", %"struct.llvm::BumpPtrAllocator", %"struct.llvm::Recycler<llvm::MachineBasicBlock,116ul,4ul>", %"struct.llvm::Recycler<llvm::MachineBasicBlock,116ul,4ul>", %"struct.llvm::ilist<llvm::MachineBasicBlock>", %"struct.llvm::DebugLocTracker" } - %"struct.llvm::MachineInstr" = type { %"struct.llvm::ilist_node<llvm::MachineInstr>", %"struct.llvm::TargetInstrDesc"*, i16, %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", %"struct.std::list<llvm::MachineMemOperand,std::allocator<llvm::MachineMemOperand> >", %"struct.llvm::MachineBasicBlock"*, %"struct..1$_60" } - %"struct.llvm::MachineJumpTableInfo" = type opaque - %"struct.llvm::MachineLocation" = type { i8, i32, i32 } - %"struct.llvm::MachineModuleInfo" = type { %"struct.llvm::ImmutablePass", %"struct.std::vector<int,std::allocator<int> >", %"struct.std::vector<llvm::MachineMove,std::allocator<llvm::MachineMove> >", %"struct.std::vector<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >", %"struct.std::vector<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >", %"struct.std::vector<int,std::allocator<int> >", %"struct.std::vector<int,std::allocator<int> >", %"struct.std::vector<llvm::Function*,std::allocator<llvm::Function*> >", %"struct.llvm::SmallPtrSet<const llvm::Function*,32u>", i8, i8, i8 } - %"struct.llvm::MachineMove" = type { i32, %"struct.llvm::MachineLocation", %"struct.llvm::MachineLocation" } - %"struct.llvm::MachineOperand" = type { i8, i8, i8, %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineOperand::$_57" } - %"struct.llvm::MachineOperand::$_57" = type { %"struct..0$_58" } - %"struct.llvm::MachineRegisterInfo" = type { %"struct.std::vector<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >", %"struct.std::vector<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >", %"struct.llvm::MachineOperand"**, %"struct.llvm::BitVector", %"struct.std::vector<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >", %"struct.std::vector<int,std::allocator<int> >" } - %"struct.llvm::Module" = type opaque - %"struct.llvm::ModulePass" = type { %"struct.llvm::Pass" } - %"struct.llvm::PATypeHandle" = type { %"struct.llvm::Type"*, %"struct.llvm::AbstractTypeUser"* } - %"struct.llvm::PATypeHolder" = type { %"struct.llvm::Type"* } - %"struct.llvm::PMDataManager" = type opaque - %"struct.llvm::Pass" = type { i32 (...)**, %"struct.llvm::AnalysisResolver"*, i32, %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } - %"struct.llvm::PassInfo" = type { i8*, i8*, i32, i8, i8, i8, %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", %"struct.llvm::Pass"* ()* } - %"struct.llvm::Recycler<llvm::MachineBasicBlock,116ul,4ul>" = type { %"struct.llvm::iplist<llvm::RecyclerStruct,llvm::ilist_traits<llvm::RecyclerStruct> >" } - %"struct.llvm::RecyclerStruct" = type { %"struct.llvm::RecyclerStruct"*, %"struct.llvm::RecyclerStruct"* } - %"struct.llvm::RecyclingAllocator<llvm::BumpPtrAllocator,llvm::SDNode,132ul,4ul>" = type { %"struct.llvm::Recycler<llvm::MachineBasicBlock,116ul,4ul>", %"struct.llvm::BumpPtrAllocator" } - %"struct.llvm::SDNode" = type { %"struct.llvm::BumpPtrAllocator", %"struct.llvm::ilist_node<llvm::SDNode>", i16, i16, i32, %"struct.llvm::SDUse"*, %"struct.llvm::MVT"*, %"struct.llvm::SDUse"*, i16, i16, %"struct..1$_60" } - %"struct.llvm::SDUse" = type { %"struct.llvm::SDValue", %"struct.llvm::SDNode"*, %"struct.llvm::SDUse"**, %"struct.llvm::SDUse"* } - %"struct.llvm::SDVTList" = type { %"struct.llvm::MVT"*, i16 } - %"struct.llvm::SDValue" = type { %"struct.llvm::SDNode"*, i32 } - %"struct.llvm::SelectionDAG" = type { %"struct.llvm::TargetLowering"*, %"struct.llvm::MachineFunction"*, %"struct.llvm::FunctionLoweringInfo"*, %"struct.llvm::MachineModuleInfo"*, %"struct.llvm::DwarfWriter"*, %"struct.llvm::SDNode", %"struct.llvm::SDValue", %"struct.llvm::ilist<llvm::SDNode>", %"struct.llvm::RecyclingAllocator<llvm::BumpPtrAllocator,llvm::SDNode,132ul,4ul>", %"struct.llvm::FoldingSet<llvm::SDNode>", %"struct.llvm::BumpPtrAllocator", %"struct.llvm::BumpPtrAllocator", %"struct.std::map<const llvm::SDNode*,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >", %"struct.std::vector<llvm::SDVTList,std::allocator<llvm::SDVTList> >", %"struct.std::vector<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >", %"struct.std::vector<llvm::SDNode*,std::allocator<llvm::SDNode*> >", %"struct.std::map<const llvm::SDNode*,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >", %"struct.llvm::StringMap<llvm::SDNode*,llvm::MallocAllocator>", %"struct.llvm::StringMap<llvm::SDNode*,llvm::MallocAllocator>" } - %"struct.llvm::SmallPtrSet<const llvm::Function*,32u>" = type { %"struct.llvm::SmallPtrSetImpl", [32 x i8*] } - %"struct.llvm::SmallPtrSetImpl" = type { i8**, i32, i32, i32, [1 x i8*] } - %"struct.llvm::SmallVector<llvm::SDValue,16u>" = type <{ [17 x i8], [127 x i8] }> - %"struct.llvm::SmallVector<unsigned int,1u>" = type <{ [17 x i8], [3 x i8], [3 x i32] }> - %"struct.llvm::StringMap<llvm::SDNode*,llvm::MallocAllocator>" = type { %"struct.llvm::StringMapImpl", %struct.__false_type } - %"struct.llvm::StringMapImpl" = type { %"struct.llvm::StringMapImpl::ItemBucket"*, i32, i32, i32, i32 } - %"struct.llvm::StringMapImpl::ItemBucket" = type { i32, %"struct..1$_60"* } - %"struct.llvm::TargetAsmInfo" = type opaque - %"struct.llvm::TargetData" = type <{ %"struct.llvm::ImmutablePass", i8, i8, i8, i8, [4 x i8], %"struct.llvm::SmallVector<llvm::SDValue,16u>" }> - %"struct.llvm::TargetFrameInfo" = type { i32 (...)**, i32, i32, i32 } - %"struct.llvm::TargetInstrDesc" = type { i16, i16, i16, i16, i8*, i32, i32, i32*, i32*, %"struct.llvm::TargetRegisterClass"**, %"struct.llvm::TargetOperandInfo"* } - %"struct.llvm::TargetLowering" = type { i32 (...)**, %"struct.llvm::TargetMachine"*, %"struct.llvm::TargetData"*, %"struct.llvm::MVT", i8, i8, i8, i8, i8, i8, i8, %"struct.llvm::MVT", i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x %"struct.llvm::TargetRegisterClass"*], [30 x i8], [30 x %"struct.llvm::MVT"], [30 x %"struct.llvm::MVT"], [179 x i64], [4 x i64], [30 x i64], [2 x [5 x i64]], [30 x i64], [24 x i64], %"struct.llvm::TargetLowering::ValueTypeActionImpl", %"struct.std::vector<llvm::APFloat,std::allocator<llvm::APFloat> >", %"struct.std::vector<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >", [23 x i8], %"struct.std::map<const llvm::SDNode*,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >", [180 x i8*], [180 x i32], i32, i32, i32, i8 } - %"struct.llvm::TargetLowering::ValueTypeActionImpl" = type { [2 x i32] } - %"struct.llvm::TargetMachine" = type { i32 (...)**, %"struct.llvm::TargetAsmInfo"* } - %"struct.llvm::TargetOperandInfo" = type { i16, i16, i32 } - %"struct.llvm::TargetRegisterClass" = type { i32 (...)**, i32, i8, %"struct.llvm::MVT"*, %"struct.llvm::TargetRegisterClass"**, %"struct.llvm::TargetRegisterClass"**, i32, i32, i32, i32*, i32* } - %"struct.llvm::Type" = type { %"struct.llvm::AbstractTypeUser", i8, [3 x i8], i32, %"struct.llvm::Type"*, %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >", i32, %"struct.llvm::PATypeHandle"* } - %"struct.llvm::Use" = type { %"struct.llvm::Value"*, %"struct.llvm::Use"*, %"struct..1$_60" } - %"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.llvm::Use"*, i32 } - %"struct.llvm::Value" = type { i32 (...)**, i16, i16, %"struct.llvm::PATypeHolder", %"struct.llvm::Use"*, %"struct.llvm::ValueName"* } - %"struct.llvm::ValueName" = type opaque - %"struct.llvm::ValueSymbolTable" = type opaque - %"struct.llvm::fltSemantics" = type opaque - %"struct.llvm::ilist<llvm::MachineBasicBlock>" = type { %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" } - %"struct.llvm::ilist<llvm::MachineInstr>" = type { %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" } - %"struct.llvm::ilist<llvm::SDNode>" = type { %"struct.llvm::iplist<llvm::SDNode,llvm::ilist_traits<llvm::SDNode> >" } - %"struct.llvm::ilist_node<llvm::Argument>" = type { %"struct.llvm::Argument"*, %"struct.llvm::Argument"* } - %"struct.llvm::ilist_node<llvm::BasicBlock>" = type { %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* } - %"struct.llvm::ilist_node<llvm::Function>" = type { %"struct.llvm::Function"*, %"struct.llvm::Function"* } - %"struct.llvm::ilist_node<llvm::GlobalVariable>" = type { %"struct.llvm::GlobalVariable"*, %"struct.llvm::GlobalVariable"* } - %"struct.llvm::ilist_node<llvm::Instruction>" = type { %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"* } - %"struct.llvm::ilist_node<llvm::MachineBasicBlock>" = type { %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"* } - %"struct.llvm::ilist_node<llvm::MachineInstr>" = type { %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"* } - %"struct.llvm::ilist_node<llvm::SDNode>" = type { %"struct.llvm::SDNode"*, %"struct.llvm::SDNode"* } - %"struct.llvm::ilist_traits<llvm::MachineBasicBlock>" = type { %"struct.llvm::MachineBasicBlock" } - %"struct.llvm::ilist_traits<llvm::MachineInstr>" = type { %"struct.llvm::MachineInstr", %"struct.llvm::MachineBasicBlock"* } - %"struct.llvm::ilist_traits<llvm::RecyclerStruct>" = type { %"struct.llvm::RecyclerStruct" } - %"struct.llvm::ilist_traits<llvm::SDNode>" = type { %"struct.llvm::SDNode" } - %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::Argument"* } - %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { %"struct.llvm::BasicBlock"* } - %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::Instruction"* } - %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { %"struct.llvm::ilist_traits<llvm::MachineBasicBlock>", %"struct.llvm::MachineBasicBlock"* } - %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { %"struct.llvm::ilist_traits<llvm::MachineInstr>", %"struct.llvm::MachineInstr"* } - %"struct.llvm::iplist<llvm::RecyclerStruct,llvm::ilist_traits<llvm::RecyclerStruct> >" = type { %"struct.llvm::ilist_traits<llvm::RecyclerStruct>", %"struct.llvm::RecyclerStruct"* } - %"struct.llvm::iplist<llvm::SDNode,llvm::ilist_traits<llvm::SDNode> >" = type { %"struct.llvm::ilist_traits<llvm::SDNode>", %"struct.llvm::SDNode"* } - %"struct.std::_List_base<llvm::MachineMemOperand,std::allocator<llvm::MachineMemOperand> >" = type { %"struct.llvm::ilist_traits<llvm::RecyclerStruct>" } - %"struct.std::_Rb_tree<const llvm::SDNode*,std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::_Select1st<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >" = type { %"struct.std::_Rb_tree<const llvm::SDNode*,std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::_Select1st<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_Rb_tree_impl<std::less<const llvm::SDNode*>,false>" } - %"struct.std::_Rb_tree<const llvm::SDNode*,std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::_Select1st<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_Rb_tree_impl<std::less<const llvm::SDNode*>,false>" = type { %struct.__false_type, %"struct.std::_Rb_tree_node_base", i32 } - %"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* } - %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >::_Vector_impl" } - %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >::_Vector_impl" = type { %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"** } - %"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" } - %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* } - %"struct.std::_Vector_base<llvm::APFloat,std::allocator<llvm::APFloat> >" = type { %"struct.std::_Vector_base<llvm::APFloat,std::allocator<llvm::APFloat> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::APFloat,std::allocator<llvm::APFloat> >::_Vector_impl" = type { %"struct.llvm::APFloat"*, %"struct.llvm::APFloat"*, %"struct.llvm::APFloat"* } - %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >::_Vector_impl" = type { %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"** } - %"struct.std::_Vector_base<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >" = type { %"struct.std::_Vector_base<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >::_Vector_impl" = type { %"struct.llvm::CalleeSavedInfo"*, %"struct.llvm::CalleeSavedInfo"*, %"struct.llvm::CalleeSavedInfo"* } - %"struct.std::_Vector_base<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >" = type { %"struct.std::_Vector_base<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >::_Vector_impl" = type { %"struct.llvm::CondCodeSDNode"**, %"struct.llvm::CondCodeSDNode"**, %"struct.llvm::CondCodeSDNode"** } - %"struct.std::_Vector_base<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >" = type { %"struct.std::_Vector_base<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >::_Vector_impl" = type { %"struct.llvm::DebugLocTuple"*, %"struct.llvm::DebugLocTuple"*, %"struct.llvm::DebugLocTuple"* } - %"struct.std::_Vector_base<llvm::Function*,std::allocator<llvm::Function*> >" = type { %"struct.std::_Vector_base<llvm::Function*,std::allocator<llvm::Function*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::Function*,std::allocator<llvm::Function*> >::_Vector_impl" = type { %"struct.llvm::Function"**, %"struct.llvm::Function"**, %"struct.llvm::Function"** } - %"struct.std::_Vector_base<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >" = type { %"struct.std::_Vector_base<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >::_Vector_impl" = type { %"struct.llvm::GlobalVariable"**, %"struct.llvm::GlobalVariable"**, %"struct.llvm::GlobalVariable"** } - %"struct.std::_Vector_base<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >" = type { %"struct.std::_Vector_base<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >::_Vector_impl" = type { %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"* } - %"struct.std::_Vector_base<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >" = type { %"struct.std::_Vector_base<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >::_Vector_impl" = type { %"struct.llvm::MachineBasicBlock"**, %"struct.llvm::MachineBasicBlock"**, %"struct.llvm::MachineBasicBlock"** } - %"struct.std::_Vector_base<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >" = type { %"struct.std::_Vector_base<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >::_Vector_impl" = type { %"struct.llvm::MachineFrameInfo::StackObject"*, %"struct.llvm::MachineFrameInfo::StackObject"*, %"struct.llvm::MachineFrameInfo::StackObject"* } - %"struct.std::_Vector_base<llvm::MachineMove,std::allocator<llvm::MachineMove> >" = type { %"struct.std::_Vector_base<llvm::MachineMove,std::allocator<llvm::MachineMove> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::MachineMove,std::allocator<llvm::MachineMove> >::_Vector_impl" = type { %"struct.llvm::MachineMove"*, %"struct.llvm::MachineMove"*, %"struct.llvm::MachineMove"* } - %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >::_Vector_impl" = type { %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"* } - %"struct.std::_Vector_base<llvm::SDNode*,std::allocator<llvm::SDNode*> >" = type { %"struct.std::_Vector_base<llvm::SDNode*,std::allocator<llvm::SDNode*> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::SDNode*,std::allocator<llvm::SDNode*> >::_Vector_impl" = type { %"struct.llvm::SDNode"**, %"struct.llvm::SDNode"**, %"struct.llvm::SDNode"** } - %"struct.std::_Vector_base<llvm::SDVTList,std::allocator<llvm::SDVTList> >" = type { %"struct.std::_Vector_base<llvm::SDVTList,std::allocator<llvm::SDVTList> >::_Vector_impl" } - %"struct.std::_Vector_base<llvm::SDVTList,std::allocator<llvm::SDVTList> >::_Vector_impl" = type { %"struct.llvm::SDVTList"*, %"struct.llvm::SDVTList"*, %"struct.llvm::SDVTList"* } - %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >::_Vector_impl" } - %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >::_Vector_impl" = type { %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* } - %"struct.std::_Vector_base<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >::_Vector_impl" } - %"struct.std::_Vector_base<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >::_Vector_impl" = type { %"struct.std::pair<const llvm::TargetRegisterClass*,llvm::MachineOperand*>"*, %"struct.std::pair<const llvm::TargetRegisterClass*,llvm::MachineOperand*>"*, %"struct.std::pair<const llvm::TargetRegisterClass*,llvm::MachineOperand*>"* } - %"struct.std::_Vector_base<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >" = type { %"struct.std::_Vector_base<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >::_Vector_impl" } - %"struct.std::_Vector_base<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >::_Vector_impl" = type { %"struct.std::pair<llvm::MVT,llvm::TargetRegisterClass*>"*, %"struct.std::pair<llvm::MVT,llvm::TargetRegisterClass*>"*, %"struct.std::pair<llvm::MVT,llvm::TargetRegisterClass*>"* } - %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >" = type { %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >::_Vector_impl" } - %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >::_Vector_impl" = type { %"struct.std::pair<int,int>"*, %"struct.std::pair<int,int>"*, %"struct.std::pair<int,int>"* } - %"struct.std::_Vector_base<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >" = type { %"struct.std::_Vector_base<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >::_Vector_impl" } - %"struct.std::_Vector_base<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >::_Vector_impl" = type { %"struct.std::vector<int,std::allocator<int> >"*, %"struct.std::vector<int,std::allocator<int> >"*, %"struct.std::vector<int,std::allocator<int> >"* } - %"struct.std::list<llvm::MachineMemOperand,std::allocator<llvm::MachineMemOperand> >" = type { %"struct.std::_List_base<llvm::MachineMemOperand,std::allocator<llvm::MachineMemOperand> >" } - %"struct.std::map<const llvm::SDNode*,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >" = type { %"struct.std::_Rb_tree<const llvm::SDNode*,std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::_Select1st<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >,std::less<const llvm::SDNode*>,std::allocator<std::pair<const llvm::SDNode* const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >" } - %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { %"struct.llvm::PassInfo"*, %"struct.llvm::Pass"* } - %"struct.std::pair<const llvm::TargetRegisterClass*,llvm::MachineOperand*>" = type { %"struct.llvm::TargetRegisterClass"*, %"struct.llvm::MachineOperand"* } - %"struct.std::pair<int,int>" = type { i32, i32 } - %"struct.std::pair<llvm::DebugLocTuple,unsigned int>" = type { %"struct.llvm::DebugLocTuple", i32 } - %"struct.std::pair<llvm::MVT,llvm::TargetRegisterClass*>" = type { %"struct.llvm::MVT", %"struct.llvm::TargetRegisterClass"* } - %"struct.std::string" = type { %"struct.llvm::BumpPtrAllocator" } - %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" } - %"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" } - %"struct.std::vector<llvm::APFloat,std::allocator<llvm::APFloat> >" = type { %"struct.std::_Vector_base<llvm::APFloat,std::allocator<llvm::APFloat> >" } - %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" } - %"struct.std::vector<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >" = type { %"struct.std::_Vector_base<llvm::CalleeSavedInfo,std::allocator<llvm::CalleeSavedInfo> >" } - %"struct.std::vector<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >" = type { %"struct.std::_Vector_base<llvm::CondCodeSDNode*,std::allocator<llvm::CondCodeSDNode*> >" } - %"struct.std::vector<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >" = type { %"struct.std::_Vector_base<llvm::DebugLocTuple,std::allocator<llvm::DebugLocTuple> >" } - %"struct.std::vector<llvm::Function*,std::allocator<llvm::Function*> >" = type { %"struct.std::_Vector_base<llvm::Function*,std::allocator<llvm::Function*> >" } - %"struct.std::vector<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >" = type { %"struct.std::_Vector_base<llvm::GlobalVariable*,std::allocator<llvm::GlobalVariable*> >" } - %"struct.std::vector<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >" = type { %"struct.std::_Vector_base<llvm::LandingPadInfo,std::allocator<llvm::LandingPadInfo> >" } - %"struct.std::vector<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >" = type { %"struct.std::_Vector_base<llvm::MachineBasicBlock*,std::allocator<llvm::MachineBasicBlock*> >" } - %"struct.std::vector<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >" = type { %"struct.std::_Vector_base<llvm::MachineFrameInfo::StackObject,std::allocator<llvm::MachineFrameInfo::StackObject> >" } - %"struct.std::vector<llvm::MachineMove,std::allocator<llvm::MachineMove> >" = type { %"struct.std::_Vector_base<llvm::MachineMove,std::allocator<llvm::MachineMove> >" } - %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" } - %"struct.std::vector<llvm::SDNode*,std::allocator<llvm::SDNode*> >" = type { %"struct.std::_Vector_base<llvm::SDNode*,std::allocator<llvm::SDNode*> >" } - %"struct.std::vector<llvm::SDVTList,std::allocator<llvm::SDVTList> >" = type { %"struct.std::_Vector_base<llvm::SDVTList,std::allocator<llvm::SDVTList> >" } - %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } - %"struct.std::vector<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*>,std::allocator<std::pair<const llvm::TargetRegisterClass*, llvm::MachineOperand*> > >" } - %"struct.std::vector<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >" = type { %"struct.std::_Vector_base<std::pair<llvm::MVT, llvm::TargetRegisterClass*>,std::allocator<std::pair<llvm::MVT, llvm::TargetRegisterClass*> > >" } - %"struct.std::vector<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >" = type { %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>,std::allocator<std::pair<unsigned int, unsigned int> > >" } - %"struct.std::vector<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >" = type { %"struct.std::_Vector_base<std::vector<unsigned int, std::allocator<unsigned int> >,std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >" } -@"\01LC81" = internal constant [65 x i8] c"/Users/echeng/LLVM/llvm/include/llvm/CodeGen/SelectionDAGNodes.h\00" ; <[65 x i8]*> [#uses=1] -@_ZZNK4llvm6SDNode12getValueTypeEjE8__func__ = internal constant [13 x i8] c"getValueType\00" ; <[13 x i8]*> [#uses=1] -@"\01LC83" = internal constant [46 x i8] c"ResNo < NumValues && \22Illegal result number!\22\00" ; <[46 x i8]*> [#uses=1] -@"\01LC197" = internal constant [16 x i8] c"___tls_get_addr\00" ; <[16 x i8]*> [#uses=1] -@llvm.used1 = appending global [1 x i8*] [ i8* bitcast (i64 (%"struct.llvm::GlobalAddressSDNode"*, %"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"*)* @_ZL31LowerToTLSGeneralDynamicModel32PN4llvm19GlobalAddressSDNodeERNS_12SelectionDAGENS_3MVTE to i8*) ], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0] - -define fastcc i64 @_ZL31LowerToTLSGeneralDynamicModel32PN4llvm19GlobalAddressSDNodeERNS_12SelectionDAGENS_3MVTE(%"struct.llvm::GlobalAddressSDNode"* %GA, %"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind noinline { -entry: - %VT2.i185 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT1.i186 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %Ops.i187 = alloca [4 x %"struct.llvm::SDValue"], align 8 ; <[4 x %"struct.llvm::SDValue"]*> [#uses=9] - %0 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT182 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT2.i173 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT1.i174 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %Ops.i175 = alloca [4 x %"struct.llvm::SDValue"], align 8 ; <[4 x %"struct.llvm::SDValue"]*> [#uses=9] - %1 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT3.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT2.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %VT1.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %Ops.i = alloca [3 x %"struct.llvm::SDValue"], align 8 ; <[3 x %"struct.llvm::SDValue"]*> [#uses=7] - %VT = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %Ops1 = alloca [5 x %"struct.llvm::SDValue"], align 8 ; <[5 x %"struct.llvm::SDValue"]*> [#uses=11] - %Ops = alloca [3 x %"struct.llvm::SDValue"], align 8 ; <[3 x %"struct.llvm::SDValue"]*> [#uses=7] - %NodeTys = alloca %"struct.llvm::SDVTList", align 8 ; <%"struct.llvm::SDVTList"*> [#uses=4] - %2 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %3 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %4 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %5 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] - %6 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 10, i32 0 ; <i32*> [#uses=1] - %7 = load i32* %6, align 4 ; <i32> [#uses=5] - %8 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 208, i32 0, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; <i64> [#uses=2] - %9 = trunc i64 %8 to i32 ; <i32> [#uses=1] - %sroa.store.elt = lshr i64 %8, 32 ; <i64> [#uses=1] - %10 = trunc i64 %sroa.store.elt to i32 ; <i32> [#uses=3] - %tmp52 = inttoptr i32 %9 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=3] - %11 = getelementptr %"struct.llvm::SelectionDAG"* %DAG, i32 0, i32 5 ; <%"struct.llvm::SDNode"*> [#uses=1] - %12 = getelementptr %"struct.llvm::MVT"* %VT1.i186, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 0, i32* %12, align 8 - %13 = getelementptr %"struct.llvm::MVT"* %VT2.i185, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 12, i32* %13, align 8 - %14 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i186, %"struct.llvm::MVT"* byval align 4 %VT2.i185) nounwind ; <i64> [#uses=1] - %15 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %11, %"struct.llvm::SDNode"** %15, align 8 - %16 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - store i32 0, i32* %16, align 4 - %17 = getelementptr %"struct.llvm::SDNode"* %tmp52, i32 0, i32 9 ; <i16*> [#uses=1] - %18 = load i16* %17, align 2 ; <i16> [#uses=1] - %19 = zext i16 %18 to i32 ; <i32> [#uses=1] - %20 = icmp ugt i32 %19, %10 ; <i1> [#uses=1] - br i1 %20, label %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193, label %bb.i.i.i188 - -bb.i.i.i188: ; preds = %entry - call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind - unreachable - -_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193: ; preds = %entry - %21 = trunc i64 %14 to i32 ; <i32> [#uses=1] - %tmp4.i.i189 = inttoptr i32 %21 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] - %22 = getelementptr %"struct.llvm::SDNode"* %tmp52, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] - %23 = load %"struct.llvm::MVT"** %22, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] - %24 = getelementptr %"struct.llvm::MVT"* %23, i32 %10, i32 0, i32 0 ; <i32*> [#uses=1] - %25 = load i32* %24, align 4 ; <i32> [#uses=1] - %26 = getelementptr %"struct.llvm::MVT"* %0, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 %25, i32* %26, align 8 - %27 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 19, %"struct.llvm::MVT"* byval align 4 %0) nounwind ; <i64> [#uses=2] - %28 = trunc i64 %27 to i32 ; <i32> [#uses=1] - %sroa.store.elt.i190 = lshr i64 %27, 32 ; <i64> [#uses=1] - %29 = trunc i64 %sroa.store.elt.i190 to i32 ; <i32> [#uses=1] - %30 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp5.i191 = inttoptr i32 %28 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp5.i191, %"struct.llvm::SDNode"** %30, align 8 - %31 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] - store i32 %29, i32* %31, align 4 - %32 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp52, %"struct.llvm::SDNode"** %32, align 8 - %33 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 2, i32 1 ; <i32*> [#uses=1] - store i32 %10, i32* %33, align 4 - %34 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* null, %"struct.llvm::SDNode"** %34, align 8 - %35 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 3, i32 1 ; <i32*> [#uses=1] - store i32 0, i32* %35, align 4 - %36 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] - %37 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 36, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i189, i32 2, %"struct.llvm::SDValue"* %36, i32 3) nounwind ; <i64> [#uses=2] - %38 = trunc i64 %37 to i32 ; <i32> [#uses=1] - %tmp66 = inttoptr i32 %38 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=2] - %39 = getelementptr %"struct.llvm::MVT"* %5, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 12, i32* %39, align 8 - %40 = getelementptr %"struct.llvm::MVT"* %4, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 0, i32* %40, align 8 - %41 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %PtrVT, %"struct.llvm::MVT"* byval align 4 %4, %"struct.llvm::MVT"* byval align 4 %5) nounwind ; <i64> [#uses=2] - %42 = trunc i64 %41 to i32 ; <i32> [#uses=1] - %sroa.store.elt75 = lshr i64 %41, 32 ; <i64> [#uses=1] - %43 = trunc i64 %sroa.store.elt75 to i16 ; <i16> [#uses=1] - %44 = getelementptr %"struct.llvm::SDVTList"* %NodeTys, i32 0, i32 0 ; <%"struct.llvm::MVT"**> [#uses=2] - %tmp78 = inttoptr i32 %42 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] - store %"struct.llvm::MVT"* %tmp78, %"struct.llvm::MVT"** %44, align 8 - %45 = getelementptr %"struct.llvm::SDVTList"* %NodeTys, i32 0, i32 1 ; <i16*> [#uses=2] - store i16 %43, i16* %45, align 4 - %46 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 9 ; <i16*> [#uses=1] - %47 = load i16* %46, align 2 ; <i16> [#uses=1] - %48 = icmp eq i16 %47, 0 ; <i1> [#uses=1] - br i1 %48, label %bb.i, label %_ZNK4llvm6SDNode12getValueTypeEj.exit - -bb.i: ; preds = %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193 - call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind - unreachable - -_ZNK4llvm6SDNode12getValueTypeEj.exit: ; preds = %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193 - %sroa.store.elt63 = lshr i64 %37, 32 ; <i64> [#uses=1] - %49 = trunc i64 %sroa.store.elt63 to i32 ; <i32> [#uses=1] - %50 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 2 ; <i64*> [#uses=1] - %51 = load i64* %50, align 4 ; <i64> [#uses=1] - %52 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] - %53 = load %"struct.llvm::MVT"** %52, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] - %54 = getelementptr %"struct.llvm::MVT"* %53, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - %55 = load i32* %54, align 4 ; <i32> [#uses=1] - %56 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 1 ; <%"struct.llvm::GlobalValue"**> [#uses=1] - %57 = load %"struct.llvm::GlobalValue"** %56, align 4 ; <%"struct.llvm::GlobalValue"*> [#uses=1] - %58 = getelementptr %"struct.llvm::MVT"* %VT182, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 %55, i32* %58, align 8 - %59 = call i64 @_ZN4llvm12SelectionDAG16getGlobalAddressEPKNS_11GlobalValueENS_3MVTExb(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::GlobalValue"* %57, %"struct.llvm::MVT"* byval align 4 %VT182, i64 %51, i8 zeroext 1) nounwind ; <i64> [#uses=2] - %60 = trunc i64 %59 to i32 ; <i32> [#uses=1] - %sroa.store.elt83 = lshr i64 %59, 32 ; <i64> [#uses=1] - %61 = trunc i64 %sroa.store.elt83 to i32 ; <i32> [#uses=1] - %tmp86 = inttoptr i32 %60 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - %62 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp66, %"struct.llvm::SDNode"** %62, align 8 - %63 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - store i32 %49, i32* %63, align 4 - %64 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp86, %"struct.llvm::SDNode"** %64, align 8 - %65 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] - store i32 %61, i32* %65, align 4 - %66 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp66, %"struct.llvm::SDNode"** %66, align 8 - %67 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 2, i32 1 ; <i32*> [#uses=1] - store i32 1, i32* %67, align 4 - %68 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] - %69 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 220, i32 %7, %"struct.llvm::SDVTList"* byval align 4 %NodeTys, %"struct.llvm::SDValue"* %68, i32 3) nounwind ; <i64> [#uses=2] - %70 = trunc i64 %69 to i32 ; <i32> [#uses=1] - %sroa.store.elt89 = lshr i64 %69, 32 ; <i64> [#uses=1] - %71 = trunc i64 %sroa.store.elt89 to i32 ; <i32> [#uses=3] - %tmp92 = inttoptr i32 %70 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=7] - call void @_ZNK4llvm6SDNode4dumpEv(%"struct.llvm::SDNode"* %tmp92) nounwind - %72 = getelementptr %"struct.llvm::MVT"* %VT1.i174, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 0, i32* %72, align 8 - %73 = getelementptr %"struct.llvm::MVT"* %VT2.i173, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 12, i32* %73, align 8 - %74 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i174, %"struct.llvm::MVT"* byval align 4 %VT2.i173) nounwind ; <i64> [#uses=1] - %75 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %75, align 8 - %76 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - store i32 1, i32* %76, align 4 - %77 = getelementptr %"struct.llvm::SDNode"* %tmp92, i32 0, i32 9 ; <i16*> [#uses=1] - %78 = load i16* %77, align 2 ; <i16> [#uses=1] - %79 = zext i16 %78 to i32 ; <i32> [#uses=1] - %80 = icmp ugt i32 %79, %71 ; <i1> [#uses=1] - br i1 %80, label %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit, label %bb.i.i.i - -bb.i.i.i: ; preds = %_ZNK4llvm6SDNode12getValueTypeEj.exit - call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind - unreachable - -_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit: ; preds = %_ZNK4llvm6SDNode12getValueTypeEj.exit - %81 = trunc i64 %74 to i32 ; <i32> [#uses=1] - %tmp4.i.i176 = inttoptr i32 %81 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] - %82 = getelementptr %"struct.llvm::SDNode"* %tmp92, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] - %83 = load %"struct.llvm::MVT"** %82, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] - %84 = getelementptr %"struct.llvm::MVT"* %83, i32 %71, i32 0, i32 0 ; <i32*> [#uses=1] - %85 = load i32* %84, align 4 ; <i32> [#uses=1] - %86 = getelementptr %"struct.llvm::MVT"* %1, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 %85, i32* %86, align 8 - %87 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %1) nounwind ; <i64> [#uses=2] - %88 = trunc i64 %87 to i32 ; <i32> [#uses=1] - %sroa.store.elt.i177 = lshr i64 %87, 32 ; <i64> [#uses=1] - %89 = trunc i64 %sroa.store.elt.i177 to i32 ; <i32> [#uses=1] - %90 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp5.i178 = inttoptr i32 %88 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp5.i178, %"struct.llvm::SDNode"** %90, align 8 - %91 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] - store i32 %89, i32* %91, align 4 - %92 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %92, align 8 - %93 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 2, i32 1 ; <i32*> [#uses=1] - store i32 %71, i32* %93, align 4 - %94 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %94, align 8 - %95 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 3, i32 1 ; <i32*> [#uses=1] - store i32 2, i32* %95, align 4 - %96 = icmp eq %"struct.llvm::SDNode"* %tmp92, null ; <i1> [#uses=1] - %iftmp.583.0.i = select i1 %96, i32 3, i32 4 ; <i32> [#uses=1] - %97 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] - %98 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 36, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i176, i32 2, %"struct.llvm::SDValue"* %97, i32 %iftmp.583.0.i) nounwind ; <i64> [#uses=2] - %99 = trunc i64 %98 to i32 ; <i32> [#uses=1] - %sroa.store.elt107 = lshr i64 %98, 32 ; <i64> [#uses=1] - %100 = trunc i64 %sroa.store.elt107 to i32 ; <i32> [#uses=1] - %tmp110 = inttoptr i32 %99 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=2] - %101 = getelementptr %"struct.llvm::MVT"* %3, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 12, i32* %101, align 8 - %102 = getelementptr %"struct.llvm::MVT"* %2, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 0, i32* %102, align 8 - %103 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %2, %"struct.llvm::MVT"* byval align 4 %3) nounwind ; <i64> [#uses=2] - %104 = trunc i64 %103 to i32 ; <i32> [#uses=1] - %sroa.store.elt119 = lshr i64 %103, 32 ; <i64> [#uses=1] - %105 = trunc i64 %sroa.store.elt119 to i16 ; <i16> [#uses=1] - %tmp122 = inttoptr i32 %104 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] - store %"struct.llvm::MVT"* %tmp122, %"struct.llvm::MVT"** %44, align 8 - store i16 %105, i16* %45, align 4 - %106 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp110, %"struct.llvm::SDNode"** %106, align 8 - %107 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - store i32 %100, i32* %107, align 4 - %108 = call i64 @_ZN4llvm12SelectionDAG23getTargetExternalSymbolEPKcNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i8* getelementptr ([16 x i8]* @"\01LC197", i32 0, i32 0), %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; <i64> [#uses=2] - %109 = trunc i64 %108 to i32 ; <i32> [#uses=1] - %sroa.store.elt125 = lshr i64 %108, 32 ; <i64> [#uses=1] - %110 = trunc i64 %sroa.store.elt125 to i32 ; <i32> [#uses=1] - %111 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp128 = inttoptr i32 %109 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp128, %"struct.llvm::SDNode"** %111, align 8 - %112 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] - store i32 %110, i32* %112, align 4 - %113 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; <i64> [#uses=2] - %114 = trunc i64 %113 to i32 ; <i32> [#uses=1] - %sroa.store.elt131 = lshr i64 %113, 32 ; <i64> [#uses=1] - %115 = trunc i64 %sroa.store.elt131 to i32 ; <i32> [#uses=1] - %116 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp134 = inttoptr i32 %114 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp134, %"struct.llvm::SDNode"** %116, align 8 - %117 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 2, i32 1 ; <i32*> [#uses=1] - store i32 %115, i32* %117, align 4 - %118 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 19, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; <i64> [#uses=2] - %119 = trunc i64 %118 to i32 ; <i32> [#uses=1] - %sroa.store.elt137 = lshr i64 %118, 32 ; <i64> [#uses=1] - %120 = trunc i64 %sroa.store.elt137 to i32 ; <i32> [#uses=1] - %121 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp140 = inttoptr i32 %119 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp140, %"struct.llvm::SDNode"** %121, align 8 - %122 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 3, i32 1 ; <i32*> [#uses=1] - store i32 %120, i32* %122, align 4 - %123 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 4, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp110, %"struct.llvm::SDNode"** %123, align 8 - %124 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 4, i32 1 ; <i32*> [#uses=1] - store i32 1, i32* %124, align 4 - %125 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] - %126 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 195, i32 %7, %"struct.llvm::SDVTList"* byval align 4 %NodeTys, %"struct.llvm::SDValue"* %125, i32 5) nounwind ; <i64> [#uses=2] - %127 = trunc i64 %126 to i32 ; <i32> [#uses=1] - %sroa.store.elt143 = lshr i64 %126, 32 ; <i64> [#uses=1] - %128 = trunc i64 %sroa.store.elt143 to i32 ; <i32> [#uses=1] - %tmp146 = inttoptr i32 %127 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=3] - %tmp171195 = getelementptr %"struct.llvm::MVT"* %PtrVT, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp197 = load i32* %tmp171195, align 1 ; <i32> [#uses=2] - %129 = getelementptr %"struct.llvm::MVT"* %VT, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 %tmp197, i32* %129, align 8 - %130 = getelementptr %"struct.llvm::MVT"* %VT1.i, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 %tmp197, i32* %130, align 8 - %131 = getelementptr %"struct.llvm::MVT"* %VT2.i, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 0, i32* %131, align 8 - %132 = getelementptr %"struct.llvm::MVT"* %VT3.i, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - store i32 12, i32* %132, align 8 - %133 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i, %"struct.llvm::MVT"* byval align 4 %VT2.i, %"struct.llvm::MVT"* byval align 4 %VT3.i) nounwind ; <i64> [#uses=1] - %134 = trunc i64 %133 to i32 ; <i32> [#uses=1] - %tmp4.i.i = inttoptr i32 %134 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] - %135 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp146, %"struct.llvm::SDNode"** %135, align 8 - %136 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - store i32 %128, i32* %136, align 4 - %137 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %VT) nounwind ; <i64> [#uses=2] - %138 = trunc i64 %137 to i32 ; <i32> [#uses=1] - %sroa.store.elt.i = lshr i64 %137, 32 ; <i64> [#uses=1] - %139 = trunc i64 %sroa.store.elt.i to i32 ; <i32> [#uses=1] - %140 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - %tmp5.i = inttoptr i32 %138 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] - store %"struct.llvm::SDNode"* %tmp5.i, %"struct.llvm::SDNode"** %140, align 8 - %141 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] - store i32 %139, i32* %141, align 4 - %142 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] - store %"struct.llvm::SDNode"* %tmp146, %"struct.llvm::SDNode"** %142, align 8 - %143 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 2, i32 1 ; <i32*> [#uses=1] - store i32 1, i32* %143, align 4 - %144 = icmp eq %"struct.llvm::SDNode"* %tmp146, null ; <i1> [#uses=1] - %iftmp.588.0.i = select i1 %144, i32 2, i32 3 ; <i32> [#uses=1] - %145 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] - %146 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 37, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i, i32 3, %"struct.llvm::SDValue"* %145, i32 %iftmp.588.0.i) nounwind ; <i64> [#uses=1] - ret i64 %146 -} - -declare void @__assert_rtn(i8*, i8*, i32, i8*) noreturn - -declare i64 @_ZN4llvm12SelectionDAG16getGlobalAddressEPKNS_11GlobalValueENS_3MVTExb(%"struct.llvm::SelectionDAG"*, %"struct.llvm::GlobalValue"*, %"struct.llvm::MVT"* byval align 4, i64, i8 zeroext) - -declare i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4) - -declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::SDVTList"* byval align 4, %"struct.llvm::SDValue"*, i32) - -declare i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"*, i32, %"struct.llvm::MVT"* byval align 4) - -declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::MVT"*, i32, %"struct.llvm::SDValue"*, i32) - -declare i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4) - -declare i64 @_ZN4llvm12SelectionDAG23getTargetExternalSymbolEPKcNS_3MVTE(%"struct.llvm::SelectionDAG"*, i8*, %"struct.llvm::MVT"* byval align 4) - -declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_3MVTE(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::MVT"* byval align 4) - -declare void @_ZNK4llvm6SDNode4dumpEv(%"struct.llvm::SDNode"*) diff --git a/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll b/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll index 5bd956a..abbe97a 100644 --- a/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll +++ b/test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple=i386-apple-darwin10.0 -relocation-model=pic \ +; RUN: llc -mtriple=i386-apple-darwin10.0 -relocation-model=pic -asm-verbose=false \ ; RUN: -disable-fp-elim -mattr=-sse41,-sse3,+sse2 -post-RA-scheduler=false < %s | \ ; RUN: FileCheck %s ; rdar://6808032 diff --git a/test/CodeGen/X86/2009-09-07-CoalescerBug.ll b/test/CodeGen/X86/2009-09-07-CoalescerBug.ll index 55432be..a5b4a79 100644 --- a/test/CodeGen/X86/2009-09-07-CoalescerBug.ll +++ b/test/CodeGen/X86/2009-09-07-CoalescerBug.ll @@ -8,8 +8,8 @@ define i64 @hammer_time(i64 %modulep, i64 %physfree) nounwind ssp noredzone noimplicitfloat { ; CHECK: hammer_time: ; CHECK: movq $Xrsvd, %rax +; CHECK: movq $Xrsvd, %rsi ; CHECK: movq $Xrsvd, %rdi -; CHECK: movq $Xrsvd, %r8 entry: br i1 undef, label %if.then, label %if.end diff --git a/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll b/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll index 9e58872..7b5e871 100644 --- a/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll +++ b/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll @@ -13,7 +13,6 @@ define i32 @t(i32 %clientPort, i32 %pluginID, i32 %requestID, i32 %objectID, i64 entry: ; CHECK: _t: ; CHECK: movl 16(%rbp), -; CHECK: movl 16(%rbp), %edx %0 = zext i32 %argumentsLength to i64 ; <i64> [#uses=1] %1 = zext i32 %clientPort to i64 ; <i64> [#uses=1] %2 = inttoptr i64 %1 to %struct.ComplexType* ; <%struct.ComplexType*> [#uses=1] diff --git a/test/CodeGen/X86/2009-11-04-SubregCoalescingBug.ll b/test/CodeGen/X86/2009-11-04-SubregCoalescingBug.ll index 628b899..b5be65f 100644 --- a/test/CodeGen/X86/2009-11-04-SubregCoalescingBug.ll +++ b/test/CodeGen/X86/2009-11-04-SubregCoalescingBug.ll @@ -5,7 +5,7 @@ define void @bar(i32 %b, i32 %a) nounwind optsize ssp { entry: ; CHECK: leal 15(%rsi), %edi ; CHECK-NOT: movl -; CHECK: callq _foo +; CHECK: _foo %0 = add i32 %a, 15 ; <i32> [#uses=1] %1 = zext i32 %0 to i64 ; <i64> [#uses=1] tail call void @foo(i64 %1) nounwind diff --git a/test/CodeGen/X86/2010-02-01-TaillCallCrash.ll b/test/CodeGen/X86/2010-02-01-TaillCallCrash.ll new file mode 100644 index 0000000..2751174 --- /dev/null +++ b/test/CodeGen/X86/2010-02-01-TaillCallCrash.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu +; PR6196 + +%"char[]" = type [1 x i8] + +@.str = external constant %"char[]", align 1 ; <%"char[]"*> [#uses=1] + +define i32 @regex_subst() nounwind { +entry: + %0 = tail call i32 bitcast (%"char[]"* @.str to i32 (i32)*)(i32 0) nounwind ; <i32> [#uses=1] + ret i32 %0 +} diff --git a/test/CodeGen/X86/2010-02-03-DualUndef.ll b/test/CodeGen/X86/2010-02-03-DualUndef.ll new file mode 100644 index 0000000..d116ecc --- /dev/null +++ b/test/CodeGen/X86/2010-02-03-DualUndef.ll @@ -0,0 +1,27 @@ +; RUN: llc < %s -march=x86-64 +; PR6086 +define fastcc void @prepOutput() nounwind { +bb: ; preds = %output.exit + br label %bb.i1 + +bb.i1: ; preds = %bb7.i, %bb + br i1 undef, label %bb7.i, label %bb.nph.i + +bb.nph.i: ; preds = %bb.i1 + br label %bb3.i + +bb3.i: ; preds = %bb5.i6, %bb.nph.i + %tmp10.i = trunc i64 undef to i32 ; <i32> [#uses=1] + br i1 undef, label %bb4.i, label %bb5.i6 + +bb4.i: ; preds = %bb3.i + br label %bb5.i6 + +bb5.i6: ; preds = %bb4.i, %bb3.i + %0 = phi i32 [ undef, %bb4.i ], [ undef, %bb3.i ] ; <i32> [#uses=1] + %1 = icmp slt i32 %0, %tmp10.i ; <i1> [#uses=1] + br i1 %1, label %bb7.i, label %bb3.i + +bb7.i: ; preds = %bb5.i6, %bb.i1 + br label %bb.i1 +} diff --git a/test/CodeGen/X86/2010-02-04-SchedulerBug.ll b/test/CodeGen/X86/2010-02-04-SchedulerBug.ll new file mode 100644 index 0000000..c966e21 --- /dev/null +++ b/test/CodeGen/X86/2010-02-04-SchedulerBug.ll @@ -0,0 +1,28 @@ +; RUN: llc < %s -mtriple=i386-apple-darwin11 +; rdar://7604000 + +%struct.a_t = type { i8*, i64*, i8*, i32, i32, i64*, i64*, i64* } +%struct.b_t = type { i32, i32, i32, i32, i64, i64, i64, i64 } + +define void @t(i32 %cNum, i64 %max) nounwind optsize ssp noimplicitfloat { +entry: + %0 = load %struct.b_t** null, align 4 ; <%struct.b_t*> [#uses=1] + %1 = getelementptr inbounds %struct.b_t* %0, i32 %cNum, i32 5 ; <i64*> [#uses=1] + %2 = load i64* %1, align 4 ; <i64> [#uses=1] + %3 = icmp ult i64 %2, %max ; <i1> [#uses=1] + %4 = getelementptr inbounds %struct.a_t* null, i32 0, i32 7 ; <i64**> [#uses=1] + %5 = load i64** %4, align 4 ; <i64*> [#uses=0] + %6 = load i64* null, align 4 ; <i64> [#uses=1] + br i1 %3, label %bb2, label %bb + +bb: ; preds = %entry + br label %bb3 + +bb2: ; preds = %entry + %7 = or i64 %6, undef ; <i64> [#uses=1] + br label %bb3 + +bb3: ; preds = %bb2, %bb + %misc_enables.0 = phi i64 [ undef, %bb ], [ %7, %bb2 ] ; <i64> [#uses=0] + ret void +} diff --git a/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll b/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll new file mode 100644 index 0000000..c5d3d16 --- /dev/null +++ b/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll @@ -0,0 +1,260 @@ +; RUN: llc < %s > %t +; PR6283 + +; Tricky coalescer bug: +; After coalescing %RAX with a virtual register, this instruction was rematted: +; +; %EAX<def> = MOV32rr %reg1070<kill> +; +; This instruction silently defined %RAX, and when rematting removed the +; instruction, the live interval for %RAX was not properly updated. The valno +; referred to a deleted instruction and bad things happened. +; +; The fix is to implicitly define %RAX when coalescing: +; +; %EAX<def> = MOV32rr %reg1070<kill>, %RAX<imp-def> +; + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" +target triple = "x86_64-unknown-linux-gnu" + +module asm "\09.ident\09\22GCC: (GNU) 4.5.0 20100212 (experimental) LLVM: 95975\22" + +%0 = type { %"union gimple_statement_d"* } +%"BITMAP_WORD[]" = type [2 x i64] +%"char[]" = type [4 x i8] +%"enum dom_state[]" = type [2 x i32] +%"int[]" = type [4 x i32] +%"struct VEC_basic_block_base" = type { i32, i32, [1 x %"struct basic_block_def"*] } +%"struct VEC_basic_block_gc" = type { %"struct VEC_basic_block_base" } +%"struct VEC_edge_base" = type { i32, i32, [1 x %"struct edge_def"*] } +%"struct VEC_edge_gc" = type { %"struct VEC_edge_base" } +%"struct VEC_gimple_base" = type { i32, i32, [1 x %"union gimple_statement_d"*] } +%"struct VEC_gimple_gc" = type { %"struct VEC_gimple_base" } +%"struct VEC_iv_cand_p_base" = type { i32, i32, [1 x %"struct iv_cand"*] } +%"struct VEC_iv_cand_p_heap" = type { %"struct VEC_iv_cand_p_base" } +%"struct VEC_iv_use_p_base" = type { i32, i32, [1 x %"struct iv_use"*] } +%"struct VEC_iv_use_p_heap" = type { %"struct VEC_iv_use_p_base" } +%"struct VEC_loop_p_base" = type { i32, i32, [1 x %"struct loop"*] } +%"struct VEC_loop_p_gc" = type { %"struct VEC_loop_p_base" } +%"struct VEC_rtx_base" = type { i32, i32, [1 x %"struct rtx_def"*] } +%"struct VEC_rtx_gc" = type { %"struct VEC_rtx_base" } +%"struct VEC_tree_base" = type { i32, i32, [1 x %"union tree_node"*] } +%"struct VEC_tree_gc" = type { %"struct VEC_tree_base" } +%"struct _obstack_chunk" = type { i8*, %"struct _obstack_chunk"*, %"char[]" } +%"struct basic_block_def" = type { %"struct VEC_edge_gc"*, %"struct VEC_edge_gc"*, i8*, %"struct loop"*, [2 x %"struct et_node"*], %"struct basic_block_def"*, %"struct basic_block_def"*, %"union basic_block_il_dependent", i64, i32, i32, i32, i32, i32 } +%"struct bitmap_element" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"BITMAP_WORD[]" } +%"struct bitmap_head_def" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"struct bitmap_obstack"* } +%"struct bitmap_obstack" = type { %"struct bitmap_element"*, %"struct bitmap_head_def"*, %"struct obstack" } +%"struct block_symbol" = type { [3 x %"union rtunion"], %"struct object_block"*, i64 } +%"struct comp_cost" = type { i32, i32 } +%"struct control_flow_graph" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct VEC_basic_block_gc"*, i32, i32, i32, %"struct VEC_basic_block_gc"*, i32, %"enum dom_state[]", %"enum dom_state[]", i32, i32 } +%"struct cost_pair" = type { %"struct iv_cand"*, %"struct comp_cost", %"struct bitmap_head_def"*, %"union tree_node"* } +%"struct def_optype_d" = type { %"struct def_optype_d"*, %"union tree_node"** } +%"struct double_int" = type { i64, i64 } +%"struct edge_def" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"union edge_def_insns", i8*, %"union tree_node"*, i32, i32, i32, i32, i64 } +%"struct eh_status" = type opaque +%"struct et_node" = type opaque +%"struct function" = type { %"struct eh_status"*, %"struct control_flow_graph"*, %"struct gimple_seq_d"*, %"struct gimple_df"*, %"struct loops"*, %"struct htab"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct machine_function"*, %"struct language_function"*, %"struct htab"*, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i8, i8 } +%"struct gimple_bb_info" = type { %"struct gimple_seq_d"*, %"struct gimple_seq_d"* } +%"struct gimple_df" = type { %"struct htab"*, %"struct VEC_gimple_gc"*, %"struct VEC_tree_gc"*, %"union tree_node"*, %"struct pt_solution", %"struct pt_solution", %"struct pointer_map_t"*, %"union tree_node"*, %"struct htab"*, %"struct bitmap_head_def"*, i8, %"struct ssa_operands" } +%"struct gimple_seq_d" = type { %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_d"* } +%"struct gimple_seq_node_d" = type { %"union gimple_statement_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"* } +%"struct gimple_statement_base" = type { i8, i8, i16, i32, i32, i32, %"struct basic_block_def"*, %"union tree_node"* } +%"struct gimple_statement_phi" = type { %"struct gimple_statement_base", i32, i32, %"union tree_node"*, %"struct phi_arg_d[]" } +%"struct htab" = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i64, i64, i64, i32, i32, i8* (i64, i64)*, void (i8*)*, i8*, i8* (i8*, i64, i64)*, void (i8*, i8*)*, i32 } +%"struct iv" = type { %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i32 } +%"struct iv_cand" = type { i32, i8, i32, %"union gimple_statement_d"*, %"union tree_node"*, %"union tree_node"*, %"struct iv"*, i32, i32, %"struct iv_use"*, %"struct bitmap_head_def"* } +%"struct iv_use" = type { i32, i32, %"struct iv"*, %"union gimple_statement_d"*, %"union tree_node"**, %"struct bitmap_head_def"*, i32, %"struct cost_pair"*, %"struct iv_cand"* } +%"struct ivopts_data" = type { %"struct loop"*, %"struct pointer_map_t"*, i32, i32, %"struct version_info"*, %"struct bitmap_head_def"*, %"struct VEC_iv_use_p_heap"*, %"struct VEC_iv_cand_p_heap"*, %"struct bitmap_head_def"*, i32, i8, i8 } +%"struct lang_decl" = type opaque +%"struct language_function" = type opaque +%"struct loop" = type { i32, i32, %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct comp_cost", i32, i32, %"struct VEC_loop_p_gc"*, %"struct loop"*, %"struct loop"*, i8*, %"union tree_node"*, %"struct double_int", %"struct double_int", i8, i8, i32, %"struct nb_iter_bound"*, %"struct loop_exit"*, i8, %"union tree_node"* } +%"struct loop_exit" = type { %"struct edge_def"*, %"struct loop_exit"*, %"struct loop_exit"*, %"struct loop_exit"* } +%"struct loops" = type { i32, %"struct VEC_loop_p_gc"*, %"struct htab"*, %"struct loop"* } +%"struct machine_cfa_state" = type { %"struct rtx_def"*, i64 } +%"struct machine_function" = type { %"struct stack_local_entry"*, i8*, i32, i32, %"int[]", i32, %"struct machine_cfa_state", i32, i8 } +%"struct nb_iter_bound" = type { %"union gimple_statement_d"*, %"struct double_int", i8, %"struct nb_iter_bound"* } +%"struct object_block" = type { %"union section"*, i32, i64, %"struct VEC_rtx_gc"*, %"struct VEC_rtx_gc"* } +%"struct obstack" = type { i64, %"struct _obstack_chunk"*, i8*, i8*, i8*, i64, i32, %"struct _obstack_chunk"* (i8*, i64)*, void (i8*, %"struct _obstack_chunk"*)*, i8*, i8 } +%"struct phi_arg_d" = type { %"struct ssa_use_operand_d", %"union tree_node"*, i32 } +%"struct phi_arg_d[]" = type [1 x %"struct phi_arg_d"] +%"struct pointer_map_t" = type opaque +%"struct pt_solution" = type { i8, %"struct bitmap_head_def"* } +%"struct rtx_def" = type { i16, i8, i8, %"union u" } +%"struct section_common" = type { i32 } +%"struct ssa_operand_memory_d" = type { %"struct ssa_operand_memory_d"*, %"uchar[]" } +%"struct ssa_operands" = type { %"struct ssa_operand_memory_d"*, i32, i32, i8, %"struct def_optype_d"*, %"struct use_optype_d"* } +%"struct ssa_use_operand_d" = type { %"struct ssa_use_operand_d"*, %"struct ssa_use_operand_d"*, %0, %"union tree_node"** } +%"struct stack_local_entry" = type opaque +%"struct tree_base" = type <{ i16, i8, i8, i8, [2 x i8], i8 }> +%"struct tree_common" = type { %"struct tree_base", %"union tree_node"*, %"union tree_node"* } +%"struct tree_decl_common" = type { %"struct tree_decl_minimal", %"union tree_node"*, i8, i8, i8, i8, i8, i32, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct lang_decl"* } +%"struct tree_decl_minimal" = type { %"struct tree_common", i32, i32, %"union tree_node"*, %"union tree_node"* } +%"struct tree_decl_non_common" = type { %"struct tree_decl_with_vis", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"* } +%"struct tree_decl_with_rtl" = type { %"struct tree_decl_common", %"struct rtx_def"* } +%"struct tree_decl_with_vis" = type { %"struct tree_decl_with_rtl", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i8 } +%"struct tree_function_decl" = type { %"struct tree_decl_non_common", %"struct function"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i16, i8, i8 } +%"struct unnamed_section" = type { %"struct section_common", void (i8*)*, i8*, %"union section"* } +%"struct use_optype_d" = type { %"struct use_optype_d"*, %"struct ssa_use_operand_d" } +%"struct version_info" = type { %"union tree_node"*, %"struct iv"*, i8, i32, i8 } +%"uchar[]" = type [1 x i8] +%"union basic_block_il_dependent" = type { %"struct gimple_bb_info"* } +%"union edge_def_insns" = type { %"struct gimple_seq_d"* } +%"union gimple_statement_d" = type { %"struct gimple_statement_phi" } +%"union rtunion" = type { i8* } +%"union section" = type { %"struct unnamed_section" } +%"union tree_node" = type { %"struct tree_function_decl" } +%"union u" = type { %"struct block_symbol" } + +declare fastcc %"union tree_node"* @get_computation_at(%"struct loop"*, %"struct iv_use"* nocapture, %"struct iv_cand"* nocapture, %"union gimple_statement_d"*) nounwind + +declare fastcc i32 @computation_cost(%"union tree_node"*, i8 zeroext) nounwind + +define fastcc i64 @get_computation_cost_at(%"struct ivopts_data"* %data, %"struct iv_use"* nocapture %use, %"struct iv_cand"* nocapture %cand, i8 zeroext %address_p, %"struct bitmap_head_def"** %depends_on, %"union gimple_statement_d"* %at, i8* %can_autoinc) nounwind { +entry: + br i1 undef, label %"100", label %"4" + +"4": ; preds = %entry + br i1 undef, label %"6", label %"5" + +"5": ; preds = %"4" + unreachable + +"6": ; preds = %"4" + br i1 undef, label %"8", label %"7" + +"7": ; preds = %"6" + unreachable + +"8": ; preds = %"6" + br i1 undef, label %"100", label %"10" + +"10": ; preds = %"8" + br i1 undef, label %"17", label %"16" + +"16": ; preds = %"10" + unreachable + +"17": ; preds = %"10" + br i1 undef, label %"19", label %"18" + +"18": ; preds = %"17" + unreachable + +"19": ; preds = %"17" + br i1 undef, label %"93", label %"20" + +"20": ; preds = %"19" + br i1 undef, label %"23", label %"21" + +"21": ; preds = %"20" + unreachable + +"23": ; preds = %"20" + br i1 undef, label %"100", label %"25" + +"25": ; preds = %"23" + br i1 undef, label %"100", label %"26" + +"26": ; preds = %"25" + br i1 undef, label %"30", label %"28" + +"28": ; preds = %"26" + unreachable + +"30": ; preds = %"26" + br i1 undef, label %"59", label %"51" + +"51": ; preds = %"30" + br i1 undef, label %"55", label %"52" + +"52": ; preds = %"51" + unreachable + +"55": ; preds = %"51" + %0 = icmp ugt i32 0, undef ; <i1> [#uses=1] + br i1 %0, label %"50.i", label %"9.i" + +"9.i": ; preds = %"55" + unreachable + +"50.i": ; preds = %"55" + br i1 undef, label %"55.i", label %"54.i" + +"54.i": ; preds = %"50.i" + br i1 undef, label %"57.i", label %"55.i" + +"55.i": ; preds = %"54.i", %"50.i" + unreachable + +"57.i": ; preds = %"54.i" + br label %"63.i" + +"61.i": ; preds = %"63.i" + br i1 undef, label %"64.i", label %"62.i" + +"62.i": ; preds = %"61.i" + br label %"63.i" + +"63.i": ; preds = %"62.i", %"57.i" + br i1 undef, label %"61.i", label %"64.i" + +"64.i": ; preds = %"63.i", %"61.i" + unreachable + +"59": ; preds = %"30" + br i1 undef, label %"60", label %"82" + +"60": ; preds = %"59" + br i1 undef, label %"61", label %"82" + +"61": ; preds = %"60" + br i1 undef, label %"62", label %"82" + +"62": ; preds = %"61" + br i1 undef, label %"100", label %"63" + +"63": ; preds = %"62" + br i1 undef, label %"65", label %"64" + +"64": ; preds = %"63" + unreachable + +"65": ; preds = %"63" + br i1 undef, label %"66", label %"67" + +"66": ; preds = %"65" + unreachable + +"67": ; preds = %"65" + %1 = load i32* undef, align 4 ; <i32> [#uses=0] + br label %"100" + +"82": ; preds = %"61", %"60", %"59" + unreachable + +"93": ; preds = %"19" + %2 = call fastcc %"union tree_node"* @get_computation_at(%"struct loop"* undef, %"struct iv_use"* %use, %"struct iv_cand"* %cand, %"union gimple_statement_d"* %at) nounwind ; <%"union tree_node"*> [#uses=1] + br i1 undef, label %"100", label %"97" + +"97": ; preds = %"93" + br i1 undef, label %"99", label %"98" + +"98": ; preds = %"97" + br label %"99" + +"99": ; preds = %"98", %"97" + %3 = phi %"union tree_node"* [ undef, %"98" ], [ %2, %"97" ] ; <%"union tree_node"*> [#uses=1] + %4 = call fastcc i32 @computation_cost(%"union tree_node"* %3, i8 zeroext undef) nounwind ; <i32> [#uses=1] + br label %"100" + +"100": ; preds = %"99", %"93", %"67", %"62", %"25", %"23", %"8", %entry + %memtmp1.1.0 = phi i32 [ 0, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1] + %memtmp1.0.0 = phi i32 [ %4, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1] + %5 = zext i32 %memtmp1.0.0 to i64 ; <i64> [#uses=1] + %6 = zext i32 %memtmp1.1.0 to i64 ; <i64> [#uses=1] + %7 = shl i64 %6, 32 ; <i64> [#uses=1] + %8 = or i64 %7, %5 ; <i64> [#uses=1] + ret i64 %8 +} diff --git a/test/CodeGen/X86/2010-02-15-ImplicitDefBug.ll b/test/CodeGen/X86/2010-02-15-ImplicitDefBug.ll new file mode 100644 index 0000000..c429172 --- /dev/null +++ b/test/CodeGen/X86/2010-02-15-ImplicitDefBug.ll @@ -0,0 +1,80 @@ +; RUN: llc < %s > %t +; PR6300 +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" +target triple = "i386-pc-linux-gnu" + +; When the "154" loops back onto itself, it defines a register after using it. +; The first value of the register is implicit-def. + +%"struct location_chain_def" = type { %"struct location_chain_def"*, %"struct rtx_def"*, %"struct rtx_def"*, i32 } +%"struct real_value" = type { i32, [5 x i32] } +%"struct rtx_def" = type { i16, i8, i8, %"union u" } +%"union u" = type { %"struct real_value" } + +define i32 @variable_union(i8** nocapture %slot, i8* nocapture %data) nounwind { +entry: + br i1 undef, label %"4.thread", label %"3" + +"4.thread": ; preds = %entry + unreachable + +"3": ; preds = %entry + br i1 undef, label %"19", label %"20" + +"19": ; preds = %"3" + unreachable + +"20": ; preds = %"3" + br i1 undef, label %"56.preheader", label %dv_onepart_p.exit + +dv_onepart_p.exit: ; preds = %"20" + unreachable + +"56.preheader": ; preds = %"20" + br label %"56" + +"50": ; preds = %"57" + br label %"56" + +"56": ; preds = %"50", %"56.preheader" + br i1 undef, label %"57", label %"58" + +"57": ; preds = %"56" + br i1 undef, label %"50", label %"58" + +"58": ; preds = %"57", %"56" + br i1 undef, label %"62", label %"63" + +"62": ; preds = %"58" + unreachable + +"63": ; preds = %"58" + br i1 undef, label %"67", label %"66" + +"66": ; preds = %"63" + br label %"67" + +"67": ; preds = %"66", %"63" + br label %"68" + +"68": ; preds = %"161", %"67" + br i1 undef, label %"153", label %"161" + +"153": ; preds = %"68" + br i1 undef, label %"160", label %bb.nph46 + +bb.nph46: ; preds = %"153" + br label %"154" + +"154": ; preds = %"154", %bb.nph46 + %0 = phi %"struct location_chain_def"** [ undef, %bb.nph46 ], [ %1, %"154" ] ; <%"struct location_chain_def"**> [#uses=1] + %1 = bitcast i8* undef to %"struct location_chain_def"** ; <%"struct location_chain_def"**> [#uses=1] + store %"struct location_chain_def"* undef, %"struct location_chain_def"** %0, align 4 + br i1 undef, label %"160", label %"154" + +"160": ; preds = %"154", %"153" + br label %"161" + +"161": ; preds = %"160", %"68" + br label %"68" +} diff --git a/test/CodeGen/Generic/SwitchLowering.ll b/test/CodeGen/X86/SwitchLowering.ll index 29a0e82..29a0e82 100644 --- a/test/CodeGen/Generic/SwitchLowering.ll +++ b/test/CodeGen/X86/SwitchLowering.ll diff --git a/test/CodeGen/X86/add-trick32.ll b/test/CodeGen/X86/add-trick32.ll deleted file mode 100644 index e86045d..0000000 --- a/test/CodeGen/X86/add-trick32.ll +++ /dev/null @@ -1,11 +0,0 @@ -; RUN: llc < %s -march=x86 > %t -; RUN: not grep add %t -; RUN: grep subl %t | count 1 - -; The immediate can be encoded in a smaller way if the -; instruction is a sub instead of an add. - -define i32 @foo(i32 inreg %a) nounwind { - %b = add i32 %a, 128 - ret i32 %b -} diff --git a/test/CodeGen/X86/add-trick64.ll b/test/CodeGen/X86/add-trick64.ll deleted file mode 100644 index 2f1fcee..0000000 --- a/test/CodeGen/X86/add-trick64.ll +++ /dev/null @@ -1,15 +0,0 @@ -; RUN: llc < %s -march=x86-64 > %t -; RUN: not grep add %t -; RUN: grep subq %t | count 2 - -; The immediate can be encoded in a smaller way if the -; instruction is a sub instead of an add. - -define i64 @foo(i64 inreg %a) nounwind { - %b = add i64 %a, 2147483648 - ret i64 %b -} -define i64 @bar(i64 inreg %a) nounwind { - %b = add i64 %a, 128 - ret i64 %b -} diff --git a/test/CodeGen/X86/add-with-overflow.ll b/test/CodeGen/X86/add-with-overflow.ll deleted file mode 100644 index 0f705dc..0000000 --- a/test/CodeGen/X86/add-with-overflow.ll +++ /dev/null @@ -1,75 +0,0 @@ -; RUN: llc < %s -march=x86 | grep {jo} | count 2 -; RUN: llc < %s -march=x86 | grep {jb} | count 2 -; RUN: llc < %s -march=x86 -O0 | grep {jo} | count 2 -; RUN: llc < %s -march=x86 -O0 | grep {jb} | count 2 - -@ok = internal constant [4 x i8] c"%d\0A\00" -@no = internal constant [4 x i8] c"no\0A\00" - -define i1 @func1(i32 %v1, i32 %v2) nounwind { -entry: - %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2) - %sum = extractvalue {i32, i1} %t, 0 - %obit = extractvalue {i32, i1} %t, 1 - br i1 %obit, label %overflow, label %normal - -normal: - %t1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @ok, i32 0, i32 0), i32 %sum ) nounwind - ret i1 true - -overflow: - %t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind - ret i1 false -} - -define i1 @func2(i32 %v1, i32 %v2) nounwind { -entry: - %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2) - %sum = extractvalue {i32, i1} %t, 0 - %obit = extractvalue {i32, i1} %t, 1 - br i1 %obit, label %carry, label %normal - -normal: - %t1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @ok, i32 0, i32 0), i32 %sum ) nounwind - ret i1 true - -carry: - %t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind - ret i1 false -} - -define i1 @func3() nounwind { -entry: - %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 0, i32 0) - %sum = extractvalue {i32, i1} %t, 0 - %obit = extractvalue {i32, i1} %t, 1 - br i1 %obit, label %carry, label %normal - -normal: - %t1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @ok, i32 0, i32 0), i32 %sum ) nounwind - ret i1 true - -carry: - %t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind - ret i1 false -} - -define i1 @func4() nounwind { -entry: - %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 0, i32 0) - %sum = extractvalue {i32, i1} %t, 0 - %obit = extractvalue {i32, i1} %t, 1 - br i1 %obit, label %carry, label %normal - -normal: - %t1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @ok, i32 0, i32 0), i32 %sum ) nounwind - ret i1 true - -carry: - %t2 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @no, i32 0, i32 0) ) nounwind - ret i1 false -} - -declare i32 @printf(i8*, ...) nounwind -declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) -declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32) diff --git a/test/CodeGen/X86/add.ll b/test/CodeGen/X86/add.ll new file mode 100644 index 0000000..3991a68 --- /dev/null +++ b/test/CodeGen/X86/add.ll @@ -0,0 +1,94 @@ +; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=X32 +; RUN: llc < %s -march=x86-64 | FileCheck %s -check-prefix=X64 + +; The immediate can be encoded in a smaller way if the +; instruction is a sub instead of an add. + +define i32 @test1(i32 inreg %a) nounwind { + %b = add i32 %a, 128 + ret i32 %b +; X32: subl $-128, %eax +; X64: subl $-128, +} +define i64 @test2(i64 inreg %a) nounwind { + %b = add i64 %a, 2147483648 + ret i64 %b +; X32: addl $-2147483648, %eax +; X64: subq $-2147483648, +} +define i64 @test3(i64 inreg %a) nounwind { + %b = add i64 %a, 128 + ret i64 %b + +; X32: addl $128, %eax +; X64: subq $-128, +} + +define i1 @test4(i32 %v1, i32 %v2, i32* %X) nounwind { +entry: + %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2) + %sum = extractvalue {i32, i1} %t, 0 + %obit = extractvalue {i32, i1} %t, 1 + br i1 %obit, label %overflow, label %normal + +normal: + store i32 0, i32* %X + br label %overflow + +overflow: + ret i1 false + +; X32: test4: +; X32: addl +; X32-NEXT: jo + +; X64: test4: +; X64: addl %esi, %edi +; X64-NEXT: jo +} + +define i1 @test5(i32 %v1, i32 %v2, i32* %X) nounwind { +entry: + %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2) + %sum = extractvalue {i32, i1} %t, 0 + %obit = extractvalue {i32, i1} %t, 1 + br i1 %obit, label %carry, label %normal + +normal: + store i32 0, i32* %X + br label %carry + +carry: + ret i1 false + +; X32: test5: +; X32: addl +; X32-NEXT: jb + +; X64: test5: +; X64: addl %esi, %edi +; X64-NEXT: jb +} + +declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) +declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32) + + +define i64 @test6(i64 %A, i32 %B) nounwind { + %tmp12 = zext i32 %B to i64 ; <i64> [#uses=1] + %tmp3 = shl i64 %tmp12, 32 ; <i64> [#uses=1] + %tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1] + ret i64 %tmp5 + +; X32: test6: +; X32: movl 12(%esp), %edx +; X32-NEXT: addl 8(%esp), %edx +; X32-NEXT: movl 4(%esp), %eax +; X32-NEXT: ret + +; X64: test6: +; X64: shlq $32, %rsi +; X64: leaq (%rsi,%rdi), %rax +; X64: ret +} + diff --git a/test/CodeGen/X86/addr-label-difference.ll b/test/CodeGen/X86/addr-label-difference.ll index 547d6b5..be0908a 100644 --- a/test/CodeGen/X86/addr-label-difference.ll +++ b/test/CodeGen/X86/addr-label-difference.ll @@ -9,14 +9,18 @@ target triple = "i386-apple-darwin10.0" define void @test(i32 %i) nounwind ssp { entry: + call void @test(i32 1) br label %foo -foo: ; preds = %indirectgoto, %indirectgoto, %indirectgoto, %indirectgoto, %indirectgoto +foo: + call void @test(i32 1) br label %bar -bar: ; preds = %foo, %indirectgoto +bar: + call void @test(i32 1) br label %hack -hack: ; preds = %bar, %indirectgoto +hack: + call void @test(i32 1) ret void } diff --git a/test/CodeGen/X86/aliases.ll b/test/CodeGen/X86/aliases.ll index 0b26859..3020eb3 100644 --- a/test/CodeGen/X86/aliases.ll +++ b/test/CodeGen/X86/aliases.ll @@ -1,5 +1,6 @@ ; RUN: llc < %s -mtriple=i686-pc-linux-gnu -asm-verbose=false -o %t -; RUN: grep set %t | count 7 +; RUN: grep { = } %t | count 7 +; RUN: grep set %t | count 16 ; RUN: grep globl %t | count 6 ; RUN: grep weak %t | count 1 ; RUN: grep hidden %t | count 1 diff --git a/test/CodeGen/X86/aligned-comm.ll b/test/CodeGen/X86/aligned-comm.ll index c0f3a81..7715869 100644 --- a/test/CodeGen/X86/aligned-comm.ll +++ b/test/CodeGen/X86/aligned-comm.ll @@ -1,8 +1,6 @@ ; RUN: llc < %s -march=x86 ; RUN: llc < %s -mtriple=i386-apple-darwin10 | grep {array,16512,7} ; RUN: llc < %s -mtriple=i386-apple-darwin9 | grep {array,16512,7} -; RUN: llc < %s -mtriple=i386-apple-darwin8 | not grep {7} -; Darwin 9+ should get alignment on common symbols. Darwin8 does -; not support this. +; Darwin 9+ should get alignment on common symbols. @array = common global [4128 x i32] zeroinitializer, align 128 diff --git a/test/CodeGen/X86/call-push.ll b/test/CodeGen/X86/call-push.ll index 7bae5cd..02cbccc 100644 --- a/test/CodeGen/X86/call-push.ll +++ b/test/CodeGen/X86/call-push.ll @@ -1,9 +1,14 @@ -; RUN: llc < %s -march=x86 -disable-fp-elim | grep subl | count 1 +; RUN: llc < %s -mtriple=i386-apple-darwin -disable-fp-elim | FileCheck %s %struct.decode_t = type { i8, i8, i8, i8, i16, i8, i8, %struct.range_t** } %struct.range_t = type { float, float, i32, i32, i32, [0 x i8] } -define i32 @decode_byte(%struct.decode_t* %decode) { +define i32 @decode_byte(%struct.decode_t* %decode) nounwind { +; CHECK: decode_byte: +; CHECK: pushl +; CHECK: popl +; CHECK: popl +; CHECK: jmp entry: %tmp2 = getelementptr %struct.decode_t* %decode, i32 0, i32 4 ; <i16*> [#uses=1] %tmp23 = bitcast i16* %tmp2 to i32* ; <i32*> [#uses=1] diff --git a/test/CodeGen/X86/twoaddr-delete.ll b/test/CodeGen/X86/codegen-dce.ll index 77e3c75..d83efaf 100644 --- a/test/CodeGen/X86/twoaddr-delete.ll +++ b/test/CodeGen/X86/codegen-dce.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86 -stats |& grep {twoaddrinstr} | grep {Number of dead instructions deleted} +; RUN: llc < %s -march=x86 -stats |& grep {codegen-dce} | grep {Number of dead instructions deleted} %struct.anon = type { [3 x double], double, %struct.node*, [64 x %struct.bnode*], [64 x %struct.bnode*] } %struct.bnode = type { i16, double, [3 x double], i32, i32, [3 x double], [3 x double], [3 x double], double, %struct.bnode*, %struct.bnode* } diff --git a/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll b/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll index 337f1b2..8e38fe3 100644 --- a/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll +++ b/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll @@ -1,19 +1,20 @@ ; RUN: llc < %s -march=x86-64 -o %t -stats -info-output-file - | \ -; RUN: grep {asm-printer} | grep {Number of machine instrs printed} | grep 5 +; RUN: grep {asm-printer} | grep {Number of machine instrs printed} | grep 10 ; RUN: grep {leal 1(\%rsi),} %t -define fastcc zeroext i8 @fullGtU(i32 %i1, i32 %i2) nounwind optsize { +define fastcc zeroext i8 @fullGtU(i32 %i1, i32 %i2, i8* %ptr) nounwind optsize { entry: %0 = add i32 %i2, 1 ; <i32> [#uses=1] %1 = sext i32 %0 to i64 ; <i64> [#uses=1] - %2 = getelementptr i8* null, i64 %1 ; <i8*> [#uses=1] + %2 = getelementptr i8* %ptr, i64 %1 ; <i8*> [#uses=1] %3 = load i8* %2, align 1 ; <i8> [#uses=1] %4 = icmp eq i8 0, %3 ; <i1> [#uses=1] br i1 %4, label %bb3, label %bb34 bb3: ; preds = %entry %5 = add i32 %i2, 4 ; <i32> [#uses=0] - ret i8 0 + %6 = trunc i32 %5 to i8 + ret i8 %6 bb34: ; preds = %entry ret i8 0 diff --git a/test/CodeGen/X86/dllexport.ll b/test/CodeGen/X86/dllexport.ll new file mode 100644 index 0000000..2c699bf --- /dev/null +++ b/test/CodeGen/X86/dllexport.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s | FileCheck %s +; PR2936 + +target triple = "i386-mingw32" + +define dllexport x86_fastcallcc i32 @foo() nounwind { +entry: + ret i32 0 +} + +; CHECK: .section .drectve +; CHECK: -export:@foo@0
\ No newline at end of file diff --git a/test/CodeGen/X86/fastcall-correct-mangling.ll b/test/CodeGen/X86/fastcall-correct-mangling.ll index 2b48f5f..33b18bb 100644 --- a/test/CodeGen/X86/fastcall-correct-mangling.ll +++ b/test/CodeGen/X86/fastcall-correct-mangling.ll @@ -1,9 +1,9 @@ -; RUN: llc < %s -mtriple=i386-unknown-mingw32 | \ -; RUN: grep {@12} +; RUN: llc < %s -mtriple=i386-unknown-mingw32 | FileCheck %s ; Check that a fastcall function gets correct mangling define x86_fastcallcc void @func(i64 %X, i8 %Y, i8 %G, i16 %Z) { +; CHECK: @func@20: ret void } diff --git a/test/CodeGen/X86/full-lsr.ll b/test/CodeGen/X86/full-lsr.ll index 3bd58b6..ff9b1b0 100644 --- a/test/CodeGen/X86/full-lsr.ll +++ b/test/CodeGen/X86/full-lsr.ll @@ -1,12 +1,7 @@ ; RUN: llc < %s -march=x86 >%t -; TODO: Enhance full lsr mode to get this: -; RUNX: grep {addl \\\$4,} %t | count 3 -; RUNX: not grep {,%} %t - -; For now, it should find this, which is still pretty good: -; RUN: not grep {addl \\\$4,} %t -; RUN: grep {,%} %t | count 6 +; RUN: grep {addl \\\$4,} %t | count 3 +; RUN: not grep {,%} %t define void @foo(float* nocapture %A, float* nocapture %B, float* nocapture %C, i32 %N) nounwind { entry: diff --git a/test/CodeGen/X86/ins_subreg_coalesce-3.ll b/test/CodeGen/X86/ins_subreg_coalesce-3.ll index e443085..627edc5 100644 --- a/test/CodeGen/X86/ins_subreg_coalesce-3.ll +++ b/test/CodeGen/X86/ins_subreg_coalesce-3.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86-64 | grep mov | count 11 +; RUN: llc < %s -march=x86-64 | grep mov | count 5 %struct.COMPOSITE = type { i8, i16, i16 } %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } diff --git a/test/CodeGen/X86/iv-users-in-other-loops.ll b/test/CodeGen/X86/iv-users-in-other-loops.ll index c695c29..408fb20 100644 --- a/test/CodeGen/X86/iv-users-in-other-loops.ll +++ b/test/CodeGen/X86/iv-users-in-other-loops.ll @@ -1,11 +1,11 @@ ; RUN: llc < %s -march=x86-64 -o %t -; RUN: grep inc %t | count 1 +; RUN: not grep inc %t ; RUN: grep dec %t | count 2 ; RUN: grep addq %t | count 13 ; RUN: not grep addb %t -; RUN: grep leaq %t | count 9 -; RUN: grep leal %t | count 3 -; RUN: grep movq %t | count 5 +; RUN: not grep leaq %t +; RUN: not grep leal %t +; RUN: not grep movq %t ; IV users in each of the loops from other loops shouldn't cause LSR ; to insert new induction variables. Previously it would create a diff --git a/test/CodeGen/X86/loop-strength-reduce-2.ll b/test/CodeGen/X86/loop-strength-reduce-2.ll index 30b5114..b546462 100644 --- a/test/CodeGen/X86/loop-strength-reduce-2.ll +++ b/test/CodeGen/X86/loop-strength-reduce-2.ll @@ -1,11 +1,24 @@ -; RUN: llc < %s -march=x86 -relocation-model=pic | \ -; RUN: grep {, 4} | count 1 -; RUN: llc < %s -march=x86 | not grep lea +; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC +; RUN: llc < %s -march=x86 -relocation-model=static | FileCheck %s -check-prefix=STATIC ; ; Make sure the common loop invariant A is hoisted up to preheader, ; since too many registers are needed to subsume it into the addressing modes. ; It's safe to sink A in when it's not pic. +; PIC: align +; PIC: movl $4, -4([[REG:%e[a-z]+]]) +; PIC: movl $5, ([[REG]]) +; PIC: addl $4, [[REG]] +; PIC: decl {{%e[[a-z]+}} +; PIC: jne + +; STATIC: align +; STATIC: movl $4, -4(%ecx) +; STATIC: movl $5, (%ecx) +; STATIC: addl $4, %ecx +; STATIC: decl %eax +; STATIC: jne + @A = global [16 x [16 x i32]] zeroinitializer, align 32 ; <[16 x [16 x i32]]*> [#uses=2] define void @test(i32 %row, i32 %N.in) nounwind { diff --git a/test/CodeGen/X86/loop-strength-reduce-3.ll b/test/CodeGen/X86/loop-strength-reduce-3.ll index 70c9134..b1c9fb9 100644 --- a/test/CodeGen/X86/loop-strength-reduce-3.ll +++ b/test/CodeGen/X86/loop-strength-reduce-3.ll @@ -1,8 +1,11 @@ -; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=dynamic-no-pic | \ -; RUN: grep {A+} | count 2 -; -; Make sure the common loop invariant A is not hoisted up to preheader, -; since it can be subsumed it into the addressing modes. +; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=dynamic-no-pic | FileCheck %s + +; CHECK: align +; CHECK: movl $4, -4(%ecx) +; CHECK: movl $5, (%ecx) +; CHECK: addl $4, %ecx +; CHECK: decl %eax +; CHECK: jne @A = global [16 x [16 x i32]] zeroinitializer, align 32 ; <[16 x [16 x i32]]*> [#uses=2] diff --git a/test/CodeGen/X86/loop-strength-reduce.ll b/test/CodeGen/X86/loop-strength-reduce.ll index 4cb56ca..42c6ac4 100644 --- a/test/CodeGen/X86/loop-strength-reduce.ll +++ b/test/CodeGen/X86/loop-strength-reduce.ll @@ -1,8 +1,11 @@ -; RUN: llc < %s -march=x86 -relocation-model=static | \ -; RUN: grep {A+} | count 2 -; -; Make sure the common loop invariant A is not hoisted up to preheader, -; since it can be subsumed into the addressing mode in all uses. +; RUN: llc < %s -march=x86 -relocation-model=static | FileCheck %s + +; CHECK: align +; CHECK: movl $4, -4(%ecx) +; CHECK: movl $5, (%ecx) +; CHECK: addl $4, %ecx +; CHECK: decl %eax +; CHECK: jne @A = internal global [16 x [16 x i32]] zeroinitializer, align 32 ; <[16 x [16 x i32]]*> [#uses=2] diff --git a/test/CodeGen/X86/loop-strength-reduce4.ll b/test/CodeGen/X86/loop-strength-reduce4.ll index 07e46ec..6c0eb8c 100644 --- a/test/CodeGen/X86/loop-strength-reduce4.ll +++ b/test/CodeGen/X86/loop-strength-reduce4.ll @@ -1,5 +1,19 @@ -; RUN: llc < %s -march=x86 | grep cmp | grep 64 -; RUN: llc < %s -march=x86 | not grep inc +; RUN: llc < %s -march=x86 -relocation-model=static -mtriple=i686-apple-darwin | FileCheck %s -check-prefix=STATIC +; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC + +; By starting the IV at -64 instead of 0, a cmp is eliminated, +; as the flags from the add can be used directly. + +; STATIC: movl $-64, %ecx + +; STATIC: movl %eax, _state+76(%ecx) +; STATIC: addl $16, %ecx +; STATIC: jne + +; In PIC mode the symbol can't be folded, so the change-compare-stride +; trick applies. + +; PIC: cmpl $64 @state = external global [0 x i32] ; <[0 x i32]*> [#uses=4] @S = external global [0 x i32] ; <[0 x i32]*> [#uses=4] diff --git a/test/CodeGen/X86/loop-strength-reduce8.ll b/test/CodeGen/X86/loop-strength-reduce8.ll index e14cd8a..6b2247d 100644 --- a/test/CodeGen/X86/loop-strength-reduce8.ll +++ b/test/CodeGen/X86/loop-strength-reduce8.ll @@ -1,4 +1,10 @@ -; RUN: llc < %s -mtriple=i386-apple-darwin | grep leal | not grep 16 +; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s + +; CHECK: leal 16(%eax), %edx +; CHECK: align +; CHECK: addl $4, %edx +; CHECK: decl %ecx +; CHECK: jne LBB1_2 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32 } %struct.bitmap_element = type { %struct.bitmap_element*, %struct.bitmap_element*, i32, [2 x i64] } diff --git a/test/CodeGen/X86/lsr-reuse-trunc.ll b/test/CodeGen/X86/lsr-reuse-trunc.ll new file mode 100644 index 0000000..d1d7144 --- /dev/null +++ b/test/CodeGen/X86/lsr-reuse-trunc.ll @@ -0,0 +1,59 @@ +; RUN: llc < %s -march=x86-64 | FileCheck %s + +; Full strength reduction wouldn't reduce register pressure, so LSR should +; stick with indexing here. + +; CHECK: movaps (%rsi,%rax,4), %xmm3 +; CHECK: movaps %xmm3, (%rdi,%rax,4) +; CHECK: addq $4, %rax +; CHECK: cmpl %eax, (%rdx) +; CHECK-NEXT: jg + +define void @vvfloorf(float* nocapture %y, float* nocapture %x, i32* nocapture %n) nounwind { +entry: + %0 = load i32* %n, align 4 + %1 = icmp sgt i32 %0, 0 + br i1 %1, label %bb, label %return + +bb: + %indvar = phi i64 [ %indvar.next, %bb ], [ 0, %entry ] + %tmp = shl i64 %indvar, 2 + %scevgep = getelementptr float* %y, i64 %tmp + %scevgep9 = bitcast float* %scevgep to <4 x float>* + %scevgep10 = getelementptr float* %x, i64 %tmp + %scevgep1011 = bitcast float* %scevgep10 to <4 x float>* + %2 = load <4 x float>* %scevgep1011, align 16 + %3 = bitcast <4 x float> %2 to <4 x i32> + %4 = and <4 x i32> %3, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647> + %5 = bitcast <4 x i32> %4 to <4 x float> + %6 = and <4 x i32> %3, <i32 -2147483648, i32 -2147483648, i32 -2147483648, i32 -2147483648> + %7 = tail call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> %5, <4 x float> <float 8.388608e+06, float 8.388608e+06, float 8.388608e+06, float 8.388608e+06>, i8 5) nounwind + %tmp.i4 = bitcast <4 x float> %7 to <4 x i32> + %8 = xor <4 x i32> %tmp.i4, <i32 -1, i32 -1, i32 -1, i32 -1> + %9 = and <4 x i32> %8, <i32 1258291200, i32 1258291200, i32 1258291200, i32 1258291200> + %10 = or <4 x i32> %9, %6 + %11 = bitcast <4 x i32> %10 to <4 x float> + %12 = fadd <4 x float> %2, %11 + %13 = fsub <4 x float> %12, %11 + %14 = tail call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> %2, <4 x float> %13, i8 1) nounwind + %15 = bitcast <4 x float> %14 to <4 x i32> + %16 = tail call <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32> %15) nounwind readnone + %17 = fadd <4 x float> %13, %16 + %tmp.i = bitcast <4 x float> %17 to <4 x i32> + %18 = or <4 x i32> %tmp.i, %6 + %19 = bitcast <4 x i32> %18 to <4 x float> + store <4 x float> %19, <4 x float>* %scevgep9, align 16 + %tmp12 = add i64 %tmp, 4 + %tmp13 = trunc i64 %tmp12 to i32 + %20 = load i32* %n, align 4 + %21 = icmp sgt i32 %20, %tmp13 + %indvar.next = add i64 %indvar, 1 + br i1 %21, label %bb, label %return + +return: + ret void +} + +declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8) nounwind readnone + +declare <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32>) nounwind readnone diff --git a/test/CodeGen/X86/lsr-reuse.ll b/test/CodeGen/X86/lsr-reuse.ll new file mode 100644 index 0000000..7f2b8cc --- /dev/null +++ b/test/CodeGen/X86/lsr-reuse.ll @@ -0,0 +1,386 @@ +; RUN: llc < %s -march=x86-64 -O3 | FileCheck %s +target datalayout = "e-p:64:64:64" +target triple = "x86_64-unknown-unknown" + +; Full strength reduction reduces register pressure from 5 to 4 here. +; Instruction selection should use the FLAGS value from the dec for +; the branch. Scheduling should push the adds upwards. + +; CHECK: full_me_0: +; CHECK: movsd (%rsi), %xmm0 +; CHECK: addq $8, %rsi +; CHECK: mulsd (%rdx), %xmm0 +; CHECK: addq $8, %rdx +; CHECK: movsd %xmm0, (%rdi) +; CHECK: addq $8, %rdi +; CHECK: decq %rcx +; CHECK: jne + +define void @full_me_0(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; Mostly-full strength reduction means we do full strength reduction on all +; except for the offsets. +; +; Given a choice between constant offsets -2048 and 2048, choose the negative +; value, because at boundary conditions it has a smaller encoding. +; TODO: That's an over-general heuristic. It would be better for the target +; to indicate what the encoding cost would be. Then using a 2048 offset +; would be better on x86-64, since the start value would be 0 instead of +; 2048. + +; CHECK: mostly_full_me_0: +; CHECK: movsd -2048(%rsi), %xmm0 +; CHECK: mulsd -2048(%rdx), %xmm0 +; CHECK: movsd %xmm0, -2048(%rdi) +; CHECK: movsd (%rsi), %xmm0 +; CHECK: addq $8, %rsi +; CHECK: divsd (%rdx), %xmm0 +; CHECK: addq $8, %rdx +; CHECK: movsd %xmm0, (%rdi) +; CHECK: addq $8, %rdi +; CHECK: decq %rcx +; CHECK: jne + +define void @mostly_full_me_0(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %j = add i64 %i, 256 + %Aj = getelementptr inbounds double* %A, i64 %j + %Bj = getelementptr inbounds double* %B, i64 %j + %Cj = getelementptr inbounds double* %C, i64 %j + %t3 = load double* %Bj + %t4 = load double* %Cj + %o = fdiv double %t3, %t4 + store double %o, double* %Aj + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; A minor variation on mostly_full_me_0. +; Prefer to start the indvar at 0. + +; CHECK: mostly_full_me_1: +; CHECK: movsd (%rsi), %xmm0 +; CHECK: mulsd (%rdx), %xmm0 +; CHECK: movsd %xmm0, (%rdi) +; CHECK: movsd -2048(%rsi), %xmm0 +; CHECK: addq $8, %rsi +; CHECK: divsd -2048(%rdx), %xmm0 +; CHECK: addq $8, %rdx +; CHECK: movsd %xmm0, -2048(%rdi) +; CHECK: addq $8, %rdi +; CHECK: decq %rcx +; CHECK: jne + +define void @mostly_full_me_1(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %j = sub i64 %i, 256 + %Aj = getelementptr inbounds double* %A, i64 %j + %Bj = getelementptr inbounds double* %B, i64 %j + %Cj = getelementptr inbounds double* %C, i64 %j + %t3 = load double* %Bj + %t4 = load double* %Cj + %o = fdiv double %t3, %t4 + store double %o, double* %Aj + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; A slightly less minor variation on mostly_full_me_0. + +; CHECK: mostly_full_me_2: +; CHECK: movsd (%rsi), %xmm0 +; CHECK: mulsd (%rdx), %xmm0 +; CHECK: movsd %xmm0, (%rdi) +; CHECK: movsd -4096(%rsi), %xmm0 +; CHECK: addq $8, %rsi +; CHECK: divsd -4096(%rdx), %xmm0 +; CHECK: addq $8, %rdx +; CHECK: movsd %xmm0, -4096(%rdi) +; CHECK: addq $8, %rdi +; CHECK: decq %rcx +; CHECK: jne + +define void @mostly_full_me_2(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %k = add i64 %i, 256 + %Ak = getelementptr inbounds double* %A, i64 %k + %Bk = getelementptr inbounds double* %B, i64 %k + %Ck = getelementptr inbounds double* %C, i64 %k + %t1 = load double* %Bk + %t2 = load double* %Ck + %m = fmul double %t1, %t2 + store double %m, double* %Ak + %j = sub i64 %i, 256 + %Aj = getelementptr inbounds double* %A, i64 %j + %Bj = getelementptr inbounds double* %B, i64 %j + %Cj = getelementptr inbounds double* %C, i64 %j + %t3 = load double* %Bj + %t4 = load double* %Cj + %o = fdiv double %t3, %t4 + store double %o, double* %Aj + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; In this test, the counting IV exit value is used, so full strength reduction +; would not reduce register pressure. IndVarSimplify ought to simplify such +; cases away, but it's useful here to verify that LSR's register pressure +; heuristics are working as expected. + +; CHECK: count_me_0: +; CHECK: movsd (%rsi,%rax,8), %xmm0 +; CHECK: mulsd (%rdx,%rax,8), %xmm0 +; CHECK: movsd %xmm0, (%rdi,%rax,8) +; CHECK: incq %rax +; CHECK: cmpq %rax, %rcx +; CHECK: jne + +define i64 @count_me_0(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + %q = phi i64 [ 0, %entry ], [ %i.next, %loop ] + ret i64 %q +} + +; In this test, the trip count value is used, so full strength reduction +; would not reduce register pressure. +; (though it would reduce register pressure inside the loop...) + +; CHECK: count_me_1: +; CHECK: movsd (%rsi,%rax,8), %xmm0 +; CHECK: mulsd (%rdx,%rax,8), %xmm0 +; CHECK: movsd %xmm0, (%rdi,%rax,8) +; CHECK: incq %rax +; CHECK: cmpq %rax, %rcx +; CHECK: jne + +define i64 @count_me_1(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + %q = phi i64 [ 0, %entry ], [ %n, %loop ] + ret i64 %q +} + +; Full strength reduction doesn't save any registers here because the +; loop tripcount is a constant. + +; CHECK: count_me_2: +; CHECK: movl $10, %eax +; CHECK: align +; CHECK: BB7_1: +; CHECK: movsd -40(%rdi,%rax,8), %xmm0 +; CHECK: addsd -40(%rsi,%rax,8), %xmm0 +; CHECK: movsd %xmm0, -40(%rdx,%rax,8) +; CHECK: movsd (%rdi,%rax,8), %xmm0 +; CHECK: subsd (%rsi,%rax,8), %xmm0 +; CHECK: movsd %xmm0, (%rdx,%rax,8) +; CHECK: incq %rax +; CHECK: cmpq $5010, %rax +; CHECK: jne + +define void @count_me_2(double* nocapture %A, double* nocapture %B, double* nocapture %C) nounwind { +entry: + br label %loop + +loop: + %i = phi i64 [ 0, %entry ], [ %i.next, %loop ] + %i5 = add i64 %i, 5 + %Ai = getelementptr double* %A, i64 %i5 + %t2 = load double* %Ai + %Bi = getelementptr double* %B, i64 %i5 + %t4 = load double* %Bi + %t5 = fadd double %t2, %t4 + %Ci = getelementptr double* %C, i64 %i5 + store double %t5, double* %Ci + %i10 = add i64 %i, 10 + %Ai10 = getelementptr double* %A, i64 %i10 + %t9 = load double* %Ai10 + %Bi10 = getelementptr double* %B, i64 %i10 + %t11 = load double* %Bi10 + %t12 = fsub double %t9, %t11 + %Ci10 = getelementptr double* %C, i64 %i10 + store double %t12, double* %Ci10 + %i.next = add i64 %i, 1 + %exitcond = icmp eq i64 %i.next, 5000 + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; This should be fully strength-reduced to reduce register pressure. + +; CHECK: full_me_1: +; CHECK: align +; CHECK: BB8_1: +; CHECK: movsd (%rdi), %xmm0 +; CHECK: addsd (%rsi), %xmm0 +; CHECK: movsd %xmm0, (%rdx) +; CHECK: movsd 40(%rdi), %xmm0 +; CHECK: addq $8, %rdi +; CHECK: subsd 40(%rsi), %xmm0 +; CHECK: addq $8, %rsi +; CHECK: movsd %xmm0, 40(%rdx) +; CHECK: addq $8, %rdx +; CHECK: decq %rcx +; CHECK: jne + +define void @full_me_1(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + br label %loop + +loop: + %i = phi i64 [ 0, %entry ], [ %i.next, %loop ] + %i5 = add i64 %i, 5 + %Ai = getelementptr double* %A, i64 %i5 + %t2 = load double* %Ai + %Bi = getelementptr double* %B, i64 %i5 + %t4 = load double* %Bi + %t5 = fadd double %t2, %t4 + %Ci = getelementptr double* %C, i64 %i5 + store double %t5, double* %Ci + %i10 = add i64 %i, 10 + %Ai10 = getelementptr double* %A, i64 %i10 + %t9 = load double* %Ai10 + %Bi10 = getelementptr double* %B, i64 %i10 + %t11 = load double* %Bi10 + %t12 = fsub double %t9, %t11 + %Ci10 = getelementptr double* %C, i64 %i10 + store double %t12, double* %Ci10 + %i.next = add i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} + +; This is a variation on full_me_0 in which the 0,+,1 induction variable +; has a non-address use, pinning that value in a register. + +; CHECK: count_me_3: +; CHECK: call +; CHECK: movsd (%r15,%r13,8), %xmm0 +; CHECK: mulsd (%r14,%r13,8), %xmm0 +; CHECK: movsd %xmm0, (%r12,%r13,8) +; CHECK: incq %r13 +; CHECK: cmpq %r13, %rbx +; CHECK: jne + +declare void @use(i64) + +define void @count_me_3(double* nocapture %A, double* nocapture %B, double* nocapture %C, i64 %n) nounwind { +entry: + %t0 = icmp sgt i64 %n, 0 + br i1 %t0, label %loop, label %return + +loop: + %i = phi i64 [ %i.next, %loop ], [ 0, %entry ] + call void @use(i64 %i) + %Ai = getelementptr inbounds double* %A, i64 %i + %Bi = getelementptr inbounds double* %B, i64 %i + %Ci = getelementptr inbounds double* %C, i64 %i + %t1 = load double* %Bi + %t2 = load double* %Ci + %m = fmul double %t1, %t2 + store double %m, double* %Ai + %i.next = add nsw i64 %i, 1 + %exitcond = icmp eq i64 %i.next, %n + br i1 %exitcond, label %return, label %loop + +return: + ret void +} diff --git a/test/CodeGen/X86/masked-iv-safe.ll b/test/CodeGen/X86/masked-iv-safe.ll index bc493bd..0b4d73a 100644 --- a/test/CodeGen/X86/masked-iv-safe.ll +++ b/test/CodeGen/X86/masked-iv-safe.ll @@ -169,7 +169,7 @@ loop: %indvar.i24 = and i64 %indvar, 16777215 %t3 = getelementptr double* %d, i64 %indvar.i24 %t4 = load double* %t3 - %t5 = fmul double %t4, 2.3 + %t5 = fdiv double %t4, 2.3 store double %t5, double* %t3 %t6 = getelementptr double* %d, i64 %indvar %t7 = load double* %t6 @@ -199,7 +199,7 @@ loop: %indvar.i24 = ashr i64 %s1, 24 %t3 = getelementptr double* %d, i64 %indvar.i24 %t4 = load double* %t3 - %t5 = fmul double %t4, 2.3 + %t5 = fdiv double %t4, 2.3 store double %t5, double* %t3 %t6 = getelementptr double* %d, i64 %indvar %t7 = load double* %t6 @@ -229,7 +229,7 @@ loop: %indvar.i24 = ashr i64 %s1, 24 %t3 = getelementptr double* %d, i64 %indvar.i24 %t4 = load double* %t3 - %t5 = fmul double %t4, 2.3 + %t5 = fdiv double %t4, 2.3 store double %t5, double* %t3 %t6 = getelementptr double* %d, i64 %indvar %t7 = load double* %t6 diff --git a/test/CodeGen/X86/nancvt.ll b/test/CodeGen/X86/nancvt.ll index 0b56644..82b7331 100644 --- a/test/CodeGen/X86/nancvt.ll +++ b/test/CodeGen/X86/nancvt.ll @@ -16,6 +16,8 @@ target triple = "i686-apple-darwin8" @.str = internal constant [10 x i8] c"%08x%08x\0A\00" ; <[10 x i8]*> [#uses=2] @.str1 = internal constant [6 x i8] c"%08x\0A\00" ; <[6 x i8]*> [#uses=2] +@var = external global i32 + define i32 @main() { entry: %retval = alloca i32, align 4 ; <i32*> [#uses=1] @@ -50,7 +52,8 @@ bb: ; preds = %bb23 %tmp17 = ashr i64 %tmp16, %.cast ; <i64> [#uses=1] %tmp1718 = trunc i64 %tmp17 to i32 ; <i32> [#uses=1] %tmp19 = getelementptr [10 x i8]* @.str, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp20 = call i32 (i8*, ...)* @printf( i8* %tmp19, i32 %tmp1718, i32 %tmp13 ) ; <i32> [#uses=0] + volatile store i32 %tmp1718, i32* @var + volatile store i32 %tmp13, i32* @var %tmp21 = load i32* %i, align 4 ; <i32> [#uses=1] %tmp22 = add i32 %tmp21, 1 ; <i32> [#uses=1] store i32 %tmp22, i32* %i, align 4 @@ -83,7 +86,7 @@ bb28: ; preds = %bb46 %tmp3940 = bitcast float* %tmp39 to i32* ; <i32*> [#uses=1] %tmp41 = load i32* %tmp3940, align 4 ; <i32> [#uses=1] %tmp42 = getelementptr [6 x i8]* @.str1, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp43 = call i32 (i8*, ...)* @printf( i8* %tmp42, i32 %tmp41 ) ; <i32> [#uses=0] + volatile store i32 %tmp41, i32* @var %tmp44 = load i32* %i, align 4 ; <i32> [#uses=1] %tmp45 = add i32 %tmp44, 1 ; <i32> [#uses=1] store i32 %tmp45, i32* %i, align 4 @@ -124,7 +127,8 @@ bb52: ; preds = %bb78 %tmp72 = ashr i64 %tmp70, %.cast71 ; <i64> [#uses=1] %tmp7273 = trunc i64 %tmp72 to i32 ; <i32> [#uses=1] %tmp74 = getelementptr [10 x i8]* @.str, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp75 = call i32 (i8*, ...)* @printf( i8* %tmp74, i32 %tmp7273, i32 %tmp66 ) ; <i32> [#uses=0] + volatile store i32 %tmp7273, i32* @var + volatile store i32 %tmp66, i32* @var %tmp76 = load i32* %i, align 4 ; <i32> [#uses=1] %tmp77 = add i32 %tmp76, 1 ; <i32> [#uses=1] store i32 %tmp77, i32* %i, align 4 @@ -157,7 +161,7 @@ bb84: ; preds = %bb101 %tmp9495 = bitcast float* %tmp94 to i32* ; <i32*> [#uses=1] %tmp96 = load i32* %tmp9495, align 4 ; <i32> [#uses=1] %tmp97 = getelementptr [6 x i8]* @.str1, i32 0, i32 0 ; <i8*> [#uses=1] - %tmp98 = call i32 (i8*, ...)* @printf( i8* %tmp97, i32 %tmp96 ) ; <i32> [#uses=0] + volatile store i32 %tmp96, i32* @var %tmp99 = load i32* %i, align 4 ; <i32> [#uses=1] %tmp100 = add i32 %tmp99, 1 ; <i32> [#uses=1] store i32 %tmp100, i32* %i, align 4 @@ -177,5 +181,3 @@ return: ; preds = %bb106 %retval107 = load i32* %retval ; <i32> [#uses=1] ret i32 %retval107 } - -declare i32 @printf(i8*, ...) diff --git a/test/CodeGen/X86/personality.ll b/test/CodeGen/X86/personality.ll index 5acf04c..ce57e8f 100644 --- a/test/CodeGen/X86/personality.ll +++ b/test/CodeGen/X86/personality.ll @@ -39,7 +39,7 @@ declare void @__gxx_personality_v0() declare void @__cxa_end_catch() ; X64: Leh_frame_common_begin: -; X64: .long ___gxx_personality_v0@GOTPCREL+4 +; X64: .long (___gxx_personality_v0@GOTPCREL)+4 ; X32: Leh_frame_common_begin: ; X32: .long L___gxx_personality_v0$non_lazy_ptr- diff --git a/test/CodeGen/Generic/phi-immediate-factoring.ll b/test/CodeGen/X86/phi-immediate-factoring.ll index 9f9f921..9f9f921 100644 --- a/test/CodeGen/Generic/phi-immediate-factoring.ll +++ b/test/CodeGen/X86/phi-immediate-factoring.ll diff --git a/test/CodeGen/X86/phys-reg-local-regalloc.ll b/test/CodeGen/X86/phys-reg-local-regalloc.ll index e5e2d4b..045841e 100644 --- a/test/CodeGen/X86/phys-reg-local-regalloc.ll +++ b/test/CodeGen/X86/phys-reg-local-regalloc.ll @@ -1,4 +1,6 @@ ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=local | FileCheck %s +; RUN: llc -O0 < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=local | FileCheck %s +; CHECKed instructions should be the same with or without -O0. @.str = private constant [12 x i8] c"x + y = %i\0A\00", align 1 ; <[12 x i8]*> [#uses=1] diff --git a/test/CodeGen/X86/pic.ll b/test/CodeGen/X86/pic.ll index e886ba0..d3c28a0 100644 --- a/test/CodeGen/X86/pic.ll +++ b/test/CodeGen/X86/pic.ll @@ -190,7 +190,7 @@ bb12: ; LINUX: .L8$pb: ; LINUX: addl $_GLOBAL_OFFSET_TABLE_+(.Lpicbaseref8-.L8$pb), ; LINUX: addl .LJTI8_0@GOTOFF( -; LINUX: jmpl *%ecx +; LINUX: jmpl * ; LINUX: .LJTI8_0: ; LINUX: .long .LBB8_2@GOTOFF diff --git a/test/CodeGen/X86/pr1505b.ll b/test/CodeGen/X86/pr1505b.ll index 12736cd..6a08dae 100644 --- a/test/CodeGen/X86/pr1505b.ll +++ b/test/CodeGen/X86/pr1505b.ll @@ -1,5 +1,5 @@ -; RUN: llc < %s -mcpu=i486 | grep fstpl | count 4 -; RUN: llc < %s -mcpu=i486 | grep fstps | count 3 +; RUN: llc < %s -mcpu=i486 | grep fstpl | count 5 +; RUN: llc < %s -mcpu=i486 | grep fstps | count 2 ; PR1505 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" diff --git a/test/CodeGen/X86/pr3495.ll b/test/CodeGen/X86/pr3495.ll index 1795970..e84a84f 100644 --- a/test/CodeGen/X86/pr3495.ll +++ b/test/CodeGen/X86/pr3495.ll @@ -1,8 +1,7 @@ ; RUN: llc < %s -march=x86 -stats |& grep {Number of loads added} | grep 2 ; RUN: llc < %s -march=x86 -stats |& grep {Number of register spills} | grep 1 -; RUN: llc < %s -march=x86 -stats |& grep {Number of machine instrs printed} | grep 38 +; RUN: llc < %s -march=x86 -stats |& grep {Number of machine instrs printed} | grep 34 ; PR3495 -; The loop reversal kicks in once here, resulting in one fewer instruction. target triple = "i386-pc-linux-gnu" @x = external global [8 x i32], align 32 ; <[8 x i32]*> [#uses=1] diff --git a/test/CodeGen/X86/pre-split8.ll b/test/CodeGen/X86/pre-split8.ll index ea4b949..0684bd0 100644 --- a/test/CodeGen/X86/pre-split8.ll +++ b/test/CodeGen/X86/pre-split8.ll @@ -20,7 +20,7 @@ bb: ; preds = %bb9.i, %entry bb9.i: ; preds = %bb %2 = fsub double %.rle4, %0 ; <double> [#uses=0] - %3 = tail call double @asin(double 0.000000e+00) nounwind readonly ; <double> [#uses=0] + %3 = tail call double @asin(double %.rle4) nounwind readonly ; <double> [#uses=0] %4 = fmul double 0.000000e+00, %0 ; <double> [#uses=1] %5 = tail call double @tan(double 0.000000e+00) nounwind readonly ; <double> [#uses=0] %6 = fmul double %4, 0.000000e+00 ; <double> [#uses=1] diff --git a/test/CodeGen/X86/pre-split9.ll b/test/CodeGen/X86/pre-split9.ll index c27d925..86dda33 100644 --- a/test/CodeGen/X86/pre-split9.ll +++ b/test/CodeGen/X86/pre-split9.ll @@ -22,7 +22,7 @@ bb: ; preds = %bb9.i, %entry bb9.i: ; preds = %bb %2 = fsub double %.rle4, %0 ; <double> [#uses=0] - %3 = tail call double @asin(double 0.000000e+00) nounwind readonly ; <double> [#uses=0] + %3 = tail call double @asin(double %.rle4) nounwind readonly ; <double> [#uses=0] %4 = tail call double @sin(double 0.000000e+00) nounwind readonly ; <double> [#uses=1] %5 = fmul double %4, %0 ; <double> [#uses=1] %6 = tail call double @tan(double 0.000000e+00) nounwind readonly ; <double> [#uses=0] diff --git a/test/CodeGen/X86/ptrtoint-constexpr.ll b/test/CodeGen/X86/ptrtoint-constexpr.ll index 7e33e79..dd97905 100644 --- a/test/CodeGen/X86/ptrtoint-constexpr.ll +++ b/test/CodeGen/X86/ptrtoint-constexpr.ll @@ -6,3 +6,9 @@ ; CHECK: .quad r&4294967295 @r = global %union.x { i64 ptrtoint (%union.x* @r to i64) }, align 4 + +; CHECK: .globl x +; CHECK: x: +; CHECK: .quad 3 + +@x = global i64 mul (i64 3, i64 ptrtoint (i2* getelementptr (i2* null, i64 1) to i64)) diff --git a/test/CodeGen/X86/scalar_widen_div.ll b/test/CodeGen/X86/scalar_widen_div.ll index fc67e44..77f320f 100644 --- a/test/CodeGen/X86/scalar_widen_div.ll +++ b/test/CodeGen/X86/scalar_widen_div.ll @@ -152,3 +152,32 @@ define <5 x i64> @test_ulong_rem(<5 x i64> %num, <5 x i64> %rem) { %rem.r = urem <5 x i64> %num, %rem ret <5 x i64> %rem.r } + +define void @test_int_div(<3 x i32>* %dest, <3 x i32>* %old, i32 %n) { +; CHECK: idivl +; CHECK: idivl +; CHECK: idivl +; CHECK-NOT: idivl +; CHECK: ret +entry: + %cmp13 = icmp sgt i32 %n, 0 + br i1 %cmp13, label %bb.nph, label %for.end + +bb.nph: + br label %for.body + +for.body: + %i.014 = phi i32 [ 0, %bb.nph ], [ %inc, %for.body ] + %arrayidx11 = getelementptr <3 x i32>* %dest, i32 %i.014 + %tmp4 = load <3 x i32>* %arrayidx11 ; <<3 x i32>> [#uses=1] + %arrayidx7 = getelementptr inbounds <3 x i32>* %old, i32 %i.014 + %tmp8 = load <3 x i32>* %arrayidx7 ; <<3 x i32>> [#uses=1] + %div = sdiv <3 x i32> %tmp4, %tmp8 + store <3 x i32> %div, <3 x i32>* %arrayidx11 + %inc = add nsw i32 %i.014, 1 + %exitcond = icmp eq i32 %inc, %n + br i1 %exitcond, label %for.end, label %for.body + +for.end: ; preds = %for.body, %entry + ret void +} diff --git a/test/CodeGen/X86/sext-i1.ll b/test/CodeGen/X86/sext-i1.ll new file mode 100644 index 0000000..21c418d --- /dev/null +++ b/test/CodeGen/X86/sext-i1.ll @@ -0,0 +1,63 @@ +; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=32 +; RUN: llc < %s -march=x86-64 | FileCheck %s -check-prefix=64 +; rdar://7573216 +; PR6146 + +define i32 @t1(i32 %x) nounwind readnone ssp { +entry: +; 32: t1: +; 32: cmpl $1 +; 32: sbbl + +; 64: t1: +; 64: cmpl $1 +; 64: sbbl + %0 = icmp eq i32 %x, 0 + %iftmp.0.0 = select i1 %0, i32 -1, i32 0 + ret i32 %iftmp.0.0 +} + +define i32 @t2(i32 %x) nounwind readnone ssp { +entry: +; 32: t2: +; 32: cmpl $1 +; 32: sbbl + +; 64: t2: +; 64: cmpl $1 +; 64: sbbl + %0 = icmp eq i32 %x, 0 + %iftmp.0.0 = sext i1 %0 to i32 + ret i32 %iftmp.0.0 +} + +%struct.zbookmark = type { i64, i64 } +%struct.zstream = type { } + +define i32 @t3() nounwind readonly { +entry: +; 32: t3: +; 32: cmpl $1 +; 32: sbbl +; 32: cmpl +; 32: xorl + +; 64: t3: +; 64: cmpl $1 +; 64: sbbq +; 64: cmpq +; 64: xorl + %not.tobool = icmp eq i32 undef, 0 ; <i1> [#uses=2] + %cond = sext i1 %not.tobool to i32 ; <i32> [#uses=1] + %conv = sext i1 %not.tobool to i64 ; <i64> [#uses=1] + %add13 = add i64 0, %conv ; <i64> [#uses=1] + %cmp = icmp ult i64 undef, %add13 ; <i1> [#uses=1] + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + br label %if.end + +if.end: ; preds = %if.then, %entry + %xor27 = xor i32 undef, %cond ; <i32> [#uses=0] + ret i32 0 +} diff --git a/test/CodeGen/X86/sse3.ll b/test/CodeGen/X86/sse3.ll index 5550d26..b2af7c9 100644 --- a/test/CodeGen/X86/sse3.ll +++ b/test/CodeGen/X86/sse3.ll @@ -63,10 +63,10 @@ define <8 x i16> @t4(<8 x i16> %A, <8 x i16> %B) nounwind { ret <8 x i16> %tmp ; X64: t4: ; X64: pextrw $7, %xmm0, %eax -; X64: pshufhw $100, %xmm0, %xmm1 -; X64: pinsrw $1, %eax, %xmm1 +; X64: pshufhw $100, %xmm0, %xmm2 +; X64: pinsrw $1, %eax, %xmm2 ; X64: pextrw $1, %xmm0, %eax -; X64: movaps %xmm1, %xmm0 +; X64: movaps %xmm2, %xmm0 ; X64: pinsrw $4, %eax, %xmm0 ; X64: ret } diff --git a/test/CodeGen/X86/stack-color-with-reg.ll b/test/CodeGen/X86/stack-color-with-reg.ll index 7d85818..42e7a39 100644 --- a/test/CodeGen/X86/stack-color-with-reg.ll +++ b/test/CodeGen/X86/stack-color-with-reg.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -relocation-model=pic -disable-fp-elim -color-ss-with-regs -stats -info-output-file - > %t -; RUN: grep stackcoloring %t | grep "stack slot refs replaced with reg refs" | grep 14 +; RUN: grep stackcoloring %t | grep "stack slot refs replaced with reg refs" | grep 8 type { [62 x %struct.Bitvec*] } ; type %0 type { i8* } ; type %1 diff --git a/test/CodeGen/X86/stdcall.ll b/test/CodeGen/X86/stdcall.ll new file mode 100644 index 0000000..70204bc --- /dev/null +++ b/test/CodeGen/X86/stdcall.ll @@ -0,0 +1,16 @@ +; RUN: llc < %s | FileCheck %s +; PR5851 + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" +target triple = "i386-mingw32" + +%0 = type { void (...)* } + +@B = global %0 { void (...)* bitcast (void ()* @MyFunc to void (...)*) }, align 4 +; CHECK: _B: +; CHECK: .long _MyFunc@0 + +define internal x86_stdcallcc void @MyFunc() nounwind { +entry: + ret void +} diff --git a/test/CodeGen/Generic/switch-crit-edge-constant.ll b/test/CodeGen/X86/switch-crit-edge-constant.ll index 1f2ab0d..1f2ab0d 100644 --- a/test/CodeGen/Generic/switch-crit-edge-constant.ll +++ b/test/CodeGen/X86/switch-crit-edge-constant.ll diff --git a/test/CodeGen/X86/tailcall1.ll b/test/CodeGen/X86/tailcall1.ll index 42f8cdd..f7ff5d5 100644 --- a/test/CodeGen/X86/tailcall1.ll +++ b/test/CodeGen/X86/tailcall1.ll @@ -1,11 +1,14 @@ ; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 5 +; With -tailcallopt, CodeGen guarantees a tail call optimization +; for all of these. + declare fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) define fastcc i32 @tailcaller(i32 %in1, i32 %in2) nounwind { entry: - %tmp11 = tail call fastcc i32 @tailcallee(i32 %in1, i32 %in2, i32 %in1, i32 %in2) - ret i32 %tmp11 + %tmp11 = tail call fastcc i32 @tailcallee(i32 %in1, i32 %in2, i32 %in1, i32 %in2) + ret i32 %tmp11 } declare fastcc i8* @alias_callee() diff --git a/test/CodeGen/X86/tailcall2.ll b/test/CodeGen/X86/tailcall2.ll new file mode 100644 index 0000000..80bab61 --- /dev/null +++ b/test/CodeGen/X86/tailcall2.ll @@ -0,0 +1,197 @@ +; RUN: llc < %s -march=x86 -asm-verbose=false | FileCheck %s -check-prefix=32 +; RUN: llc < %s -march=x86-64 -asm-verbose=false | FileCheck %s -check-prefix=64 + +define void @t1(i32 %x) nounwind ssp { +entry: +; 32: t1: +; 32: jmp {{_?}}foo + +; 64: t1: +; 64: jmp {{_?}}foo + tail call void @foo() nounwind + ret void +} + +declare void @foo() + +define void @t2() nounwind ssp { +entry: +; 32: t2: +; 32: jmp {{_?}}foo2 + +; 64: t2: +; 64: jmp {{_?}}foo2 + %0 = tail call i32 @foo2() nounwind + ret void +} + +declare i32 @foo2() + +define void @t3() nounwind ssp { +entry: +; 32: t3: +; 32: jmp {{_?}}foo3 + +; 64: t3: +; 64: jmp {{_?}}foo3 + %0 = tail call i32 @foo3() nounwind + ret void +} + +declare i32 @foo3() + +define void @t4(void (i32)* nocapture %x) nounwind ssp { +entry: +; 32: t4: +; 32: call * +; FIXME: gcc can generate a tailcall for this. But it's tricky. + +; 64: t4: +; 64-NOT: call +; 64: jmpq * + tail call void %x(i32 0) nounwind + ret void +} + +define void @t5(void ()* nocapture %x) nounwind ssp { +entry: +; 32: t5: +; 32-NOT: call +; 32: jmpl * + +; 64: t5: +; 64-NOT: call +; 64: jmpq * + tail call void %x() nounwind + ret void +} + +define i32 @t6(i32 %x) nounwind ssp { +entry: +; 32: t6: +; 32: call {{_?}}t6 +; 32: jmp {{_?}}bar + +; 64: t6: +; 64: jmp {{_?}}t6 +; 64: jmp {{_?}}bar + %0 = icmp slt i32 %x, 10 + br i1 %0, label %bb, label %bb1 + +bb: + %1 = add nsw i32 %x, -1 + %2 = tail call i32 @t6(i32 %1) nounwind ssp + ret i32 %2 + +bb1: + %3 = tail call i32 @bar(i32 %x) nounwind + ret i32 %3 +} + +declare i32 @bar(i32) + +define i32 @t7(i32 %a, i32 %b, i32 %c) nounwind ssp { +entry: +; 32: t7: +; 32: jmp {{_?}}bar2 + +; 64: t7: +; 64: jmp {{_?}}bar2 + %0 = tail call i32 @bar2(i32 %a, i32 %b, i32 %c) nounwind + ret i32 %0 +} + +declare i32 @bar2(i32, i32, i32) + +define signext i16 @t8() nounwind ssp { +entry: +; 32: t8: +; 32: call {{_?}}bar3 + +; 64: t8: +; 64: callq {{_?}}bar3 + %0 = tail call signext i16 @bar3() nounwind ; <i16> [#uses=1] + ret i16 %0 +} + +declare signext i16 @bar3() + +define signext i16 @t9(i32 (i32)* nocapture %x) nounwind ssp { +entry: +; 32: t9: +; 32: call * + +; 64: t9: +; 64: callq * + %0 = bitcast i32 (i32)* %x to i16 (i32)* + %1 = tail call signext i16 %0(i32 0) nounwind + ret i16 %1 +} + +define void @t10() nounwind ssp { +entry: +; 32: t10: +; 32: call + +; 64: t10: +; 64: callq + %0 = tail call i32 @foo4() noreturn nounwind + unreachable +} + +declare i32 @foo4() + +define i32 @t11(i32 %x, i32 %y, i32 %z.0, i32 %z.1, i32 %z.2) nounwind ssp { +; In 32-bit mode, it's emitting a bunch of dead loads that are not being +; eliminated currently. + +; 32: t11: +; 32-NOT: subl ${{[0-9]+}}, %esp +; 32: jne +; 32-NOT: movl +; 32-NOT: addl ${{[0-9]+}}, %esp +; 32: jmp {{_?}}foo5 + +; 64: t11: +; 64-NOT: subq ${{[0-9]+}}, %esp +; 64-NOT: addq ${{[0-9]+}}, %esp +; 64: jmp {{_?}}foo5 +entry: + %0 = icmp eq i32 %x, 0 + br i1 %0, label %bb6, label %bb + +bb: + %1 = tail call i32 @foo5(i32 %x, i32 %y, i32 %z.0, i32 %z.1, i32 %z.2) nounwind + ret i32 %1 + +bb6: + ret i32 0 +} + +declare i32 @foo5(i32, i32, i32, i32, i32) + +%struct.t = type { i32, i32, i32, i32, i32 } + +define i32 @t12(i32 %x, i32 %y, %struct.t* byval align 4 %z) nounwind ssp { +; 32: t12: +; 32-NOT: subl ${{[0-9]+}}, %esp +; 32-NOT: addl ${{[0-9]+}}, %esp +; 32: jmp {{_?}}foo6 + +; 64: t12: +; 64-NOT: subq ${{[0-9]+}}, %esp +; 64-NOT: addq ${{[0-9]+}}, %esp +; 64: jmp {{_?}}foo6 +entry: + %0 = icmp eq i32 %x, 0 + br i1 %0, label %bb2, label %bb + +bb: + %1 = tail call i32 @foo6(i32 %x, i32 %y, %struct.t* byval align 4 %z) nounwind + ret i32 %1 + +bb2: + ret i32 0 +} + +declare i32 @foo6(i32, i32, %struct.t* byval align 4) diff --git a/test/CodeGen/X86/tailcallfp2.ll b/test/CodeGen/X86/tailcallfp2.ll index be4f96c..3841f51 100644 --- a/test/CodeGen/X86/tailcallfp2.ll +++ b/test/CodeGen/X86/tailcallfp2.ll @@ -2,7 +2,7 @@ declare i32 @putchar(i32) -define fastcc i32 @checktail(i32 %x, i32* %f, i32 %g) { +define fastcc i32 @checktail(i32 %x, i32* %f, i32 %g) nounwind { %tmp1 = icmp sgt i32 %x, 0 br i1 %tmp1, label %if-then, label %if-else @@ -18,8 +18,8 @@ if-else: } -define i32 @main() { +define i32 @main() nounwind { %f = bitcast i32 (i32, i32*, i32)* @checktail to i32* %res = tail call fastcc i32 @checktail( i32 10, i32* %f,i32 10) ret i32 %res -}
\ No newline at end of file +} diff --git a/test/CodeGen/X86/twoaddr-coalesce.ll b/test/CodeGen/X86/twoaddr-coalesce.ll index d0e13f6..4c37225 100644 --- a/test/CodeGen/X86/twoaddr-coalesce.ll +++ b/test/CodeGen/X86/twoaddr-coalesce.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86 | grep mov | count 5 +; RUN: llc < %s -march=x86 | grep mov | count 4 ; rdar://6523745 @"\01LC" = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] diff --git a/test/CodeGen/X86/vsplit-and.ll b/test/CodeGen/X86/vsplit-and.ll new file mode 100644 index 0000000..a247c6e --- /dev/null +++ b/test/CodeGen/X86/vsplit-and.ll @@ -0,0 +1,22 @@ +; RUN: llc < %s -march=x86 -disable-mmx | FileCheck %s + + +define void @t(<2 x i64>* %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind readonly { +; CHECK: andb + %cmp1 = icmp ne <2 x i64> %src1, zeroinitializer + %cmp2 = icmp ne <2 x i64> %src2, zeroinitializer + %t1 = and <2 x i1> %cmp1, %cmp2 + %t2 = sext <2 x i1> %t1 to <2 x i64> + store <2 x i64> %t2, <2 x i64>* %dst + ret void +} + +define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly { +; CHECK: andb + %cmp1 = icmp ne <3 x i64> %src1, zeroinitializer + %cmp2 = icmp ne <3 x i64> %src2, zeroinitializer + %t1 = and <3 x i1> %cmp1, %cmp2 + %t2 = sext <3 x i1> %t1 to <3 x i64> + store <3 x i64> %t2, <3 x i64>* %dst + ret void +} diff --git a/test/CodeGen/X86/widen_cast-2.ll b/test/CodeGen/X86/widen_cast-2.ll index e5d2c6a..1e626a2 100644 --- a/test/CodeGen/X86/widen_cast-2.ll +++ b/test/CodeGen/X86/widen_cast-2.ll @@ -2,10 +2,8 @@ ; CHECK: pextrd ; CHECK: pextrd ; CHECK: movd -; CHECK: pextrd -; CHECK: pextrd -; CHECK: pextrd -; CHECK: movd +; CHECK: movaps + ; bitcast v14i16 to v7i32 diff --git a/test/CodeGen/X86/widen_load-1.ll b/test/CodeGen/X86/widen_load-1.ll index 8a970bf..d397645 100644 --- a/test/CodeGen/X86/widen_load-1.ll +++ b/test/CodeGen/X86/widen_load-1.ll @@ -3,7 +3,7 @@ ; This load should be before the call, not after. -; CHECK: movq compl+128(%rip), %xmm0 +; CHECK: movaps compl+128(%rip), %xmm0 ; CHECK: movaps %xmm0, (%rsp) ; CHECK: callq killcommon diff --git a/test/CodeGen/X86/widen_load-2.ll b/test/CodeGen/X86/widen_load-2.ll new file mode 100644 index 0000000..11383fa --- /dev/null +++ b/test/CodeGen/X86/widen_load-2.ll @@ -0,0 +1,155 @@ +; RUN: llc < %s -o - -march=x86-64 -mattr=+sse42 -disable-mmx | FileCheck %s + +; Test based on pr5626 to load/store +; + +%i32vec3 = type <3 x i32> +define void @add3i32(%i32vec3* sret %ret, %i32vec3* %ap, %i32vec3* %bp) { +; CHECK: movaps +; CHECK: paddd +; CHECK: pextrd +; CHECK: movq + %a = load %i32vec3* %ap, align 16 + %b = load %i32vec3* %bp, align 16 + %x = add %i32vec3 %a, %b + store %i32vec3 %x, %i32vec3* %ret, align 16 + ret void +} + +define void @add3i32_2(%i32vec3* sret %ret, %i32vec3* %ap, %i32vec3* %bp) { +; CHECK: movq +; CHECK: pinsrd +; CHECK: movq +; CHECK: pinsrd +; CHECK: paddd +; CHECK: pextrd +; CHECK: movq + %a = load %i32vec3* %ap + %b = load %i32vec3* %bp + %x = add %i32vec3 %a, %b + store %i32vec3 %x, %i32vec3* %ret + ret void +} + +%i32vec7 = type <7 x i32> +define void @add7i32(%i32vec7* sret %ret, %i32vec7* %ap, %i32vec7* %bp) { +; CHECK: movaps +; CHECK: movaps +; CHECK: paddd +; CHECK: paddd +; CHECK: pextrd +; CHECK: movq +; CHECK: movaps + %a = load %i32vec7* %ap, align 16 + %b = load %i32vec7* %bp, align 16 + %x = add %i32vec7 %a, %b + store %i32vec7 %x, %i32vec7* %ret, align 16 + ret void +} + +%i32vec12 = type <12 x i32> +define void @add12i32(%i32vec12* sret %ret, %i32vec12* %ap, %i32vec12* %bp) { +; CHECK: movaps +; CHECK: movaps +; CHECK: movaps +; CHECK: paddd +; CHECK: paddd +; CHECK: paddd +; CHECK: movaps +; CHECK: movaps +; CHECK: movaps + %a = load %i32vec12* %ap, align 16 + %b = load %i32vec12* %bp, align 16 + %x = add %i32vec12 %a, %b + store %i32vec12 %x, %i32vec12* %ret, align 16 + ret void +} + + +%i16vec3 = type <3 x i16> +define void @add3i16(%i16vec3* nocapture sret %ret, %i16vec3* %ap, %i16vec3* %bp) nounwind { +; CHECK: movaps +; CHECK: paddw +; CHECK: movd +; CHECK: pextrw + %a = load %i16vec3* %ap, align 16 + %b = load %i16vec3* %bp, align 16 + %x = add %i16vec3 %a, %b + store %i16vec3 %x, %i16vec3* %ret, align 16 + ret void +} + +%i16vec4 = type <4 x i16> +define void @add4i16(%i16vec4* nocapture sret %ret, %i16vec4* %ap, %i16vec4* %bp) nounwind { +; CHECK: movaps +; CHECK: paddw +; CHECK: movq + %a = load %i16vec4* %ap, align 16 + %b = load %i16vec4* %bp, align 16 + %x = add %i16vec4 %a, %b + store %i16vec4 %x, %i16vec4* %ret, align 16 + ret void +} + +%i16vec12 = type <12 x i16> +define void @add12i16(%i16vec12* nocapture sret %ret, %i16vec12* %ap, %i16vec12* %bp) nounwind { +; CHECK: movaps +; CHECK: movaps +; CHECK: paddw +; CHECK: paddw +; CHECK: movq +; CHECK: movaps + %a = load %i16vec12* %ap, align 16 + %b = load %i16vec12* %bp, align 16 + %x = add %i16vec12 %a, %b + store %i16vec12 %x, %i16vec12* %ret, align 16 + ret void +} + +%i16vec18 = type <18 x i16> +define void @add18i16(%i16vec18* nocapture sret %ret, %i16vec18* %ap, %i16vec18* %bp) nounwind { +; CHECK: movaps +; CHECK: movaps +; CHECK: movaps +; CHECK: paddw +; CHECK: paddw +; CHECK: paddw +; CHECK: movd +; CHECK: movaps +; CHECK: movaps + %a = load %i16vec18* %ap, align 16 + %b = load %i16vec18* %bp, align 16 + %x = add %i16vec18 %a, %b + store %i16vec18 %x, %i16vec18* %ret, align 16 + ret void +} + + +%i8vec3 = type <3 x i8> +define void @add3i8(%i8vec3* nocapture sret %ret, %i8vec3* %ap, %i8vec3* %bp) nounwind { +; CHECK: movaps +; CHECK: paddb +; CHECK: pextrb +; CHECK: movb + %a = load %i8vec3* %ap, align 16 + %b = load %i8vec3* %bp, align 16 + %x = add %i8vec3 %a, %b + store %i8vec3 %x, %i8vec3* %ret, align 16 + ret void +} + +%i8vec31 = type <31 x i8> +define void @add31i8(%i8vec31* nocapture sret %ret, %i8vec31* %ap, %i8vec31* %bp) nounwind { +; CHECK: movaps +; CHECK: movaps +; CHECK: paddb +; CHECK: paddb +; CHECK: movq +; CHECK: pextrb +; CHECK: pextrw + %a = load %i8vec31* %ap, align 16 + %b = load %i8vec31* %bp, align 16 + %x = add %i8vec31 %a, %b + store %i8vec31 %x, %i8vec31* %ret, align 16 + ret void +}
\ No newline at end of file diff --git a/test/CodeGen/X86/zext-trunc.ll b/test/CodeGen/X86/zext-trunc.ll new file mode 100644 index 0000000..b9ffbe8 --- /dev/null +++ b/test/CodeGen/X86/zext-trunc.ll @@ -0,0 +1,13 @@ +; RUN: llc < %s -march=x86-64 | FileCheck %s +; rdar://7570931 + +define i64 @foo(i64 %a, i64 %b) nounwind { +; CHECK: foo: +; CHECK: leal +; CHECK-NOT: movl +; CHECK: ret + %c = add i64 %a, %b + %d = trunc i64 %c to i32 + %e = zext i32 %d to i64 + ret i64 %e +} diff --git a/test/CodeGen/XCore/ashr.ll b/test/CodeGen/XCore/ashr.ll index d585e8b..d99808f 100644 --- a/test/CodeGen/XCore/ashr.ll +++ b/test/CodeGen/XCore/ashr.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=xcore | FileCheck %s +; RUN: llc < %s -march=xcore -asm-verbose=0 | FileCheck %s define i32 @ashr(i32 %a, i32 %b) { %1 = ashr i32 %a, %b ret i32 %1 diff --git a/test/DebugInfo/2010-01-18-DbgValue.ll b/test/DebugInfo/2010-01-18-DbgValue.ll new file mode 100644 index 0000000..ff97b18 --- /dev/null +++ b/test/DebugInfo/2010-01-18-DbgValue.ll @@ -0,0 +1,55 @@ +; RUN: llc -O0 < %s | FileCheck %s +; ModuleID = 'try.c' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32" +target triple = "i386-apple-darwin9.8" +; Currently, dbg.declare generates a DEBUG_VALUE comment. Eventually it will +; generate DWARF and this test will need to be modified or removed. + +@Y = common global i32 0 ; <i32*> [#uses=1] + +define i32 @test() nounwind { +entry: +; CHECK: DEBUG_VALUE: + %retval = alloca i32 ; <i32*> [#uses=2] + %X = alloca i32 ; <i32*> [#uses=5] + %0 = alloca i32 ; <i32*> [#uses=2] + %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] + call void @llvm.dbg.declare(metadata !{i32* %X}, metadata !3), !dbg !7 + store i32 4, i32* %X, align 4, !dbg !8 + %1 = load i32* %X, align 4, !dbg !9 ; <i32> [#uses=1] + call void @use(i32 %1) nounwind, !dbg !9 + %2 = load i32* @Y, align 4, !dbg !10 ; <i32> [#uses=1] + %3 = add nsw i32 %2, 2, !dbg !10 ; <i32> [#uses=1] + store i32 %3, i32* %X, align 4, !dbg !10 + %4 = load i32* %X, align 4, !dbg !11 ; <i32> [#uses=1] + call void @use(i32 %4) nounwind, !dbg !11 + %5 = load i32* %X, align 4, !dbg !12 ; <i32> [#uses=1] + store i32 %5, i32* %0, align 4, !dbg !12 + %6 = load i32* %0, align 4, !dbg !12 ; <i32> [#uses=1] + store i32 %6, i32* %retval, align 4, !dbg !12 + br label %return, !dbg !12 + +return: ; preds = %entry + %retval1 = load i32* %retval, !dbg !12 ; <i32> [#uses=1] + ret i32 %retval1, !dbg !12 +} + +declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone + +declare void @use(i32) + +!llvm.dbg.gv = !{!0} + +!0 = metadata !{i32 458804, i32 0, metadata !1, metadata !"Y", metadata !"Y", metadata !"Y", metadata !1, i32 2, metadata !2, i1 false, i1 true, i32* @Y} ; [ DW_TAG_variable ] +!1 = metadata !{i32 458769, i32 0, i32 1, metadata !"try.c", metadata !"/Volumes/MacOS9/tests/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ] +!2 = metadata !{i32 458788, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] +!3 = metadata !{i32 459008, metadata !4, metadata !"X", metadata !1, i32 4, metadata !2} ; [ DW_TAG_auto_variable ] +!4 = metadata !{i32 458798, i32 0, metadata !1, metadata !"", metadata !"", metadata !"test", metadata !1, i32 3, metadata !5, i1 false, i1 true, i32 0, i32 0, null} ; [ DW_TAG_subprogram ] +!5 = metadata !{i32 458773, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !6, i32 0} ; [ DW_TAG_subroutine_type ] +!6 = metadata !{metadata !2} +!7 = metadata !{i32 3, i32 0, metadata !4, null} +!8 = metadata !{i32 4, i32 0, metadata !4, null} +!9 = metadata !{i32 5, i32 0, metadata !4, null} +!10 = metadata !{i32 6, i32 0, metadata !4, null} +!11 = metadata !{i32 7, i32 0, metadata !4, null} +!12 = metadata !{i32 8, i32 0, metadata !4, null} diff --git a/test/DebugInfo/2010-02-01-DbgValueCrash.ll b/test/DebugInfo/2010-02-01-DbgValueCrash.ll new file mode 100644 index 0000000..70103e5 --- /dev/null +++ b/test/DebugInfo/2010-02-01-DbgValueCrash.ll @@ -0,0 +1,34 @@ +; RUN: llc -O1 < %s +; ModuleID = 'pr6157.bc' +target triple = "x86_64-unknown-linux-gnu" +; formerly crashed in SelectionDAGBuilder + +%tart.reflect.ComplexType = type { double, double } + +@.type.SwitchStmtTest = constant %tart.reflect.ComplexType { double 3.0, double 2.0 } + +define i32 @"main(tart.core.String[])->int32"(i32 %args) { +entry: + tail call void @llvm.dbg.value(metadata !14, i64 0, metadata !8) + tail call void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType* @.type.SwitchStmtTest) ; <%tart.core.Object*> [#uses=2] + ret i32 3 +} + +declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone +declare void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType*) nounwind readnone + +!0 = metadata !{i32 458769, i32 0, i32 1, metadata !"sm.c", metadata !"/Volumes/MacOS9/tests/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ] +!1 = metadata !{i32 458790, metadata !0, metadata !"", metadata !0, i32 0, i64 192, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_const_type ] +!2 = metadata !{i32 458771, metadata !0, metadata !"C", metadata !0, i32 1, i64 192, i64 64, i64 0, i32 0, null, metadata !3, i32 0, null} ; [ DW_TAG_structure_type ] +!3 = metadata !{metadata !4, metadata !6, metadata !7} +!4 = metadata !{i32 458765, metadata !2, metadata !"x", metadata !0, i32 1, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ] +!5 = metadata !{i32 458788, metadata !0, metadata !"double", metadata !0, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ] +!6 = metadata !{i32 458765, metadata !2, metadata !"y", metadata !0, i32 1, i64 64, i64 64, i64 64, i32 0, metadata !5} ; [ DW_TAG_member ] +!7 = metadata !{i32 458765, metadata !2, metadata !"z", metadata !0, i32 1, i64 64, i64 64, i64 128, i32 0, metadata !5} ; [ DW_TAG_member ] +!8 = metadata !{i32 459008, metadata !9, metadata !"t", metadata !0, i32 5, metadata !2} ; [ DW_TAG_auto_variable ] +!9 = metadata !{i32 458763, metadata !10} ; [ DW_TAG_lexical_block ] +!10 = metadata !{i32 458798, i32 0, metadata !0, metadata !"foo", metadata !"foo", metadata !"foo", metadata !0, i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null} ; [ DW_TAG_subprogram ] +!11 = metadata !{i32 458773, metadata !0, metadata !"", metadata !0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_subroutine_type ] +!12 = metadata !{metadata !13} +!13 = metadata !{i32 458788, metadata !0, metadata !"int", metadata !0, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] +!14 = metadata !{%tart.reflect.ComplexType* @.type.SwitchStmtTest} diff --git a/test/Feature/alignment.ll b/test/Feature/alignment.ll index 409efeb..ef35a13 100644 --- a/test/Feature/alignment.ll +++ b/test/Feature/alignment.ll @@ -19,3 +19,7 @@ define i32* @test2() { ret i32* %X } +define void @test3() alignstack(16) { + ret void +} + diff --git a/test/Feature/unions.ll b/test/Feature/unions.ll new file mode 100644 index 0000000..9d6c36b --- /dev/null +++ b/test/Feature/unions.ll @@ -0,0 +1,12 @@ +; RUN: llvm-as < %s | llvm-dis > %t1.ll +; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll +; RUN: diff %t1.ll %t2.ll + +%union.anon = type union { i8, i32, float } + +@union1 = constant union { i32, i8 } { i32 4 } +@union2 = constant union { i32, i8 } insertvalue(union { i32, i8 } undef, i32 4, 0) + +define void @"Unions" () { + ret void +} diff --git a/test/FrontendC++/2006-11-06-StackTrace.cpp b/test/FrontendC++/2006-11-06-StackTrace.cpp index 3732cb9..b79c0bf 100644 --- a/test/FrontendC++/2006-11-06-StackTrace.cpp +++ b/test/FrontendC++/2006-11-06-StackTrace.cpp @@ -5,14 +5,14 @@ // RUN: %compile_c %t.s -o %t.o // RUN: %link %t.o -o %t.exe // RUN: echo {break DeepStack::deepest\nrun 17\nwhere\n} > %t.in -// RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \ -// RUN: grep {#0 DeepStack::deepest.*(this=.*,.*x=33)} -// RUN: gdb -q -batch -n -x %t.in %t.exe | \ -// RUN: grep {#7 0x.* in main.*(argc=\[12\],.*argv=.*)} +// RN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \ +// RN: grep {#0 DeepStack::deepest.*(this=.*,.*x=33)} +// RN: gdb -q -batch -n -x %t.in %t.exe | \ +// RN: grep {#7 0x.* in main.*(argc=\[12\],.*argv=.*)} // Only works on ppc (but not apple-darwin9), x86 and x86_64. Should // generalize? -// XFAIL: alpha,arm,powerpc-apple-darwin9 +// XAIL: alpha,arm,powerpc-apple-darwin9 #include <stdlib.h> diff --git a/test/FrontendC++/2006-11-30-Pubnames.cpp b/test/FrontendC++/2006-11-30-Pubnames.cpp index 3a08b3c..239d3f5 100644 --- a/test/FrontendC++/2006-11-30-Pubnames.cpp +++ b/test/FrontendC++/2006-11-30-Pubnames.cpp @@ -8,9 +8,7 @@ // RUN: echo {break main\nrun\np Pubnames::pubname} > %t.in // RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | grep {\$1 = 10} // -// XFAIL: alpha,arm,powerpc-apple-darwin -// FIXME: This doesn't work for PPC Darwin because we turned off debugging on -// that platform. +// XFAIL: alpha,arm struct Pubnames { static int pubname; diff --git a/test/FrontendC++/2010-02-08-NamespaceVar.cpp b/test/FrontendC++/2010-02-08-NamespaceVar.cpp new file mode 100644 index 0000000..cd8247a --- /dev/null +++ b/test/FrontendC++/2010-02-08-NamespaceVar.cpp @@ -0,0 +1,16 @@ +// RUN: %llvmgxx -S %s -o - | grep cX + +namespace C { + int c = 1; + namespace { + int cX = 6; + void marker2() { + cX; + } + } +} + +int main() { + C::marker2(); + return 0; +} diff --git a/test/FrontendC/2003-12-14-ExternInlineSupport.c b/test/FrontendC/2003-12-14-ExternInlineSupport.c index fb92ec7..510d1f8 100644 --- a/test/FrontendC/2003-12-14-ExternInlineSupport.c +++ b/test/FrontendC/2003-12-14-ExternInlineSupport.c @@ -1,3 +1,3 @@ -// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | not grep dead_function +// RUN: %llvmgcc -Os -xc %s -c -o - | llvm-dis | not grep dead_function extern __inline__ void dead_function() {} diff --git a/test/FrontendC/2007-02-16-WritableStrings.c b/test/FrontendC/2007-02-16-WritableStrings.c index 811e330..0f281ce 100644 --- a/test/FrontendC/2007-02-16-WritableStrings.c +++ b/test/FrontendC/2007-02-16-WritableStrings.c @@ -1,7 +1,7 @@ // Test the -fwritable-strings option. // RUN: %llvmgcc -O3 -S -o - -emit-llvm -fwritable-strings %s | \ -// RUN: grep {private global} +// RUN: grep {internal global} // RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep {private constant} char *X = "foo"; diff --git a/test/FrontendC/2009-02-17-BitField-dbg.c b/test/FrontendC/2009-02-17-BitField-dbg.c index 3effd02..80ccc4a 100644 --- a/test/FrontendC/2009-02-17-BitField-dbg.c +++ b/test/FrontendC/2009-02-17-BitField-dbg.c @@ -6,9 +6,6 @@ // RUN: gdb -q -batch -n -x %t2 2009-02-17-BitField-dbg.o | \ // RUN: tee 2009-02-17-BitField-dbg.out | grep "int a : 4" // -// XFAIL: powerpc-apple-darwin -// FIXME: This doesn't work for PPC Darwin because we turned off debugging on -// that platform. struct { int a:4; diff --git a/test/FrontendC/2010-01-13-MemBarrier.c b/test/FrontendC/2010-01-13-MemBarrier.c index 53d0081..8fcd522 100644 --- a/test/FrontendC/2010-01-13-MemBarrier.c +++ b/test/FrontendC/2010-01-13-MemBarrier.c @@ -1,5 +1,5 @@ // RUN: %llvmgcc %s -S -emit-llvm -o - | FileCheck %s -// XFAIL: sparc,powerpc +// XFAIL: sparc // rdar://7536390 unsigned t(unsigned *ptr, unsigned val) { diff --git a/test/FrontendC/2010-02-10-PointerName.c b/test/FrontendC/2010-02-10-PointerName.c new file mode 100644 index 0000000..7880fa8 --- /dev/null +++ b/test/FrontendC/2010-02-10-PointerName.c @@ -0,0 +1,7 @@ +// RUN: %llvmgcc %s -S -g -o - | grep DW_TAG_pointer_type | grep -v char + +char i = 1; +void foo() { + char *cp = &i; +} + diff --git a/test/FrontendObjC/2010-02-01-utf16-with-null.m b/test/FrontendObjC/2010-02-01-utf16-with-null.m new file mode 100644 index 0000000..86e4637 --- /dev/null +++ b/test/FrontendObjC/2010-02-01-utf16-with-null.m @@ -0,0 +1,5 @@ +/* RUN: %llvmgcc -w -x objective-c -S %s -o - | not grep {__ustring} + rdar://7589850 */ + +void *P = @"good\0bye"; + diff --git a/test/FrontendObjC/2010-02-11-fwritable-stringsBug.m b/test/FrontendObjC/2010-02-11-fwritable-stringsBug.m new file mode 100644 index 0000000..13e1631 --- /dev/null +++ b/test/FrontendObjC/2010-02-11-fwritable-stringsBug.m @@ -0,0 +1,17 @@ +// RUN: %llvmgcc -x objective-c -fwritable-strings -S %s -o - | FileCheck %s +// CHECK: @.str = private constant +// CHECK: @.str1 = internal global + +// rdar://7634471 + +@class NSString; + +@interface A +- (void)foo:(NSString*)msg; +- (void)bar:(const char*)msg; +@end + +void func(A *a) { + [a foo:@"Hello world!"]; + [a bar:"Goodbye world!"]; +} diff --git a/test/LLVMC/MultiplePluginPriorities.td b/test/LLVMC/MultiplePluginPriorities.td index 721b7cc..f108641 100644 --- a/test/LLVMC/MultiplePluginPriorities.td +++ b/test/LLVMC/MultiplePluginPriorities.td @@ -1,6 +1,9 @@ // Check that multiple plugin priorities are not allowed. // RUN: ignore tblgen -I %p/../../include --gen-llvmc %s |& grep "More than one 'PluginPriority' instance found" +// Disable for Darwin PPC: <rdar://problem/7598390> +// XFAIL: powerpc-apple-darwin + include "llvm/CompilerDriver/Common.td" def Graph : CompilationGraph<[]>; diff --git a/test/MC/AsmParser/X86/dg.exp b/test/MC/AsmParser/X86/dg.exp index 629a147..ec87b69 100644 --- a/test/MC/AsmParser/X86/dg.exp +++ b/test/MC/AsmParser/X86/dg.exp @@ -1,5 +1,5 @@ load_lib llvm.exp if { [llvm_supports_target X86] } { - RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]] + RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp,s}]] } diff --git a/test/MC/AsmParser/X86/x86_32-bit.s b/test/MC/AsmParser/X86/x86_32-bit.s new file mode 100644 index 0000000..90e97be --- /dev/null +++ b/test/MC/AsmParser/X86/x86_32-bit.s @@ -0,0 +1,1630 @@ +// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s + +// CHECK: movb $127, 3735928559(%ebx,%ecx,8) + movb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movw $31438, 3735928559(%ebx,%ecx,8) + movw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8) + movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8) + movl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx + movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx + movswl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX + movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx + movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: pushl 3735928559(%ebx,%ecx,8) + pushl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: popl 3735928559(%ebx,%ecx,8) + popl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: lahf + lahf + +// CHECK: sahf + sahf + +// CHECK: addb $254, 3735928559(%ebx,%ecx,8) + addb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addb $127, 3735928559(%ebx,%ecx,8) + addb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addw $31438, 3735928559(%ebx,%ecx,8) + addw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8) + addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8) + addl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: incl 3735928559(%ebx,%ecx,8) + incl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $254, 3735928559(%ebx,%ecx,8) + subb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $127, 3735928559(%ebx,%ecx,8) + subb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subw $31438, 3735928559(%ebx,%ecx,8) + subw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8) + subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8) + subl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: decl 3735928559(%ebx,%ecx,8) + decl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8) + sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8) + sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8) + sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8) + cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8) + cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8) + cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8) + cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8) + cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testb $127, 3735928559(%ebx,%ecx,8) + testb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testw $31438, 3735928559(%ebx,%ecx,8) + testw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8) + testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8) + testl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $254, 3735928559(%ebx,%ecx,8) + andb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $127, 3735928559(%ebx,%ecx,8) + andb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andw $31438, 3735928559(%ebx,%ecx,8) + andw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8) + andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8) + andl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $254, 3735928559(%ebx,%ecx,8) + orb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $127, 3735928559(%ebx,%ecx,8) + orb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orw $31438, 3735928559(%ebx,%ecx,8) + orw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8) + orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8) + orl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $254, 3735928559(%ebx,%ecx,8) + xorb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $127, 3735928559(%ebx,%ecx,8) + xorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8) + xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8) + xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8) + xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $254, 3735928559(%ebx,%ecx,8) + adcb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $127, 3735928559(%ebx,%ecx,8) + adcb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8) + adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8) + adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8) + adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: negl 3735928559(%ebx,%ecx,8) + negl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: notl 3735928559(%ebx,%ecx,8) + notl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cbtw + cbtw + +// CHECK: cwtl + cwtl + +// CHECK: cwtd + cwtd + +// CHECK: cltd + cltd + +// CHECK: mull 3735928559(%ebx,%ecx,8) + mull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: imull 3735928559(%ebx,%ecx,8) + imull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: divl 3735928559(%ebx,%ecx,8) + divl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: idivl 3735928559(%ebx,%ecx,8) + idivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: roll $0, 3735928559(%ebx,%ecx,8) + roll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rolb $127, 3735928559(%ebx,%ecx,8) + rolb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: roll 3735928559(%ebx,%ecx,8) + roll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorl $0, 3735928559(%ebx,%ecx,8) + rorl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorb $127, 3735928559(%ebx,%ecx,8) + rorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorl 3735928559(%ebx,%ecx,8) + rorl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll $0, 3735928559(%ebx,%ecx,8) + shll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlb $127, 3735928559(%ebx,%ecx,8) + shlb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll 3735928559(%ebx,%ecx,8) + shll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrl $0, 3735928559(%ebx,%ecx,8) + shrl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrb $127, 3735928559(%ebx,%ecx,8) + shrb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrl 3735928559(%ebx,%ecx,8) + shrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarl $0, 3735928559(%ebx,%ecx,8) + sarl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarb $127, 3735928559(%ebx,%ecx,8) + sarb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarl 3735928559(%ebx,%ecx,8) + sarl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call *%ecx + call *%ecx + +// CHECK: call *3735928559(%ebx,%ecx,8) + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call *3735928559(%ebx,%ecx,8) + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp *3735928559(%ebx,%ecx,8) # TAILCALL + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp *3735928559(%ebx,%ecx,8) # TAILCALL + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ljmpl *3735928559(%ebx,%ecx,8) + ljmpl *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: lret + lret + +// CHECK: leave + leave + +// CHECK: seto %bl + seto %bl + +// CHECK: seto 3735928559(%ebx,%ecx,8) + seto 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setno %bl + setno %bl + +// CHECK: setno 3735928559(%ebx,%ecx,8) + setno 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setb %bl + setb %bl + +// CHECK: setb 3735928559(%ebx,%ecx,8) + setb 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setae %bl + setae %bl + +// CHECK: setae 3735928559(%ebx,%ecx,8) + setae 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sete %bl + sete %bl + +// CHECK: sete 3735928559(%ebx,%ecx,8) + sete 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setne %bl + setne %bl + +// CHECK: setne 3735928559(%ebx,%ecx,8) + setne 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setbe %bl + setbe %bl + +// CHECK: setbe 3735928559(%ebx,%ecx,8) + setbe 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: seta %bl + seta %bl + +// CHECK: seta 3735928559(%ebx,%ecx,8) + seta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sets %bl + sets %bl + +// CHECK: sets 3735928559(%ebx,%ecx,8) + sets 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setns %bl + setns %bl + +// CHECK: setns 3735928559(%ebx,%ecx,8) + setns 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setp %bl + setp %bl + +// CHECK: setp 3735928559(%ebx,%ecx,8) + setp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setnp %bl + setnp %bl + +// CHECK: setnp 3735928559(%ebx,%ecx,8) + setnp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setl %bl + setl %bl + +// CHECK: setl 3735928559(%ebx,%ecx,8) + setl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setge %bl + setge %bl + +// CHECK: setge 3735928559(%ebx,%ecx,8) + setge 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setle %bl + setle %bl + +// CHECK: setle 3735928559(%ebx,%ecx,8) + setle 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setg %bl + setg %bl + +// CHECK: setg 3735928559(%ebx,%ecx,8) + setg 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: nopl 3735928559(%ebx,%ecx,8) + nopl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: nop + nop + +// CHECK: fldl 3735928559(%ebx,%ecx,8) + fldl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildl 3735928559(%ebx,%ecx,8) + fildl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildll 3735928559(%ebx,%ecx,8) + fildll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldt 3735928559(%ebx,%ecx,8) + fldt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbld 3735928559(%ebx,%ecx,8) + fbld 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstl 3735928559(%ebx,%ecx,8) + fstl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistl 3735928559(%ebx,%ecx,8) + fistl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpl 3735928559(%ebx,%ecx,8) + fstpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpl 3735928559(%ebx,%ecx,8) + fistpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpll 3735928559(%ebx,%ecx,8) + fistpll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpt 3735928559(%ebx,%ecx,8) + fstpt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbstp 3735928559(%ebx,%ecx,8) + fbstp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficoml 3735928559(%ebx,%ecx,8) + ficoml 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficompl 3735928559(%ebx,%ecx,8) + ficompl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fucompp + fucompp + +// CHECK: ftst + ftst + +// CHECK: fld1 + fld1 + +// CHECK: fldz + fldz + +// CHECK: faddl 3735928559(%ebx,%ecx,8) + faddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fiaddl 3735928559(%ebx,%ecx,8) + fiaddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubl 3735928559(%ebx,%ecx,8) + fsubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubl 3735928559(%ebx,%ecx,8) + fisubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubrl 3735928559(%ebx,%ecx,8) + fsubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubrl 3735928559(%ebx,%ecx,8) + fisubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fmull 3735928559(%ebx,%ecx,8) + fmull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fimull 3735928559(%ebx,%ecx,8) + fimull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivl 3735928559(%ebx,%ecx,8) + fdivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivl 3735928559(%ebx,%ecx,8) + fidivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivrl 3735928559(%ebx,%ecx,8) + fdivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivrl 3735928559(%ebx,%ecx,8) + fidivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsqrt + fsqrt + +// CHECK: fsin + fsin + +// CHECK: fcos + fcos + +// CHECK: fchs + fchs + +// CHECK: fabs + fabs + +// CHECK: fldcw 3735928559(%ebx,%ecx,8) + fldcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fnstcw 3735928559(%ebx,%ecx,8) + fnstcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rdtsc + rdtsc + +// CHECK: sysenter + sysenter + +// CHECK: sysexit + sysexit + +// CHECK: ud2 + ud2 + +// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8) + movnti %ecx,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: clflush 3735928559(%ebx,%ecx,8) + clflush 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: emms + emms + +// CHECK: movd %ecx, %mm3 + movd %ecx,%mm3 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3 + movd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movd %ecx, %xmm5 + movd %ecx,%xmm5 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5 + movd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movd %xmm5, %ecx + movd %xmm5,%ecx + +// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8) + movd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3 + movq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movq %mm3, %mm3 + movq %mm3,%mm3 + +// CHECK: movq %mm3, %mm3 + movq %mm3,%mm3 + +// CHECK: movq %xmm5, %xmm5 + movq %xmm5,%xmm5 + +// CHECK: movq %xmm5, %xmm5 + movq %xmm5,%xmm5 + +// CHECK: packssdw %mm3, %mm3 + packssdw %mm3,%mm3 + +// CHECK: packssdw %xmm5, %xmm5 + packssdw %xmm5,%xmm5 + +// CHECK: packsswb %mm3, %mm3 + packsswb %mm3,%mm3 + +// CHECK: packsswb %xmm5, %xmm5 + packsswb %xmm5,%xmm5 + +// CHECK: packuswb %mm3, %mm3 + packuswb %mm3,%mm3 + +// CHECK: packuswb %xmm5, %xmm5 + packuswb %xmm5,%xmm5 + +// CHECK: paddb %mm3, %mm3 + paddb %mm3,%mm3 + +// CHECK: paddb %xmm5, %xmm5 + paddb %xmm5,%xmm5 + +// CHECK: paddw %mm3, %mm3 + paddw %mm3,%mm3 + +// CHECK: paddw %xmm5, %xmm5 + paddw %xmm5,%xmm5 + +// CHECK: paddd %mm3, %mm3 + paddd %mm3,%mm3 + +// CHECK: paddd %xmm5, %xmm5 + paddd %xmm5,%xmm5 + +// CHECK: paddq %mm3, %mm3 + paddq %mm3,%mm3 + +// CHECK: paddq %xmm5, %xmm5 + paddq %xmm5,%xmm5 + +// CHECK: paddsb %mm3, %mm3 + paddsb %mm3,%mm3 + +// CHECK: paddsb %xmm5, %xmm5 + paddsb %xmm5,%xmm5 + +// CHECK: paddsw %mm3, %mm3 + paddsw %mm3,%mm3 + +// CHECK: paddsw %xmm5, %xmm5 + paddsw %xmm5,%xmm5 + +// CHECK: paddusb %mm3, %mm3 + paddusb %mm3,%mm3 + +// CHECK: paddusb %xmm5, %xmm5 + paddusb %xmm5,%xmm5 + +// CHECK: paddusw %mm3, %mm3 + paddusw %mm3,%mm3 + +// CHECK: paddusw %xmm5, %xmm5 + paddusw %xmm5,%xmm5 + +// CHECK: pand %mm3, %mm3 + pand %mm3,%mm3 + +// CHECK: pand %xmm5, %xmm5 + pand %xmm5,%xmm5 + +// CHECK: pandn %mm3, %mm3 + pandn %mm3,%mm3 + +// CHECK: pandn %xmm5, %xmm5 + pandn %xmm5,%xmm5 + +// CHECK: pcmpeqb %mm3, %mm3 + pcmpeqb %mm3,%mm3 + +// CHECK: pcmpeqb %xmm5, %xmm5 + pcmpeqb %xmm5,%xmm5 + +// CHECK: pcmpeqw %mm3, %mm3 + pcmpeqw %mm3,%mm3 + +// CHECK: pcmpeqw %xmm5, %xmm5 + pcmpeqw %xmm5,%xmm5 + +// CHECK: pcmpeqd %mm3, %mm3 + pcmpeqd %mm3,%mm3 + +// CHECK: pcmpeqd %xmm5, %xmm5 + pcmpeqd %xmm5,%xmm5 + +// CHECK: pcmpgtb %mm3, %mm3 + pcmpgtb %mm3,%mm3 + +// CHECK: pcmpgtb %xmm5, %xmm5 + pcmpgtb %xmm5,%xmm5 + +// CHECK: pcmpgtw %mm3, %mm3 + pcmpgtw %mm3,%mm3 + +// CHECK: pcmpgtw %xmm5, %xmm5 + pcmpgtw %xmm5,%xmm5 + +// CHECK: pcmpgtd %mm3, %mm3 + pcmpgtd %mm3,%mm3 + +// CHECK: pcmpgtd %xmm5, %xmm5 + pcmpgtd %xmm5,%xmm5 + +// CHECK: pmaddwd %mm3, %mm3 + pmaddwd %mm3,%mm3 + +// CHECK: pmaddwd %xmm5, %xmm5 + pmaddwd %xmm5,%xmm5 + +// CHECK: pmulhw %mm3, %mm3 + pmulhw %mm3,%mm3 + +// CHECK: pmulhw %xmm5, %xmm5 + pmulhw %xmm5,%xmm5 + +// CHECK: pmullw %mm3, %mm3 + pmullw %mm3,%mm3 + +// CHECK: pmullw %xmm5, %xmm5 + pmullw %xmm5,%xmm5 + +// CHECK: por %mm3, %mm3 + por %mm3,%mm3 + +// CHECK: por %xmm5, %xmm5 + por %xmm5,%xmm5 + +// CHECK: psllw %mm3, %mm3 + psllw %mm3,%mm3 + +// CHECK: psllw %xmm5, %xmm5 + psllw %xmm5,%xmm5 + +// CHECK: psllw $127, %mm3 + psllw $0x7f,%mm3 + +// CHECK: psllw $127, %xmm5 + psllw $0x7f,%xmm5 + +// CHECK: pslld %mm3, %mm3 + pslld %mm3,%mm3 + +// CHECK: pslld %xmm5, %xmm5 + pslld %xmm5,%xmm5 + +// CHECK: pslld $127, %mm3 + pslld $0x7f,%mm3 + +// CHECK: pslld $127, %xmm5 + pslld $0x7f,%xmm5 + +// CHECK: psllq %mm3, %mm3 + psllq %mm3,%mm3 + +// CHECK: psllq %xmm5, %xmm5 + psllq %xmm5,%xmm5 + +// CHECK: psllq $127, %mm3 + psllq $0x7f,%mm3 + +// CHECK: psllq $127, %xmm5 + psllq $0x7f,%xmm5 + +// CHECK: psraw %mm3, %mm3 + psraw %mm3,%mm3 + +// CHECK: psraw %xmm5, %xmm5 + psraw %xmm5,%xmm5 + +// CHECK: psraw $127, %mm3 + psraw $0x7f,%mm3 + +// CHECK: psraw $127, %xmm5 + psraw $0x7f,%xmm5 + +// CHECK: psrad %mm3, %mm3 + psrad %mm3,%mm3 + +// CHECK: psrad %xmm5, %xmm5 + psrad %xmm5,%xmm5 + +// CHECK: psrad $127, %mm3 + psrad $0x7f,%mm3 + +// CHECK: psrad $127, %xmm5 + psrad $0x7f,%xmm5 + +// CHECK: psrlw %mm3, %mm3 + psrlw %mm3,%mm3 + +// CHECK: psrlw %xmm5, %xmm5 + psrlw %xmm5,%xmm5 + +// CHECK: psrlw $127, %mm3 + psrlw $0x7f,%mm3 + +// CHECK: psrlw $127, %xmm5 + psrlw $0x7f,%xmm5 + +// CHECK: psrld %mm3, %mm3 + psrld %mm3,%mm3 + +// CHECK: psrld %xmm5, %xmm5 + psrld %xmm5,%xmm5 + +// CHECK: psrld $127, %mm3 + psrld $0x7f,%mm3 + +// CHECK: psrld $127, %xmm5 + psrld $0x7f,%xmm5 + +// CHECK: psrlq %mm3, %mm3 + psrlq %mm3,%mm3 + +// CHECK: psrlq %xmm5, %xmm5 + psrlq %xmm5,%xmm5 + +// CHECK: psrlq $127, %mm3 + psrlq $0x7f,%mm3 + +// CHECK: psrlq $127, %xmm5 + psrlq $0x7f,%xmm5 + +// CHECK: psubb %mm3, %mm3 + psubb %mm3,%mm3 + +// CHECK: psubb %xmm5, %xmm5 + psubb %xmm5,%xmm5 + +// CHECK: psubw %mm3, %mm3 + psubw %mm3,%mm3 + +// CHECK: psubw %xmm5, %xmm5 + psubw %xmm5,%xmm5 + +// CHECK: psubd %mm3, %mm3 + psubd %mm3,%mm3 + +// CHECK: psubd %xmm5, %xmm5 + psubd %xmm5,%xmm5 + +// CHECK: psubq %mm3, %mm3 + psubq %mm3,%mm3 + +// CHECK: psubq %xmm5, %xmm5 + psubq %xmm5,%xmm5 + +// CHECK: psubsb %mm3, %mm3 + psubsb %mm3,%mm3 + +// CHECK: psubsb %xmm5, %xmm5 + psubsb %xmm5,%xmm5 + +// CHECK: psubsw %mm3, %mm3 + psubsw %mm3,%mm3 + +// CHECK: psubsw %xmm5, %xmm5 + psubsw %xmm5,%xmm5 + +// CHECK: psubusb %mm3, %mm3 + psubusb %mm3,%mm3 + +// CHECK: psubusb %xmm5, %xmm5 + psubusb %xmm5,%xmm5 + +// CHECK: psubusw %mm3, %mm3 + psubusw %mm3,%mm3 + +// CHECK: psubusw %xmm5, %xmm5 + psubusw %xmm5,%xmm5 + +// CHECK: punpckhbw %mm3, %mm3 + punpckhbw %mm3,%mm3 + +// CHECK: punpckhbw %xmm5, %xmm5 + punpckhbw %xmm5,%xmm5 + +// CHECK: punpckhwd %mm3, %mm3 + punpckhwd %mm3,%mm3 + +// CHECK: punpckhwd %xmm5, %xmm5 + punpckhwd %xmm5,%xmm5 + +// CHECK: punpckhdq %mm3, %mm3 + punpckhdq %mm3,%mm3 + +// CHECK: punpckhdq %xmm5, %xmm5 + punpckhdq %xmm5,%xmm5 + +// CHECK: punpcklbw %mm3, %mm3 + punpcklbw %mm3,%mm3 + +// CHECK: punpcklbw %xmm5, %xmm5 + punpcklbw %xmm5,%xmm5 + +// CHECK: punpcklwd %mm3, %mm3 + punpcklwd %mm3,%mm3 + +// CHECK: punpcklwd %xmm5, %xmm5 + punpcklwd %xmm5,%xmm5 + +// CHECK: punpckldq %mm3, %mm3 + punpckldq %mm3,%mm3 + +// CHECK: punpckldq %xmm5, %xmm5 + punpckldq %xmm5,%xmm5 + +// CHECK: pxor %mm3, %mm3 + pxor %mm3,%mm3 + +// CHECK: pxor %xmm5, %xmm5 + pxor %xmm5,%xmm5 + +// CHECK: addps %xmm5, %xmm5 + addps %xmm5,%xmm5 + +// CHECK: addss %xmm5, %xmm5 + addss %xmm5,%xmm5 + +// CHECK: andnps %xmm5, %xmm5 + andnps %xmm5,%xmm5 + +// CHECK: andps %xmm5, %xmm5 + andps %xmm5,%xmm5 + +// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5 + cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2ps %mm3, %xmm5 + cvtpi2ps %mm3,%xmm5 + +// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3 + cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtps2pi %xmm5, %mm3 + cvtps2pi %xmm5,%mm3 + +// CHECK: cvtsi2ss %ecx, %xmm5 + cvtsi2ss %ecx,%xmm5 + +// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5 + cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3 + cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttps2pi %xmm5, %mm3 + cvttps2pi %xmm5,%mm3 + +// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx + cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttss2si %xmm5, %ecx + cvttss2si %xmm5,%ecx + +// CHECK: divps %xmm5, %xmm5 + divps %xmm5,%xmm5 + +// CHECK: divss %xmm5, %xmm5 + divss %xmm5,%xmm5 + +// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8) + ldmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: maskmovq %mm3, %mm3 + maskmovq %mm3,%mm3 + +// CHECK: maxps %xmm5, %xmm5 + maxps %xmm5,%xmm5 + +// CHECK: maxss %xmm5, %xmm5 + maxss %xmm5,%xmm5 + +// CHECK: minps %xmm5, %xmm5 + minps %xmm5,%xmm5 + +// CHECK: minss %xmm5, %xmm5 + minss %xmm5,%xmm5 + +// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5 + movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movaps %xmm5, %xmm5 + movaps %xmm5,%xmm5 + +// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8) + movaps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movaps %xmm5, %xmm5 + movaps %xmm5,%xmm5 + +// CHECK: movhlps %xmm5, %xmm5 + movhlps %xmm5,%xmm5 + +// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8) + movhps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlhps %xmm5, %xmm5 + movlhps %xmm5,%xmm5 + +// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8) + movlps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movmskps %xmm5, %ecx + movmskps %xmm5,%ecx + +// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8) + movntps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8) + movntq %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8) + movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5 + movss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movss %xmm5, %xmm5 + movss %xmm5,%xmm5 + +// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8) + movss %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movss %xmm5, %xmm5 + movss %xmm5,%xmm5 + +// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5 + movups 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movups %xmm5, %xmm5 + movups %xmm5,%xmm5 + +// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8) + movups %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movups %xmm5, %xmm5 + movups %xmm5,%xmm5 + +// CHECK: mulps %xmm5, %xmm5 + mulps %xmm5,%xmm5 + +// CHECK: mulss %xmm5, %xmm5 + mulss %xmm5,%xmm5 + +// CHECK: orps %xmm5, %xmm5 + orps %xmm5,%xmm5 + +// CHECK: pavgb %mm3, %mm3 + pavgb %mm3,%mm3 + +// CHECK: pavgb %xmm5, %xmm5 + pavgb %xmm5,%xmm5 + +// CHECK: pavgw %mm3, %mm3 + pavgw %mm3,%mm3 + +// CHECK: pavgw %xmm5, %xmm5 + pavgw %xmm5,%xmm5 + +// CHECK: pmaxsw %mm3, %mm3 + pmaxsw %mm3,%mm3 + +// CHECK: pmaxsw %xmm5, %xmm5 + pmaxsw %xmm5,%xmm5 + +// CHECK: pmaxub %mm3, %mm3 + pmaxub %mm3,%mm3 + +// CHECK: pmaxub %xmm5, %xmm5 + pmaxub %xmm5,%xmm5 + +// CHECK: pminsw %mm3, %mm3 + pminsw %mm3,%mm3 + +// CHECK: pminsw %xmm5, %xmm5 + pminsw %xmm5,%xmm5 + +// CHECK: pminub %mm3, %mm3 + pminub %mm3,%mm3 + +// CHECK: pminub %xmm5, %xmm5 + pminub %xmm5,%xmm5 + +// CHECK: pmovmskb %mm3, %ecx + pmovmskb %mm3,%ecx + +// CHECK: pmovmskb %xmm5, %ecx + pmovmskb %xmm5,%ecx + +// CHECK: pmulhuw %mm3, %mm3 + pmulhuw %mm3,%mm3 + +// CHECK: pmulhuw %xmm5, %xmm5 + pmulhuw %xmm5,%xmm5 + +// CHECK: prefetchnta 3735928559(%ebx,%ecx,8) + prefetchnta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht0 3735928559(%ebx,%ecx,8) + prefetcht0 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht1 3735928559(%ebx,%ecx,8) + prefetcht1 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht2 3735928559(%ebx,%ecx,8) + prefetcht2 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: psadbw %mm3, %mm3 + psadbw %mm3,%mm3 + +// CHECK: psadbw %xmm5, %xmm5 + psadbw %xmm5,%xmm5 + +// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5 + rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpps %xmm5, %xmm5 + rcpps %xmm5,%xmm5 + +// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5 + rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpss %xmm5, %xmm5 + rcpss %xmm5,%xmm5 + +// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5 + rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtps %xmm5, %xmm5 + rsqrtps %xmm5,%xmm5 + +// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5 + rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtss %xmm5, %xmm5 + rsqrtss %xmm5,%xmm5 + +// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5 + sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtps %xmm5, %xmm5 + sqrtps %xmm5,%xmm5 + +// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5 + sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtss %xmm5, %xmm5 + sqrtss %xmm5,%xmm5 + +// CHECK: stmxcsr 3735928559(%ebx,%ecx,8) + stmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subps %xmm5, %xmm5 + subps %xmm5,%xmm5 + +// CHECK: subss %xmm5, %xmm5 + subss %xmm5,%xmm5 + +// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5 + ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomiss %xmm5, %xmm5 + ucomiss %xmm5,%xmm5 + +// CHECK: unpckhps %xmm5, %xmm5 + unpckhps %xmm5,%xmm5 + +// CHECK: unpcklps %xmm5, %xmm5 + unpcklps %xmm5,%xmm5 + +// CHECK: xorps %xmm5, %xmm5 + xorps %xmm5,%xmm5 + +// CHECK: addpd %xmm5, %xmm5 + addpd %xmm5,%xmm5 + +// CHECK: addsd %xmm5, %xmm5 + addsd %xmm5,%xmm5 + +// CHECK: andnpd %xmm5, %xmm5 + andnpd %xmm5,%xmm5 + +// CHECK: andpd %xmm5, %xmm5 + andpd %xmm5,%xmm5 + +// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5 + comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: comisd %xmm5, %xmm5 + comisd %xmm5,%xmm5 + +// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5 + cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2pd %mm3, %xmm5 + cvtpi2pd %mm3,%xmm5 + +// CHECK: cvtsi2sd %ecx, %xmm5 + cvtsi2sd %ecx,%xmm5 + +// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5 + cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divpd %xmm5, %xmm5 + divpd %xmm5,%xmm5 + +// CHECK: divsd %xmm5, %xmm5 + divsd %xmm5,%xmm5 + +// CHECK: maxpd %xmm5, %xmm5 + maxpd %xmm5,%xmm5 + +// CHECK: maxsd %xmm5, %xmm5 + maxsd %xmm5,%xmm5 + +// CHECK: minpd %xmm5, %xmm5 + minpd %xmm5,%xmm5 + +// CHECK: minsd %xmm5, %xmm5 + minsd %xmm5,%xmm5 + +// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5 + movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movapd %xmm5, %xmm5 + movapd %xmm5,%xmm5 + +// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8) + movapd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movapd %xmm5, %xmm5 + movapd %xmm5,%xmm5 + +// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8) + movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8) + movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movmskpd %xmm5, %ecx + movmskpd %xmm5,%ecx + +// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8) + movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5 + movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsd %xmm5, %xmm5 + movsd %xmm5,%xmm5 + +// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8) + movsd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movsd %xmm5, %xmm5 + movsd %xmm5,%xmm5 + +// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5 + movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movupd %xmm5, %xmm5 + movupd %xmm5,%xmm5 + +// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8) + movupd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movupd %xmm5, %xmm5 + movupd %xmm5,%xmm5 + +// CHECK: mulpd %xmm5, %xmm5 + mulpd %xmm5,%xmm5 + +// CHECK: mulsd %xmm5, %xmm5 + mulsd %xmm5,%xmm5 + +// CHECK: orpd %xmm5, %xmm5 + orpd %xmm5,%xmm5 + +// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5 + sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtpd %xmm5, %xmm5 + sqrtpd %xmm5,%xmm5 + +// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5 + sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtsd %xmm5, %xmm5 + sqrtsd %xmm5,%xmm5 + +// CHECK: subpd %xmm5, %xmm5 + subpd %xmm5,%xmm5 + +// CHECK: subsd %xmm5, %xmm5 + subsd %xmm5,%xmm5 + +// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5 + ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomisd %xmm5, %xmm5 + ucomisd %xmm5,%xmm5 + +// CHECK: unpckhpd %xmm5, %xmm5 + unpckhpd %xmm5,%xmm5 + +// CHECK: unpcklpd %xmm5, %xmm5 + unpcklpd %xmm5,%xmm5 + +// CHECK: xorpd %xmm5, %xmm5 + xorpd %xmm5,%xmm5 + +// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5 + cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2pd %xmm5, %xmm5 + cvtdq2pd %xmm5,%xmm5 + +// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5 + cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpd2dq %xmm5, %xmm5 + cvtpd2dq %xmm5,%xmm5 + +// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5 + cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2ps %xmm5, %xmm5 + cvtdq2ps %xmm5,%xmm5 + +// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3 + cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtpd2pi %xmm5, %mm3 + cvtpd2pi %xmm5,%mm3 + +// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5 + cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtps2dq %xmm5, %xmm5 + cvtps2dq %xmm5,%xmm5 + +// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5 + cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsd2ss %xmm5, %xmm5 + cvtsd2ss %xmm5,%xmm5 + +// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5 + cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtss2sd %xmm5, %xmm5 + cvtss2sd %xmm5,%xmm5 + +// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3 + cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttpd2pi %xmm5, %mm3 + cvttpd2pi %xmm5,%mm3 + +// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx + cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttsd2si %xmm5, %ecx + cvttsd2si %xmm5,%ecx + +// CHECK: maskmovdqu %xmm5, %xmm5 + maskmovdqu %xmm5,%xmm5 + +// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5 + movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqa %xmm5, %xmm5 + movdqa %xmm5,%xmm5 + +// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8) + movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdqa %xmm5, %xmm5 + movdqa %xmm5,%xmm5 + +// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5 + movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8) + movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdq2q %xmm5, %mm3 + movdq2q %xmm5,%mm3 + +// CHECK: movq2dq %mm3, %xmm5 + movq2dq %mm3,%xmm5 + +// CHECK: pmuludq %mm3, %mm3 + pmuludq %mm3,%mm3 + +// CHECK: pmuludq %xmm5, %xmm5 + pmuludq %xmm5,%xmm5 + +// CHECK: pslldq $127, %xmm5 + pslldq $0x7f,%xmm5 + +// CHECK: psrldq $127, %xmm5 + psrldq $0x7f,%xmm5 + +// CHECK: punpckhqdq %xmm5, %xmm5 + punpckhqdq %xmm5,%xmm5 + +// CHECK: punpcklqdq %xmm5, %xmm5 + punpcklqdq %xmm5,%xmm5 + +// CHECK: addsubpd %xmm5, %xmm5 + addsubpd %xmm5,%xmm5 + +// CHECK: addsubps %xmm5, %xmm5 + addsubps %xmm5,%xmm5 + +// CHECK: haddpd %xmm5, %xmm5 + haddpd %xmm5,%xmm5 + +// CHECK: haddps %xmm5, %xmm5 + haddps %xmm5,%xmm5 + +// CHECK: hsubpd %xmm5, %xmm5 + hsubpd %xmm5,%xmm5 + +// CHECK: hsubps %xmm5, %xmm5 + hsubps %xmm5,%xmm5 + +// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5 + lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5 + movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movddup %xmm5, %xmm5 + movddup %xmm5,%xmm5 + +// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5 + movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movshdup %xmm5, %xmm5 + movshdup %xmm5,%xmm5 + +// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5 + movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsldup %xmm5, %xmm5 + movsldup %xmm5,%xmm5 + +// CHECK: phaddw %mm3, %mm3 + phaddw %mm3,%mm3 + +// CHECK: phaddw %xmm5, %xmm5 + phaddw %xmm5,%xmm5 + +// CHECK: phaddd %mm3, %mm3 + phaddd %mm3,%mm3 + +// CHECK: phaddd %xmm5, %xmm5 + phaddd %xmm5,%xmm5 + +// CHECK: phaddsw %mm3, %mm3 + phaddsw %mm3,%mm3 + +// CHECK: phaddsw %xmm5, %xmm5 + phaddsw %xmm5,%xmm5 + +// CHECK: phsubw %mm3, %mm3 + phsubw %mm3,%mm3 + +// CHECK: phsubw %xmm5, %xmm5 + phsubw %xmm5,%xmm5 + +// CHECK: phsubd %mm3, %mm3 + phsubd %mm3,%mm3 + +// CHECK: phsubd %xmm5, %xmm5 + phsubd %xmm5,%xmm5 + +// CHECK: phsubsw %mm3, %mm3 + phsubsw %mm3,%mm3 + +// CHECK: phsubsw %xmm5, %xmm5 + phsubsw %xmm5,%xmm5 + +// CHECK: pmaddubsw %mm3, %mm3 + pmaddubsw %mm3,%mm3 + +// CHECK: pmaddubsw %xmm5, %xmm5 + pmaddubsw %xmm5,%xmm5 + +// CHECK: pmulhrsw %mm3, %mm3 + pmulhrsw %mm3,%mm3 + +// CHECK: pmulhrsw %xmm5, %xmm5 + pmulhrsw %xmm5,%xmm5 + +// CHECK: pshufb %mm3, %mm3 + pshufb %mm3,%mm3 + +// CHECK: pshufb %xmm5, %xmm5 + pshufb %xmm5,%xmm5 + +// CHECK: psignb %mm3, %mm3 + psignb %mm3,%mm3 + +// CHECK: psignb %xmm5, %xmm5 + psignb %xmm5,%xmm5 + +// CHECK: psignw %mm3, %mm3 + psignw %mm3,%mm3 + +// CHECK: psignw %xmm5, %xmm5 + psignw %xmm5,%xmm5 + +// CHECK: psignd %mm3, %mm3 + psignd %mm3,%mm3 + +// CHECK: psignd %xmm5, %xmm5 + psignd %xmm5,%xmm5 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3 + pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsb %mm3, %mm3 + pabsb %mm3,%mm3 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5 + pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsb %xmm5, %xmm5 + pabsb %xmm5,%xmm5 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3 + pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsw %mm3, %mm3 + pabsw %mm3,%mm3 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5 + pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsw %xmm5, %xmm5 + pabsw %xmm5,%xmm5 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3 + pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsd %mm3, %mm3 + pabsd %mm3,%mm3 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5 + pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsd %xmm5, %xmm5 + pabsd %xmm5,%xmm5 + +// CHECK: femms + femms + +// CHECK: packusdw %xmm5, %xmm5 + packusdw %xmm5,%xmm5 + +// CHECK: pcmpeqq %xmm5, %xmm5 + pcmpeqq %xmm5,%xmm5 + +// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5 + phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phminposuw %xmm5, %xmm5 + phminposuw %xmm5,%xmm5 + +// CHECK: pmaxsb %xmm5, %xmm5 + pmaxsb %xmm5,%xmm5 + +// CHECK: pmaxsd %xmm5, %xmm5 + pmaxsd %xmm5,%xmm5 + +// CHECK: pmaxud %xmm5, %xmm5 + pmaxud %xmm5,%xmm5 + +// CHECK: pmaxuw %xmm5, %xmm5 + pmaxuw %xmm5,%xmm5 + +// CHECK: pminsb %xmm5, %xmm5 + pminsb %xmm5,%xmm5 + +// CHECK: pminsd %xmm5, %xmm5 + pminsd %xmm5,%xmm5 + +// CHECK: pminud %xmm5, %xmm5 + pminud %xmm5,%xmm5 + +// CHECK: pminuw %xmm5, %xmm5 + pminuw %xmm5,%xmm5 + +// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbw %xmm5, %xmm5 + pmovsxbw %xmm5,%xmm5 + +// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbd %xmm5, %xmm5 + pmovsxbd %xmm5,%xmm5 + +// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbq %xmm5, %xmm5 + pmovsxbq %xmm5,%xmm5 + +// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwd %xmm5, %xmm5 + pmovsxwd %xmm5,%xmm5 + +// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwq %xmm5, %xmm5 + pmovsxwq %xmm5,%xmm5 + +// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxdq %xmm5, %xmm5 + pmovsxdq %xmm5,%xmm5 + +// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbw %xmm5, %xmm5 + pmovzxbw %xmm5,%xmm5 + +// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbd %xmm5, %xmm5 + pmovzxbd %xmm5,%xmm5 + +// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbq %xmm5, %xmm5 + pmovzxbq %xmm5,%xmm5 + +// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwd %xmm5, %xmm5 + pmovzxwd %xmm5,%xmm5 + +// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwq %xmm5, %xmm5 + pmovzxwq %xmm5,%xmm5 + +// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxdq %xmm5, %xmm5 + pmovzxdq %xmm5,%xmm5 + +// CHECK: pmuldq %xmm5, %xmm5 + pmuldq %xmm5,%xmm5 + +// CHECK: pmulld %xmm5, %xmm5 + pmulld %xmm5,%xmm5 + +// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5 + ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ptest %xmm5, %xmm5 + ptest %xmm5,%xmm5 + +// CHECK: pcmpgtq %xmm5, %xmm5 + pcmpgtq %xmm5,%xmm5 diff --git a/test/MC/AsmParser/X86/x86_32-bit_cat.s b/test/MC/AsmParser/X86/x86_32-bit_cat.s new file mode 100644 index 0000000..f0c7804 --- /dev/null +++ b/test/MC/AsmParser/X86/x86_32-bit_cat.s @@ -0,0 +1,7809 @@ +// This is the current set of tests that can pass though llvm-mc as it were a +// logical cat(1) and then reassemble to the same instruction. All of these +// will not yet encode correctly. The subset that will encode correctly are in +// the file x86_32-encoding.s (and other tests that encode are in x86_32-bit.s). + +// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s + +// CHECK: movb $127, 3735928559(%ebx,%ecx,8) + movb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movb $127, 69 + movb $0x7f,0x45 + +// CHECK: movb $127, 32493 + movb $0x7f,0x7eed + +// CHECK: movb $127, 3133065982 + movb $0x7f,0xbabecafe + +// CHECK: movb $127, 305419896 + movb $0x7f,0x12345678 + +// CHECK: movw $31438, 3735928559(%ebx,%ecx,8) + movw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movw $31438, 69 + movw $0x7ace,0x45 + +// CHECK: movw $31438, 32493 + movw $0x7ace,0x7eed + +// CHECK: movw $31438, 3133065982 + movw $0x7ace,0xbabecafe + +// CHECK: movw $31438, 305419896 + movw $0x7ace,0x12345678 + +// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8) + movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $2063514302, 69 + movl $0x7afebabe,0x45 + +// CHECK: movl $2063514302, 32493 + movl $0x7afebabe,0x7eed + +// CHECK: movl $2063514302, 3133065982 + movl $0x7afebabe,0xbabecafe + +// CHECK: movl $2063514302, 305419896 + movl $0x7afebabe,0x12345678 + +// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8) + movl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $324478056, 69 + movl $0x13572468,0x45 + +// CHECK: movl $324478056, 32493 + movl $0x13572468,0x7eed + +// CHECK: movl $324478056, 3133065982 + movl $0x13572468,0xbabecafe + +// CHECK: movl $324478056, 305419896 + movl $0x13572468,0x12345678 + +// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx + movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movsbl 69, %ecx + movsbl 0x45,%ecx + +// CHECK: movsbl 32493, %ecx + movsbl 0x7eed,%ecx + +// CHECK: movsbl 3133065982, %ecx + movsbl 0xbabecafe,%ecx + +// CHECK: movsbl 305419896, %ecx + movsbl 0x12345678,%ecx + +// CHECK: movsbw 3735928559(%ebx,%ecx,8), %bx + movsbw 0xdeadbeef(%ebx,%ecx,8),%bx + +// CHECK: movsbw 69, %bx + movsbw 0x45,%bx + +// CHECK: movsbw 32493, %bx + movsbw 0x7eed,%bx + +// CHECK: movsbw 3133065982, %bx + movsbw 0xbabecafe,%bx + +// CHECK: movsbw 305419896, %bx + movsbw 0x12345678,%bx + +// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx + movswl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movswl 69, %ecx + movswl 0x45,%ecx + +// CHECK: movswl 32493, %ecx + movswl 0x7eed,%ecx + +// CHECK: movswl 3133065982, %ecx + movswl 0xbabecafe,%ecx + +// CHECK: movswl 305419896, %ecx + movswl 0x12345678,%ecx + +// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX + movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzbl 69, %ecx # NOREX + movzbl 0x45,%ecx + +// CHECK: movzbl 32493, %ecx # NOREX + movzbl 0x7eed,%ecx + +// CHECK: movzbl 3133065982, %ecx # NOREX + movzbl 0xbabecafe,%ecx + +// CHECK: movzbl 305419896, %ecx # NOREX + movzbl 0x12345678,%ecx + +// CHECK: movzbw 3735928559(%ebx,%ecx,8), %bx + movzbw 0xdeadbeef(%ebx,%ecx,8),%bx + +// CHECK: movzbw 69, %bx + movzbw 0x45,%bx + +// CHECK: movzbw 32493, %bx + movzbw 0x7eed,%bx + +// CHECK: movzbw 3133065982, %bx + movzbw 0xbabecafe,%bx + +// CHECK: movzbw 305419896, %bx + movzbw 0x12345678,%bx + +// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx + movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzwl 69, %ecx + movzwl 0x45,%ecx + +// CHECK: movzwl 32493, %ecx + movzwl 0x7eed,%ecx + +// CHECK: movzwl 3133065982, %ecx + movzwl 0xbabecafe,%ecx + +// CHECK: movzwl 305419896, %ecx + movzwl 0x12345678,%ecx + +// CHECK: pushw 32493 + pushw 0x7eed + +// CHECK: popw 32493 + popw 0x7eed + +// CHECK: clc + clc + +// CHECK: cld + cld + +// CHECK: cli + cli + +// CHECK: clts + clts + +// CHECK: cmc + cmc + +// CHECK: lahf + lahf + +// CHECK: sahf + sahf + +// CHECK: stc + stc + +// CHECK: std + std + +// CHECK: sti + sti + +// CHECK: addb $254, 3735928559(%ebx,%ecx,8) + addb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addb $254, 69 + addb $0xfe,0x45 + +// CHECK: addb $254, 32493 + addb $0xfe,0x7eed + +// CHECK: addb $254, 3133065982 + addb $0xfe,0xbabecafe + +// CHECK: addb $254, 305419896 + addb $0xfe,0x12345678 + +// CHECK: addb $127, 3735928559(%ebx,%ecx,8) + addb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addb $127, 69 + addb $0x7f,0x45 + +// CHECK: addb $127, 32493 + addb $0x7f,0x7eed + +// CHECK: addb $127, 3133065982 + addb $0x7f,0xbabecafe + +// CHECK: addb $127, 305419896 + addb $0x7f,0x12345678 + +// CHECK: addw $31438, 3735928559(%ebx,%ecx,8) + addw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addw $31438, 69 + addw $0x7ace,0x45 + +// CHECK: addw $31438, 32493 + addw $0x7ace,0x7eed + +// CHECK: addw $31438, 3133065982 + addw $0x7ace,0xbabecafe + +// CHECK: addw $31438, 305419896 + addw $0x7ace,0x12345678 + +// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8) + addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $2063514302, 69 + addl $0x7afebabe,0x45 + +// CHECK: addl $2063514302, 32493 + addl $0x7afebabe,0x7eed + +// CHECK: addl $2063514302, 3133065982 + addl $0x7afebabe,0xbabecafe + +// CHECK: addl $2063514302, 305419896 + addl $0x7afebabe,0x12345678 + +// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8) + addl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $324478056, 69 + addl $0x13572468,0x45 + +// CHECK: addl $324478056, 32493 + addl $0x13572468,0x7eed + +// CHECK: addl $324478056, 3133065982 + addl $0x13572468,0xbabecafe + +// CHECK: addl $324478056, 305419896 + addl $0x13572468,0x12345678 + +// CHECK: incl 3735928559(%ebx,%ecx,8) + incl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: incw 32493 + incw 0x7eed + +// CHECK: incl 3133065982 + incl 0xbabecafe + +// CHECK: incl 305419896 + incl 0x12345678 + +// CHECK: subb $254, 3735928559(%ebx,%ecx,8) + subb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $254, 69 + subb $0xfe,0x45 + +// CHECK: subb $254, 32493 + subb $0xfe,0x7eed + +// CHECK: subb $254, 3133065982 + subb $0xfe,0xbabecafe + +// CHECK: subb $254, 305419896 + subb $0xfe,0x12345678 + +// CHECK: subb $127, 3735928559(%ebx,%ecx,8) + subb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $127, 69 + subb $0x7f,0x45 + +// CHECK: subb $127, 32493 + subb $0x7f,0x7eed + +// CHECK: subb $127, 3133065982 + subb $0x7f,0xbabecafe + +// CHECK: subb $127, 305419896 + subb $0x7f,0x12345678 + +// CHECK: subw $31438, 3735928559(%ebx,%ecx,8) + subw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subw $31438, 69 + subw $0x7ace,0x45 + +// CHECK: subw $31438, 32493 + subw $0x7ace,0x7eed + +// CHECK: subw $31438, 3133065982 + subw $0x7ace,0xbabecafe + +// CHECK: subw $31438, 305419896 + subw $0x7ace,0x12345678 + +// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8) + subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $2063514302, 69 + subl $0x7afebabe,0x45 + +// CHECK: subl $2063514302, 32493 + subl $0x7afebabe,0x7eed + +// CHECK: subl $2063514302, 3133065982 + subl $0x7afebabe,0xbabecafe + +// CHECK: subl $2063514302, 305419896 + subl $0x7afebabe,0x12345678 + +// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8) + subl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $324478056, 69 + subl $0x13572468,0x45 + +// CHECK: subl $324478056, 32493 + subl $0x13572468,0x7eed + +// CHECK: subl $324478056, 3133065982 + subl $0x13572468,0xbabecafe + +// CHECK: subl $324478056, 305419896 + subl $0x13572468,0x12345678 + +// CHECK: decl 3735928559(%ebx,%ecx,8) + decl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: decw 32493 + decw 0x7eed + +// CHECK: decl 3133065982 + decl 0xbabecafe + +// CHECK: decl 305419896 + decl 0x12345678 + +// CHECK: sbbb $254, 3735928559(%ebx,%ecx,8) + sbbb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbb $254, 69 + sbbb $0xfe,0x45 + +// CHECK: sbbb $254, 32493 + sbbb $0xfe,0x7eed + +// CHECK: sbbb $254, 3133065982 + sbbb $0xfe,0xbabecafe + +// CHECK: sbbb $254, 305419896 + sbbb $0xfe,0x12345678 + +// CHECK: sbbb $127, 3735928559(%ebx,%ecx,8) + sbbb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbb $127, 69 + sbbb $0x7f,0x45 + +// CHECK: sbbb $127, 32493 + sbbb $0x7f,0x7eed + +// CHECK: sbbb $127, 3133065982 + sbbb $0x7f,0xbabecafe + +// CHECK: sbbb $127, 305419896 + sbbb $0x7f,0x12345678 + +// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8) + sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbw $31438, 69 + sbbw $0x7ace,0x45 + +// CHECK: sbbw $31438, 32493 + sbbw $0x7ace,0x7eed + +// CHECK: sbbw $31438, 3133065982 + sbbw $0x7ace,0xbabecafe + +// CHECK: sbbw $31438, 305419896 + sbbw $0x7ace,0x12345678 + +// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8) + sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $2063514302, 69 + sbbl $0x7afebabe,0x45 + +// CHECK: sbbl $2063514302, 32493 + sbbl $0x7afebabe,0x7eed + +// CHECK: sbbl $2063514302, 3133065982 + sbbl $0x7afebabe,0xbabecafe + +// CHECK: sbbl $2063514302, 305419896 + sbbl $0x7afebabe,0x12345678 + +// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8) + sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $324478056, 69 + sbbl $0x13572468,0x45 + +// CHECK: sbbl $324478056, 32493 + sbbl $0x13572468,0x7eed + +// CHECK: sbbl $324478056, 3133065982 + sbbl $0x13572468,0xbabecafe + +// CHECK: sbbl $324478056, 305419896 + sbbl $0x13572468,0x12345678 + +// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8) + cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $254, 69 + cmpb $0xfe,0x45 + +// CHECK: cmpb $254, 32493 + cmpb $0xfe,0x7eed + +// CHECK: cmpb $254, 3133065982 + cmpb $0xfe,0xbabecafe + +// CHECK: cmpb $254, 305419896 + cmpb $0xfe,0x12345678 + +// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8) + cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $127, 69 + cmpb $0x7f,0x45 + +// CHECK: cmpb $127, 32493 + cmpb $0x7f,0x7eed + +// CHECK: cmpb $127, 3133065982 + cmpb $0x7f,0xbabecafe + +// CHECK: cmpb $127, 305419896 + cmpb $0x7f,0x12345678 + +// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8) + cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpw $31438, 69 + cmpw $0x7ace,0x45 + +// CHECK: cmpw $31438, 32493 + cmpw $0x7ace,0x7eed + +// CHECK: cmpw $31438, 3133065982 + cmpw $0x7ace,0xbabecafe + +// CHECK: cmpw $31438, 305419896 + cmpw $0x7ace,0x12345678 + +// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8) + cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $2063514302, 69 + cmpl $0x7afebabe,0x45 + +// CHECK: cmpl $2063514302, 32493 + cmpl $0x7afebabe,0x7eed + +// CHECK: cmpl $2063514302, 3133065982 + cmpl $0x7afebabe,0xbabecafe + +// CHECK: cmpl $2063514302, 305419896 + cmpl $0x7afebabe,0x12345678 + +// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8) + cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $324478056, 69 + cmpl $0x13572468,0x45 + +// CHECK: cmpl $324478056, 32493 + cmpl $0x13572468,0x7eed + +// CHECK: cmpl $324478056, 3133065982 + cmpl $0x13572468,0xbabecafe + +// CHECK: cmpl $324478056, 305419896 + cmpl $0x13572468,0x12345678 + +// CHECK: testb $127, 3735928559(%ebx,%ecx,8) + testb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testb $127, 69 + testb $0x7f,0x45 + +// CHECK: testb $127, 32493 + testb $0x7f,0x7eed + +// CHECK: testb $127, 3133065982 + testb $0x7f,0xbabecafe + +// CHECK: testb $127, 305419896 + testb $0x7f,0x12345678 + +// CHECK: testw $31438, 3735928559(%ebx,%ecx,8) + testw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testw $31438, 69 + testw $0x7ace,0x45 + +// CHECK: testw $31438, 32493 + testw $0x7ace,0x7eed + +// CHECK: testw $31438, 3133065982 + testw $0x7ace,0xbabecafe + +// CHECK: testw $31438, 305419896 + testw $0x7ace,0x12345678 + +// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8) + testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $2063514302, 69 + testl $0x7afebabe,0x45 + +// CHECK: testl $2063514302, 32493 + testl $0x7afebabe,0x7eed + +// CHECK: testl $2063514302, 3133065982 + testl $0x7afebabe,0xbabecafe + +// CHECK: testl $2063514302, 305419896 + testl $0x7afebabe,0x12345678 + +// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8) + testl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $324478056, 69 + testl $0x13572468,0x45 + +// CHECK: testl $324478056, 32493 + testl $0x13572468,0x7eed + +// CHECK: testl $324478056, 3133065982 + testl $0x13572468,0xbabecafe + +// CHECK: testl $324478056, 305419896 + testl $0x13572468,0x12345678 + +// CHECK: andb $254, 3735928559(%ebx,%ecx,8) + andb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $254, 69 + andb $0xfe,0x45 + +// CHECK: andb $254, 32493 + andb $0xfe,0x7eed + +// CHECK: andb $254, 3133065982 + andb $0xfe,0xbabecafe + +// CHECK: andb $254, 305419896 + andb $0xfe,0x12345678 + +// CHECK: andb $127, 3735928559(%ebx,%ecx,8) + andb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $127, 69 + andb $0x7f,0x45 + +// CHECK: andb $127, 32493 + andb $0x7f,0x7eed + +// CHECK: andb $127, 3133065982 + andb $0x7f,0xbabecafe + +// CHECK: andb $127, 305419896 + andb $0x7f,0x12345678 + +// CHECK: andw $31438, 3735928559(%ebx,%ecx,8) + andw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andw $31438, 69 + andw $0x7ace,0x45 + +// CHECK: andw $31438, 32493 + andw $0x7ace,0x7eed + +// CHECK: andw $31438, 3133065982 + andw $0x7ace,0xbabecafe + +// CHECK: andw $31438, 305419896 + andw $0x7ace,0x12345678 + +// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8) + andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $2063514302, 69 + andl $0x7afebabe,0x45 + +// CHECK: andl $2063514302, 32493 + andl $0x7afebabe,0x7eed + +// CHECK: andl $2063514302, 3133065982 + andl $0x7afebabe,0xbabecafe + +// CHECK: andl $2063514302, 305419896 + andl $0x7afebabe,0x12345678 + +// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8) + andl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $324478056, 69 + andl $0x13572468,0x45 + +// CHECK: andl $324478056, 32493 + andl $0x13572468,0x7eed + +// CHECK: andl $324478056, 3133065982 + andl $0x13572468,0xbabecafe + +// CHECK: andl $324478056, 305419896 + andl $0x13572468,0x12345678 + +// CHECK: orb $254, 3735928559(%ebx,%ecx,8) + orb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $254, 69 + orb $0xfe,0x45 + +// CHECK: orb $254, 32493 + orb $0xfe,0x7eed + +// CHECK: orb $254, 3133065982 + orb $0xfe,0xbabecafe + +// CHECK: orb $254, 305419896 + orb $0xfe,0x12345678 + +// CHECK: orb $127, 3735928559(%ebx,%ecx,8) + orb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $127, 69 + orb $0x7f,0x45 + +// CHECK: orb $127, 32493 + orb $0x7f,0x7eed + +// CHECK: orb $127, 3133065982 + orb $0x7f,0xbabecafe + +// CHECK: orb $127, 305419896 + orb $0x7f,0x12345678 + +// CHECK: orw $31438, 3735928559(%ebx,%ecx,8) + orw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orw $31438, 69 + orw $0x7ace,0x45 + +// CHECK: orw $31438, 32493 + orw $0x7ace,0x7eed + +// CHECK: orw $31438, 3133065982 + orw $0x7ace,0xbabecafe + +// CHECK: orw $31438, 305419896 + orw $0x7ace,0x12345678 + +// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8) + orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $2063514302, 69 + orl $0x7afebabe,0x45 + +// CHECK: orl $2063514302, 32493 + orl $0x7afebabe,0x7eed + +// CHECK: orl $2063514302, 3133065982 + orl $0x7afebabe,0xbabecafe + +// CHECK: orl $2063514302, 305419896 + orl $0x7afebabe,0x12345678 + +// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8) + orl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $324478056, 69 + orl $0x13572468,0x45 + +// CHECK: orl $324478056, 32493 + orl $0x13572468,0x7eed + +// CHECK: orl $324478056, 3133065982 + orl $0x13572468,0xbabecafe + +// CHECK: orl $324478056, 305419896 + orl $0x13572468,0x12345678 + +// CHECK: xorb $254, 3735928559(%ebx,%ecx,8) + xorb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $254, 69 + xorb $0xfe,0x45 + +// CHECK: xorb $254, 32493 + xorb $0xfe,0x7eed + +// CHECK: xorb $254, 3133065982 + xorb $0xfe,0xbabecafe + +// CHECK: xorb $254, 305419896 + xorb $0xfe,0x12345678 + +// CHECK: xorb $127, 3735928559(%ebx,%ecx,8) + xorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $127, 69 + xorb $0x7f,0x45 + +// CHECK: xorb $127, 32493 + xorb $0x7f,0x7eed + +// CHECK: xorb $127, 3133065982 + xorb $0x7f,0xbabecafe + +// CHECK: xorb $127, 305419896 + xorb $0x7f,0x12345678 + +// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8) + xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorw $31438, 69 + xorw $0x7ace,0x45 + +// CHECK: xorw $31438, 32493 + xorw $0x7ace,0x7eed + +// CHECK: xorw $31438, 3133065982 + xorw $0x7ace,0xbabecafe + +// CHECK: xorw $31438, 305419896 + xorw $0x7ace,0x12345678 + +// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8) + xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $2063514302, 69 + xorl $0x7afebabe,0x45 + +// CHECK: xorl $2063514302, 32493 + xorl $0x7afebabe,0x7eed + +// CHECK: xorl $2063514302, 3133065982 + xorl $0x7afebabe,0xbabecafe + +// CHECK: xorl $2063514302, 305419896 + xorl $0x7afebabe,0x12345678 + +// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8) + xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $324478056, 69 + xorl $0x13572468,0x45 + +// CHECK: xorl $324478056, 32493 + xorl $0x13572468,0x7eed + +// CHECK: xorl $324478056, 3133065982 + xorl $0x13572468,0xbabecafe + +// CHECK: xorl $324478056, 305419896 + xorl $0x13572468,0x12345678 + +// CHECK: adcb $254, 3735928559(%ebx,%ecx,8) + adcb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $254, 69 + adcb $0xfe,0x45 + +// CHECK: adcb $254, 32493 + adcb $0xfe,0x7eed + +// CHECK: adcb $254, 3133065982 + adcb $0xfe,0xbabecafe + +// CHECK: adcb $254, 305419896 + adcb $0xfe,0x12345678 + +// CHECK: adcb $127, 3735928559(%ebx,%ecx,8) + adcb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $127, 69 + adcb $0x7f,0x45 + +// CHECK: adcb $127, 32493 + adcb $0x7f,0x7eed + +// CHECK: adcb $127, 3133065982 + adcb $0x7f,0xbabecafe + +// CHECK: adcb $127, 305419896 + adcb $0x7f,0x12345678 + +// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8) + adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcw $31438, 69 + adcw $0x7ace,0x45 + +// CHECK: adcw $31438, 32493 + adcw $0x7ace,0x7eed + +// CHECK: adcw $31438, 3133065982 + adcw $0x7ace,0xbabecafe + +// CHECK: adcw $31438, 305419896 + adcw $0x7ace,0x12345678 + +// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8) + adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $2063514302, 69 + adcl $0x7afebabe,0x45 + +// CHECK: adcl $2063514302, 32493 + adcl $0x7afebabe,0x7eed + +// CHECK: adcl $2063514302, 3133065982 + adcl $0x7afebabe,0xbabecafe + +// CHECK: adcl $2063514302, 305419896 + adcl $0x7afebabe,0x12345678 + +// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8) + adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $324478056, 69 + adcl $0x13572468,0x45 + +// CHECK: adcl $324478056, 32493 + adcl $0x13572468,0x7eed + +// CHECK: adcl $324478056, 3133065982 + adcl $0x13572468,0xbabecafe + +// CHECK: adcl $324478056, 305419896 + adcl $0x13572468,0x12345678 + +// CHECK: negl 3735928559(%ebx,%ecx,8) + negl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: negw 32493 + negw 0x7eed + +// CHECK: negl 3133065982 + negl 0xbabecafe + +// CHECK: negl 305419896 + negl 0x12345678 + +// CHECK: notl 3735928559(%ebx,%ecx,8) + notl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: notw 32493 + notw 0x7eed + +// CHECK: notl 3133065982 + notl 0xbabecafe + +// CHECK: notl 305419896 + notl 0x12345678 + +// CHECK: cbtw + cbtw + +// CHECK: cwtl + cwtl + +// CHECK: cwtd + cwtd + +// CHECK: cltd + cltd + +// CHECK: mull 3735928559(%ebx,%ecx,8) + mull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: mulw 32493 + mulw 0x7eed + +// CHECK: mull 3133065982 + mull 0xbabecafe + +// CHECK: mull 305419896 + mull 0x12345678 + +// CHECK: imull 3735928559(%ebx,%ecx,8) + imull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: imulw 32493 + imulw 0x7eed + +// CHECK: imull 3133065982 + imull 0xbabecafe + +// CHECK: imull 305419896 + imull 0x12345678 + +// CHECK: divl 3735928559(%ebx,%ecx,8) + divl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: divw 32493 + divw 0x7eed + +// CHECK: divl 3133065982 + divl 0xbabecafe + +// CHECK: divl 305419896 + divl 0x12345678 + +// CHECK: idivl 3735928559(%ebx,%ecx,8) + idivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: idivw 32493 + idivw 0x7eed + +// CHECK: idivl 3133065982 + idivl 0xbabecafe + +// CHECK: idivl 305419896 + idivl 0x12345678 + +// CHECK: roll $0, 3735928559(%ebx,%ecx,8) + roll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: roll $0, 69 + roll $0,0x45 + +// CHECK: roll $0, 32493 + roll $0,0x7eed + +// CHECK: roll $0, 3133065982 + roll $0,0xbabecafe + +// CHECK: roll $0, 305419896 + roll $0,0x12345678 + +// CHECK: rolb $127, 3735928559(%ebx,%ecx,8) + rolb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rolb $127, 69 + rolb $0x7f,0x45 + +// CHECK: rolb $127, 32493 + rolb $0x7f,0x7eed + +// CHECK: rolb $127, 3133065982 + rolb $0x7f,0xbabecafe + +// CHECK: rolb $127, 305419896 + rolb $0x7f,0x12345678 + +// CHECK: roll 3735928559(%ebx,%ecx,8) + roll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rolw 32493 + rolw 0x7eed + +// CHECK: roll 3133065982 + roll 0xbabecafe + +// CHECK: roll 305419896 + roll 0x12345678 + +// CHECK: rorl $0, 3735928559(%ebx,%ecx,8) + rorl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorl $0, 69 + rorl $0,0x45 + +// CHECK: rorl $0, 32493 + rorl $0,0x7eed + +// CHECK: rorl $0, 3133065982 + rorl $0,0xbabecafe + +// CHECK: rorl $0, 305419896 + rorl $0,0x12345678 + +// CHECK: rorb $127, 3735928559(%ebx,%ecx,8) + rorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorb $127, 69 + rorb $0x7f,0x45 + +// CHECK: rorb $127, 32493 + rorb $0x7f,0x7eed + +// CHECK: rorb $127, 3133065982 + rorb $0x7f,0xbabecafe + +// CHECK: rorb $127, 305419896 + rorb $0x7f,0x12345678 + +// CHECK: rorl 3735928559(%ebx,%ecx,8) + rorl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorw 32493 + rorw 0x7eed + +// CHECK: rorl 3133065982 + rorl 0xbabecafe + +// CHECK: rorl 305419896 + rorl 0x12345678 + +// CHECK: rcll $0, 3735928559(%ebx,%ecx,8) + rcll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rcll $0, 69 + rcll $0,0x45 + +// CHECK: rcll $0, 32493 + rcll $0,0x7eed + +// CHECK: rcll $0, 3133065982 + rcll $0,0xbabecafe + +// CHECK: rcll $0, 305419896 + rcll $0,0x12345678 + +// CHECK: rclb $127, 3735928559(%ebx,%ecx,8) + rclb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rclb $127, 69 + rclb $0x7f,0x45 + +// CHECK: rclb $127, 32493 + rclb $0x7f,0x7eed + +// CHECK: rclb $127, 3133065982 + rclb $0x7f,0xbabecafe + +// CHECK: rclb $127, 305419896 + rclb $0x7f,0x12345678 + +// CHECK: rcrl $0, 3735928559(%ebx,%ecx,8) + rcrl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rcrl $0, 69 + rcrl $0,0x45 + +// CHECK: rcrl $0, 32493 + rcrl $0,0x7eed + +// CHECK: rcrl $0, 3133065982 + rcrl $0,0xbabecafe + +// CHECK: rcrl $0, 305419896 + rcrl $0,0x12345678 + +// CHECK: rcrb $127, 3735928559(%ebx,%ecx,8) + rcrb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rcrb $127, 69 + rcrb $0x7f,0x45 + +// CHECK: rcrb $127, 32493 + rcrb $0x7f,0x7eed + +// CHECK: rcrb $127, 3133065982 + rcrb $0x7f,0xbabecafe + +// CHECK: rcrb $127, 305419896 + rcrb $0x7f,0x12345678 + +// CHECK: shll $0, 3735928559(%ebx,%ecx,8) + sall $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll $0, 69 + sall $0,0x45 + +// CHECK: shll $0, 32493 + sall $0,0x7eed + +// CHECK: shll $0, 3133065982 + sall $0,0xbabecafe + +// CHECK: shll $0, 305419896 + sall $0,0x12345678 + +// CHECK: shlb $127, 3735928559(%ebx,%ecx,8) + salb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlb $127, 69 + salb $0x7f,0x45 + +// CHECK: shlb $127, 32493 + salb $0x7f,0x7eed + +// CHECK: shlb $127, 3133065982 + salb $0x7f,0xbabecafe + +// CHECK: shlb $127, 305419896 + salb $0x7f,0x12345678 + +// CHECK: shll 3735928559(%ebx,%ecx,8) + sall 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlw 32493 + salw 0x7eed + +// CHECK: shll 3133065982 + sall 0xbabecafe + +// CHECK: shll 305419896 + sall 0x12345678 + +// CHECK: shll $0, 3735928559(%ebx,%ecx,8) + shll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll $0, 69 + shll $0,0x45 + +// CHECK: shll $0, 32493 + shll $0,0x7eed + +// CHECK: shll $0, 3133065982 + shll $0,0xbabecafe + +// CHECK: shll $0, 305419896 + shll $0,0x12345678 + +// CHECK: shlb $127, 3735928559(%ebx,%ecx,8) + shlb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlb $127, 69 + shlb $0x7f,0x45 + +// CHECK: shlb $127, 32493 + shlb $0x7f,0x7eed + +// CHECK: shlb $127, 3133065982 + shlb $0x7f,0xbabecafe + +// CHECK: shlb $127, 305419896 + shlb $0x7f,0x12345678 + +// CHECK: shll 3735928559(%ebx,%ecx,8) + shll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlw 32493 + shlw 0x7eed + +// CHECK: shll 3133065982 + shll 0xbabecafe + +// CHECK: shll 305419896 + shll 0x12345678 + +// CHECK: shrl $0, 3735928559(%ebx,%ecx,8) + shrl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrl $0, 69 + shrl $0,0x45 + +// CHECK: shrl $0, 32493 + shrl $0,0x7eed + +// CHECK: shrl $0, 3133065982 + shrl $0,0xbabecafe + +// CHECK: shrl $0, 305419896 + shrl $0,0x12345678 + +// CHECK: shrb $127, 3735928559(%ebx,%ecx,8) + shrb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrb $127, 69 + shrb $0x7f,0x45 + +// CHECK: shrb $127, 32493 + shrb $0x7f,0x7eed + +// CHECK: shrb $127, 3133065982 + shrb $0x7f,0xbabecafe + +// CHECK: shrb $127, 305419896 + shrb $0x7f,0x12345678 + +// CHECK: shrl 3735928559(%ebx,%ecx,8) + shrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrw 32493 + shrw 0x7eed + +// CHECK: shrl 3133065982 + shrl 0xbabecafe + +// CHECK: shrl 305419896 + shrl 0x12345678 + +// CHECK: sarl $0, 3735928559(%ebx,%ecx,8) + sarl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarl $0, 69 + sarl $0,0x45 + +// CHECK: sarl $0, 32493 + sarl $0,0x7eed + +// CHECK: sarl $0, 3133065982 + sarl $0,0xbabecafe + +// CHECK: sarl $0, 305419896 + sarl $0,0x12345678 + +// CHECK: sarb $127, 3735928559(%ebx,%ecx,8) + sarb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarb $127, 69 + sarb $0x7f,0x45 + +// CHECK: sarb $127, 32493 + sarb $0x7f,0x7eed + +// CHECK: sarb $127, 3133065982 + sarb $0x7f,0xbabecafe + +// CHECK: sarb $127, 305419896 + sarb $0x7f,0x12345678 + +// CHECK: sarl 3735928559(%ebx,%ecx,8) + sarl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarw 32493 + sarw 0x7eed + +// CHECK: sarl 3133065982 + sarl 0xbabecafe + +// CHECK: sarl 305419896 + sarl 0x12345678 + +// CHECK: call 3133065982 + call 0xbabecafe + +// CHECK: call *3735928559(%ebx,%ecx,8) + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call 3133065982 + call 0xbabecafe + +// CHECK: call 305419896 + call 0x12345678 + +// CHECK: call *3135175374 + call *0xbadeface + +// CHECK: call *3735928559(%ebx,%ecx,8) + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call 32493 + call 0x7eed + +// CHECK: call 3133065982 + call 0xbabecafe + +// CHECK: call 305419896 + call 0x12345678 + +// CHECK: call *3135175374 + call *0xbadeface + +// CHECK: lcallw *32493 + lcallw *0x7eed + +// CHECK: jmp 32493 + jmp 0x7eed + +// CHECK: jmp 3133065982 + jmp 0xbabecafe + +// CHECK: jmp 305419896 + jmp 0x12345678 + +// CHECK: jmp -77129852792157442 + jmp 0xfeedfacebabecafe + +// CHECK: jmp *3735928559(%ebx,%ecx,8) + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp 32493 + jmp 0x7eed + +// CHECK: jmp 3133065982 + jmp 0xbabecafe + +// CHECK: jmp 305419896 + jmp 0x12345678 + +// CHECK: jmp *3135175374 + jmp *0xbadeface + +// CHECK: jmp *3735928559(%ebx,%ecx,8) + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp 32493 + jmp 0x7eed + +// CHECK: jmp 3133065982 + jmp 0xbabecafe + +// CHECK: jmp 305419896 + jmp 0x12345678 + +// CHECK: jmp *3135175374 + jmp *0xbadeface + +// CHECK: ljmpl *3735928559(%ebx,%ecx,8) + ljmpl *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ljmpw *32493 + ljmpw *0x7eed + +// CHECK: ljmpl *3133065982 + ljmpl *0xbabecafe + +// CHECK: ljmpl *305419896 + ljmpl *0x12345678 + +// CHECK: ret + ret + +// CHECK: lret + lret + +// CHECK: enter $31438, $127 + enter $0x7ace,$0x7f + +// CHECK: leave + leave + +// CHECK: jo 32493 + jo 0x7eed + +// CHECK: jo 3133065982 + jo 0xbabecafe + +// CHECK: jo 305419896 + jo 0x12345678 + +// CHECK: jo -77129852792157442 + jo 0xfeedfacebabecafe + +// CHECK: jno 32493 + jno 0x7eed + +// CHECK: jno 3133065982 + jno 0xbabecafe + +// CHECK: jno 305419896 + jno 0x12345678 + +// CHECK: jno -77129852792157442 + jno 0xfeedfacebabecafe + +// CHECK: jb 32493 + jb 0x7eed + +// CHECK: jb 3133065982 + jb 0xbabecafe + +// CHECK: jb 305419896 + jb 0x12345678 + +// CHECK: jb -77129852792157442 + jb 0xfeedfacebabecafe + +// CHECK: jae 32493 + jae 0x7eed + +// CHECK: jae 3133065982 + jae 0xbabecafe + +// CHECK: jae 305419896 + jae 0x12345678 + +// CHECK: jae -77129852792157442 + jae 0xfeedfacebabecafe + +// CHECK: je 32493 + je 0x7eed + +// CHECK: je 3133065982 + je 0xbabecafe + +// CHECK: je 305419896 + je 0x12345678 + +// CHECK: je -77129852792157442 + je 0xfeedfacebabecafe + +// CHECK: jne 32493 + jne 0x7eed + +// CHECK: jne 3133065982 + jne 0xbabecafe + +// CHECK: jne 305419896 + jne 0x12345678 + +// CHECK: jne -77129852792157442 + jne 0xfeedfacebabecafe + +// CHECK: jbe 32493 + jbe 0x7eed + +// CHECK: jbe 3133065982 + jbe 0xbabecafe + +// CHECK: jbe 305419896 + jbe 0x12345678 + +// CHECK: jbe -77129852792157442 + jbe 0xfeedfacebabecafe + +// CHECK: ja 32493 + ja 0x7eed + +// CHECK: ja 3133065982 + ja 0xbabecafe + +// CHECK: ja 305419896 + ja 0x12345678 + +// CHECK: ja -77129852792157442 + ja 0xfeedfacebabecafe + +// CHECK: js 32493 + js 0x7eed + +// CHECK: js 3133065982 + js 0xbabecafe + +// CHECK: js 305419896 + js 0x12345678 + +// CHECK: js -77129852792157442 + js 0xfeedfacebabecafe + +// CHECK: jns 32493 + jns 0x7eed + +// CHECK: jns 3133065982 + jns 0xbabecafe + +// CHECK: jns 305419896 + jns 0x12345678 + +// CHECK: jns -77129852792157442 + jns 0xfeedfacebabecafe + +// CHECK: jp 32493 + jp 0x7eed + +// CHECK: jp 3133065982 + jp 0xbabecafe + +// CHECK: jp 305419896 + jp 0x12345678 + +// CHECK: jp -77129852792157442 + jp 0xfeedfacebabecafe + +// CHECK: jnp 32493 + jnp 0x7eed + +// CHECK: jnp 3133065982 + jnp 0xbabecafe + +// CHECK: jnp 305419896 + jnp 0x12345678 + +// CHECK: jnp -77129852792157442 + jnp 0xfeedfacebabecafe + +// CHECK: jl 32493 + jl 0x7eed + +// CHECK: jl 3133065982 + jl 0xbabecafe + +// CHECK: jl 305419896 + jl 0x12345678 + +// CHECK: jl -77129852792157442 + jl 0xfeedfacebabecafe + +// CHECK: jge 32493 + jge 0x7eed + +// CHECK: jge 3133065982 + jge 0xbabecafe + +// CHECK: jge 305419896 + jge 0x12345678 + +// CHECK: jge -77129852792157442 + jge 0xfeedfacebabecafe + +// CHECK: jle 32493 + jle 0x7eed + +// CHECK: jle 3133065982 + jle 0xbabecafe + +// CHECK: jle 305419896 + jle 0x12345678 + +// CHECK: jle -77129852792157442 + jle 0xfeedfacebabecafe + +// CHECK: jg 32493 + jg 0x7eed + +// CHECK: jg 3133065982 + jg 0xbabecafe + +// CHECK: jg 305419896 + jg 0x12345678 + +// CHECK: jg -77129852792157442 + jg 0xfeedfacebabecafe + +// CHECK: seto %bl + seto %bl + +// CHECK: seto 3735928559(%ebx,%ecx,8) + seto 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: seto 32493 + seto 0x7eed + +// CHECK: seto 3133065982 + seto 0xbabecafe + +// CHECK: seto 305419896 + seto 0x12345678 + +// CHECK: setno %bl + setno %bl + +// CHECK: setno 3735928559(%ebx,%ecx,8) + setno 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setno 32493 + setno 0x7eed + +// CHECK: setno 3133065982 + setno 0xbabecafe + +// CHECK: setno 305419896 + setno 0x12345678 + +// CHECK: setb %bl + setb %bl + +// CHECK: setb 3735928559(%ebx,%ecx,8) + setb 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setb 32493 + setb 0x7eed + +// CHECK: setb 3133065982 + setb 0xbabecafe + +// CHECK: setb 305419896 + setb 0x12345678 + +// CHECK: setae %bl + setae %bl + +// CHECK: setae 3735928559(%ebx,%ecx,8) + setae 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setae 32493 + setae 0x7eed + +// CHECK: setae 3133065982 + setae 0xbabecafe + +// CHECK: setae 305419896 + setae 0x12345678 + +// CHECK: sete %bl + sete %bl + +// CHECK: sete 3735928559(%ebx,%ecx,8) + sete 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sete 32493 + sete 0x7eed + +// CHECK: sete 3133065982 + sete 0xbabecafe + +// CHECK: sete 305419896 + sete 0x12345678 + +// CHECK: setne %bl + setne %bl + +// CHECK: setne 3735928559(%ebx,%ecx,8) + setne 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setne 32493 + setne 0x7eed + +// CHECK: setne 3133065982 + setne 0xbabecafe + +// CHECK: setne 305419896 + setne 0x12345678 + +// CHECK: setbe %bl + setbe %bl + +// CHECK: setbe 3735928559(%ebx,%ecx,8) + setbe 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setbe 32493 + setbe 0x7eed + +// CHECK: setbe 3133065982 + setbe 0xbabecafe + +// CHECK: setbe 305419896 + setbe 0x12345678 + +// CHECK: seta %bl + seta %bl + +// CHECK: seta 3735928559(%ebx,%ecx,8) + seta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: seta 32493 + seta 0x7eed + +// CHECK: seta 3133065982 + seta 0xbabecafe + +// CHECK: seta 305419896 + seta 0x12345678 + +// CHECK: sets %bl + sets %bl + +// CHECK: sets 3735928559(%ebx,%ecx,8) + sets 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sets 32493 + sets 0x7eed + +// CHECK: sets 3133065982 + sets 0xbabecafe + +// CHECK: sets 305419896 + sets 0x12345678 + +// CHECK: setns %bl + setns %bl + +// CHECK: setns 3735928559(%ebx,%ecx,8) + setns 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setns 32493 + setns 0x7eed + +// CHECK: setns 3133065982 + setns 0xbabecafe + +// CHECK: setns 305419896 + setns 0x12345678 + +// CHECK: setp %bl + setp %bl + +// CHECK: setp 3735928559(%ebx,%ecx,8) + setp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setp 32493 + setp 0x7eed + +// CHECK: setp 3133065982 + setp 0xbabecafe + +// CHECK: setp 305419896 + setp 0x12345678 + +// CHECK: setnp %bl + setnp %bl + +// CHECK: setnp 3735928559(%ebx,%ecx,8) + setnp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setnp 32493 + setnp 0x7eed + +// CHECK: setnp 3133065982 + setnp 0xbabecafe + +// CHECK: setnp 305419896 + setnp 0x12345678 + +// CHECK: setl %bl + setl %bl + +// CHECK: setl 3735928559(%ebx,%ecx,8) + setl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setl 32493 + setl 0x7eed + +// CHECK: setl 3133065982 + setl 0xbabecafe + +// CHECK: setl 305419896 + setl 0x12345678 + +// CHECK: setge %bl + setge %bl + +// CHECK: setge 3735928559(%ebx,%ecx,8) + setge 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setge 32493 + setge 0x7eed + +// CHECK: setge 3133065982 + setge 0xbabecafe + +// CHECK: setge 305419896 + setge 0x12345678 + +// CHECK: setle %bl + setle %bl + +// CHECK: setle 3735928559(%ebx,%ecx,8) + setle 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setle 32493 + setle 0x7eed + +// CHECK: setle 3133065982 + setle 0xbabecafe + +// CHECK: setle 305419896 + setle 0x12345678 + +// CHECK: setg %bl + setg %bl + +// CHECK: setg 3735928559(%ebx,%ecx,8) + setg 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setg 32493 + setg 0x7eed + +// CHECK: setg 3133065982 + setg 0xbabecafe + +// CHECK: setg 305419896 + setg 0x12345678 + +// CHECK: int $127 + int $0x7f + +// CHECK: rsm + rsm + +// CHECK: hlt + hlt + +// CHECK: nopl 3735928559(%ebx,%ecx,8) + nopl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: nopw 32493 + nopw 0x7eed + +// CHECK: nopl 3133065982 + nopl 0xbabecafe + +// CHECK: nopl 305419896 + nopl 0x12345678 + +// CHECK: nop + nop + +// CHECK: lldtw 32493 + lldtw 0x7eed + +// CHECK: lmsww 32493 + lmsww 0x7eed + +// CHECK: ltrw 32493 + ltrw 0x7eed + +// CHECK: sldtw 32493 + sldtw 0x7eed + +// CHECK: smsww 32493 + smsww 0x7eed + +// CHECK: strw 32493 + strw 0x7eed + +// CHECK: verr %bx + verr %bx + +// CHECK: verr 3735928559(%ebx,%ecx,8) + verr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: verr 3133065982 + verr 0xbabecafe + +// CHECK: verr 305419896 + verr 0x12345678 + +// CHECK: verw %bx + verw %bx + +// CHECK: verw 3735928559(%ebx,%ecx,8) + verw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: verw 3133065982 + verw 0xbabecafe + +// CHECK: verw 305419896 + verw 0x12345678 + +// CHECK: fld %st(2) + fld %st(2) + +// CHECK: fldl 3735928559(%ebx,%ecx,8) + fldl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldl 3133065982 + fldl 0xbabecafe + +// CHECK: fldl 305419896 + fldl 0x12345678 + +// CHECK: fld %st(2) + fld %st(2) + +// CHECK: fildl 3735928559(%ebx,%ecx,8) + fildl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildl 3133065982 + fildl 0xbabecafe + +// CHECK: fildl 305419896 + fildl 0x12345678 + +// CHECK: fildll 3735928559(%ebx,%ecx,8) + fildll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildll 32493 + fildll 0x7eed + +// CHECK: fildll 3133065982 + fildll 0xbabecafe + +// CHECK: fildll 305419896 + fildll 0x12345678 + +// CHECK: fldt 3735928559(%ebx,%ecx,8) + fldt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldt 32493 + fldt 0x7eed + +// CHECK: fldt 3133065982 + fldt 0xbabecafe + +// CHECK: fldt 305419896 + fldt 0x12345678 + +// CHECK: fbld 3735928559(%ebx,%ecx,8) + fbld 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbld 32493 + fbld 0x7eed + +// CHECK: fbld 3133065982 + fbld 0xbabecafe + +// CHECK: fbld 305419896 + fbld 0x12345678 + +// CHECK: fst %st(2) + fst %st(2) + +// CHECK: fstl 3735928559(%ebx,%ecx,8) + fstl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstl 3133065982 + fstl 0xbabecafe + +// CHECK: fstl 305419896 + fstl 0x12345678 + +// CHECK: fst %st(2) + fst %st(2) + +// CHECK: fistl 3735928559(%ebx,%ecx,8) + fistl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistl 3133065982 + fistl 0xbabecafe + +// CHECK: fistl 305419896 + fistl 0x12345678 + +// CHECK: fstp %st(2) + fstp %st(2) + +// CHECK: fstpl 3735928559(%ebx,%ecx,8) + fstpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpl 3133065982 + fstpl 0xbabecafe + +// CHECK: fstpl 305419896 + fstpl 0x12345678 + +// CHECK: fstp %st(2) + fstp %st(2) + +// CHECK: fistpl 3735928559(%ebx,%ecx,8) + fistpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpl 3133065982 + fistpl 0xbabecafe + +// CHECK: fistpl 305419896 + fistpl 0x12345678 + +// CHECK: fistpll 3735928559(%ebx,%ecx,8) + fistpll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpll 32493 + fistpll 0x7eed + +// CHECK: fistpll 3133065982 + fistpll 0xbabecafe + +// CHECK: fistpll 305419896 + fistpll 0x12345678 + +// CHECK: fstpt 3735928559(%ebx,%ecx,8) + fstpt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpt 32493 + fstpt 0x7eed + +// CHECK: fstpt 3133065982 + fstpt 0xbabecafe + +// CHECK: fstpt 305419896 + fstpt 0x12345678 + +// CHECK: fbstp 3735928559(%ebx,%ecx,8) + fbstp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbstp 32493 + fbstp 0x7eed + +// CHECK: fbstp 3133065982 + fbstp 0xbabecafe + +// CHECK: fbstp 305419896 + fbstp 0x12345678 + +// CHECK: fxch %st(2) + fxch %st(2) + +// CHECK: fcom %st(2) + fcom %st(2) + +// CHECK: fcoml 3735928559(%ebx,%ecx,8) + fcoml 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fcoml 3133065982 + fcoml 0xbabecafe + +// CHECK: fcoml 305419896 + fcoml 0x12345678 + +// CHECK: fcom %st(2) + fcom %st(2) + +// CHECK: ficoml 3735928559(%ebx,%ecx,8) + ficoml 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficoml 3133065982 + ficoml 0xbabecafe + +// CHECK: ficoml 305419896 + ficoml 0x12345678 + +// CHECK: fcomp %st(2) + fcomp %st(2) + +// CHECK: fcompl 3735928559(%ebx,%ecx,8) + fcompl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fcompl 3133065982 + fcompl 0xbabecafe + +// CHECK: fcompl 305419896 + fcompl 0x12345678 + +// CHECK: fcomp %st(2) + fcomp %st(2) + +// CHECK: ficompl 3735928559(%ebx,%ecx,8) + ficompl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficompl 3133065982 + ficompl 0xbabecafe + +// CHECK: ficompl 305419896 + ficompl 0x12345678 + +// CHECK: fcompp + fcompp + +// CHECK: fucom %st(2) + fucom %st(2) + +// CHECK: fucomp %st(2) + fucomp %st(2) + +// CHECK: fucompp + fucompp + +// CHECK: ftst + ftst + +// CHECK: fxam + fxam + +// CHECK: fld1 + fld1 + +// CHECK: fldl2t + fldl2t + +// CHECK: fldl2e + fldl2e + +// CHECK: fldpi + fldpi + +// CHECK: fldlg2 + fldlg2 + +// CHECK: fldln2 + fldln2 + +// CHECK: fldz + fldz + +// CHECK: fadd %st(2) + fadd %st(2) + +// CHECK: faddl 3735928559(%ebx,%ecx,8) + faddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: faddl 3133065982 + faddl 0xbabecafe + +// CHECK: faddl 305419896 + faddl 0x12345678 + +// CHECK: fiaddl 3735928559(%ebx,%ecx,8) + fiaddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fiaddl 3133065982 + fiaddl 0xbabecafe + +// CHECK: fiaddl 305419896 + fiaddl 0x12345678 + +// CHECK: faddp %st(2) + faddp %st(2) + +// CHECK: fsub %st(2) + fsub %st(2) + +// CHECK: fsubl 3735928559(%ebx,%ecx,8) + fsubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubl 3133065982 + fsubl 0xbabecafe + +// CHECK: fsubl 305419896 + fsubl 0x12345678 + +// CHECK: fisubl 3735928559(%ebx,%ecx,8) + fisubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubl 3133065982 + fisubl 0xbabecafe + +// CHECK: fisubl 305419896 + fisubl 0x12345678 + +// CHECK: fsubp %st(2) + fsubp %st(2) + +// CHECK: fsubr %st(2) + fsubr %st(2) + +// CHECK: fsubrl 3735928559(%ebx,%ecx,8) + fsubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubrl 3133065982 + fsubrl 0xbabecafe + +// CHECK: fsubrl 305419896 + fsubrl 0x12345678 + +// CHECK: fisubrl 3735928559(%ebx,%ecx,8) + fisubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubrl 3133065982 + fisubrl 0xbabecafe + +// CHECK: fisubrl 305419896 + fisubrl 0x12345678 + +// CHECK: fsubrp %st(2) + fsubrp %st(2) + +// CHECK: fmul %st(2) + fmul %st(2) + +// CHECK: fmull 3735928559(%ebx,%ecx,8) + fmull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fmull 3133065982 + fmull 0xbabecafe + +// CHECK: fmull 305419896 + fmull 0x12345678 + +// CHECK: fimull 3735928559(%ebx,%ecx,8) + fimull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fimull 3133065982 + fimull 0xbabecafe + +// CHECK: fimull 305419896 + fimull 0x12345678 + +// CHECK: fmulp %st(2) + fmulp %st(2) + +// CHECK: fdiv %st(2) + fdiv %st(2) + +// CHECK: fdivl 3735928559(%ebx,%ecx,8) + fdivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivl 3133065982 + fdivl 0xbabecafe + +// CHECK: fdivl 305419896 + fdivl 0x12345678 + +// CHECK: fidivl 3735928559(%ebx,%ecx,8) + fidivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivl 3133065982 + fidivl 0xbabecafe + +// CHECK: fidivl 305419896 + fidivl 0x12345678 + +// CHECK: fdivp %st(2) + fdivp %st(2) + +// CHECK: fdivr %st(2) + fdivr %st(2) + +// CHECK: fdivrl 3735928559(%ebx,%ecx,8) + fdivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivrl 3133065982 + fdivrl 0xbabecafe + +// CHECK: fdivrl 305419896 + fdivrl 0x12345678 + +// CHECK: fidivrl 3735928559(%ebx,%ecx,8) + fidivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivrl 3133065982 + fidivrl 0xbabecafe + +// CHECK: fidivrl 305419896 + fidivrl 0x12345678 + +// CHECK: fdivrp %st(2) + fdivrp %st(2) + +// CHECK: f2xm1 + f2xm1 + +// CHECK: fyl2x + fyl2x + +// CHECK: fptan + fptan + +// CHECK: fpatan + fpatan + +// CHECK: fxtract + fxtract + +// CHECK: fprem1 + fprem1 + +// CHECK: fdecstp + fdecstp + +// CHECK: fincstp + fincstp + +// CHECK: fprem + fprem + +// CHECK: fyl2xp1 + fyl2xp1 + +// CHECK: fsqrt + fsqrt + +// CHECK: fsincos + fsincos + +// CHECK: frndint + frndint + +// CHECK: fscale + fscale + +// CHECK: fsin + fsin + +// CHECK: fcos + fcos + +// CHECK: fchs + fchs + +// CHECK: fabs + fabs + +// CHECK: fninit + fninit + +// CHECK: fldcw 3735928559(%ebx,%ecx,8) + fldcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldcw 3133065982 + fldcw 0xbabecafe + +// CHECK: fldcw 305419896 + fldcw 0x12345678 + +// CHECK: fnstcw 3735928559(%ebx,%ecx,8) + fnstcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fnstcw 3133065982 + fnstcw 0xbabecafe + +// CHECK: fnstcw 305419896 + fnstcw 0x12345678 + +// CHECK: fnstsw 3735928559(%ebx,%ecx,8) + fnstsw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fnstsw 3133065982 + fnstsw 0xbabecafe + +// CHECK: fnstsw 305419896 + fnstsw 0x12345678 + +// CHECK: fnclex + fnclex + +// CHECK: fnstenv 32493 + fnstenv 0x7eed + +// CHECK: fldenv 32493 + fldenv 0x7eed + +// CHECK: fnsave 32493 + fnsave 0x7eed + +// CHECK: frstor 32493 + frstor 0x7eed + +// CHECK: ffree %st(2) + ffree %st(2) + +// CHECK: fnop + fnop + +// CHECK: invd + invd + +// CHECK: wbinvd + wbinvd + +// CHECK: cpuid + cpuid + +// CHECK: wrmsr + wrmsr + +// CHECK: rdtsc + rdtsc + +// CHECK: rdmsr + rdmsr + +// CHECK: cmpxchg8b 3735928559(%ebx,%ecx,8) + cmpxchg8b 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpxchg8b 32493 + cmpxchg8b 0x7eed + +// CHECK: cmpxchg8b 3133065982 + cmpxchg8b 0xbabecafe + +// CHECK: cmpxchg8b 305419896 + cmpxchg8b 0x12345678 + +// CHECK: sysenter + sysenter + +// CHECK: sysexit + sysexit + +// CHECK: fxsave 3735928559(%ebx,%ecx,8) + fxsave 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fxsave 32493 + fxsave 0x7eed + +// CHECK: fxsave 3133065982 + fxsave 0xbabecafe + +// CHECK: fxsave 305419896 + fxsave 0x12345678 + +// CHECK: fxrstor 3735928559(%ebx,%ecx,8) + fxrstor 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fxrstor 32493 + fxrstor 0x7eed + +// CHECK: fxrstor 3133065982 + fxrstor 0xbabecafe + +// CHECK: fxrstor 305419896 + fxrstor 0x12345678 + +// CHECK: rdpmc + rdpmc + +// CHECK: ud2 + ud2 + +// CHECK: fcmovb %st(2), %st(0) + fcmovb %st(2),%st + +// CHECK: fcmove %st(2), %st(0) + fcmove %st(2),%st + +// CHECK: fcmovbe %st(2), %st(0) + fcmovbe %st(2),%st + +// CHECK: fcmovu %st(2), %st(0) + fcmovu %st(2),%st + +// CHECK: fcmovnb %st(2), %st(0) + fcmovnb %st(2),%st + +// CHECK: fcmovne %st(2), %st(0) + fcmovne %st(2),%st + +// CHECK: fcmovnbe %st(2), %st(0) + fcmovnbe %st(2),%st + +// CHECK: fcmovnu %st(2), %st(0) + fcmovnu %st(2),%st + +// CHECK: fcomi %st(2), %st(0) + fcomi %st(2),%st + +// CHECK: fucomi %st(2), %st(0) + fucomi %st(2),%st + +// CHECK: fcomip %st(2), %st(0) + fcomip %st(2),%st + +// CHECK: fucomip %st(2), %st(0) + fucomip %st(2),%st + +// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8) + movnti %ecx,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movnti %ecx, 69 + movnti %ecx,0x45 + +// CHECK: movnti %ecx, 32493 + movnti %ecx,0x7eed + +// CHECK: movnti %ecx, 3133065982 + movnti %ecx,0xbabecafe + +// CHECK: movnti %ecx, 305419896 + movnti %ecx,0x12345678 + +// CHECK: clflush 3735928559(%ebx,%ecx,8) + clflush 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: clflush 32493 + clflush 0x7eed + +// CHECK: clflush 3133065982 + clflush 0xbabecafe + +// CHECK: clflush 305419896 + clflush 0x12345678 + +// CHECK: lfence + lfence + +// CHECK: mfence + mfence + +// CHECK: emms + emms + +// CHECK: movd %ecx, %mm3 + movd %ecx,%mm3 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3 + movd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movd 69, %mm3 + movd 0x45,%mm3 + +// CHECK: movd 32493, %mm3 + movd 0x7eed,%mm3 + +// CHECK: movd 3133065982, %mm3 + movd 0xbabecafe,%mm3 + +// CHECK: movd 305419896, %mm3 + movd 0x12345678,%mm3 + +// CHECK: movd %mm3, %ecx + movd %mm3,%ecx + +// CHECK: movd %mm3, 3735928559(%ebx,%ecx,8) + movd %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movd %mm3, 69 + movd %mm3,0x45 + +// CHECK: movd %mm3, 32493 + movd %mm3,0x7eed + +// CHECK: movd %mm3, 3133065982 + movd %mm3,0xbabecafe + +// CHECK: movd %mm3, 305419896 + movd %mm3,0x12345678 + +// CHECK: movd %ecx, %xmm5 + movd %ecx,%xmm5 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5 + movd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movd 69, %xmm5 + movd 0x45,%xmm5 + +// CHECK: movd 32493, %xmm5 + movd 0x7eed,%xmm5 + +// CHECK: movd 3133065982, %xmm5 + movd 0xbabecafe,%xmm5 + +// CHECK: movd 305419896, %xmm5 + movd 0x12345678,%xmm5 + +// CHECK: movd %xmm5, %ecx + movd %xmm5,%ecx + +// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8) + movd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movd %xmm5, 69 + movd %xmm5,0x45 + +// CHECK: movd %xmm5, 32493 + movd %xmm5,0x7eed + +// CHECK: movd %xmm5, 3133065982 + movd %xmm5,0xbabecafe + +// CHECK: movd %xmm5, 305419896 + movd %xmm5,0x12345678 + +// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3 + movq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movq 69, %mm3 + movq 0x45,%mm3 + +// CHECK: movq 32493, %mm3 + movq 0x7eed,%mm3 + +// CHECK: movq 3133065982, %mm3 + movq 0xbabecafe,%mm3 + +// CHECK: movq 305419896, %mm3 + movq 0x12345678,%mm3 + +// CHECK: movq %mm3, %mm3 + movq %mm3,%mm3 + +// CHECK: movq %mm3, 3735928559(%ebx,%ecx,8) + movq %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movq %mm3, 69 + movq %mm3,0x45 + +// CHECK: movq %mm3, 32493 + movq %mm3,0x7eed + +// CHECK: movq %mm3, 3133065982 + movq %mm3,0xbabecafe + +// CHECK: movq %mm3, 305419896 + movq %mm3,0x12345678 + +// CHECK: movq %mm3, %mm3 + movq %mm3,%mm3 + +// CHECK: movq 3735928559(%ebx,%ecx,8), %xmm5 + movq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movq 69, %xmm5 + movq 0x45,%xmm5 + +// CHECK: movq 32493, %xmm5 + movq 0x7eed,%xmm5 + +// CHECK: movq 3133065982, %xmm5 + movq 0xbabecafe,%xmm5 + +// CHECK: movq 305419896, %xmm5 + movq 0x12345678,%xmm5 + +// CHECK: movq %xmm5, %xmm5 + movq %xmm5,%xmm5 + +// CHECK: movq %xmm5, 3735928559(%ebx,%ecx,8) + movq %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movq %xmm5, 69 + movq %xmm5,0x45 + +// CHECK: movq %xmm5, 32493 + movq %xmm5,0x7eed + +// CHECK: movq %xmm5, 3133065982 + movq %xmm5,0xbabecafe + +// CHECK: movq %xmm5, 305419896 + movq %xmm5,0x12345678 + +// CHECK: movq %xmm5, %xmm5 + movq %xmm5,%xmm5 + +// CHECK: packssdw 3735928559(%ebx,%ecx,8), %mm3 + packssdw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packssdw 69, %mm3 + packssdw 0x45,%mm3 + +// CHECK: packssdw 32493, %mm3 + packssdw 0x7eed,%mm3 + +// CHECK: packssdw 3133065982, %mm3 + packssdw 0xbabecafe,%mm3 + +// CHECK: packssdw 305419896, %mm3 + packssdw 0x12345678,%mm3 + +// CHECK: packssdw %mm3, %mm3 + packssdw %mm3,%mm3 + +// CHECK: packssdw 3735928559(%ebx,%ecx,8), %xmm5 + packssdw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packssdw 69, %xmm5 + packssdw 0x45,%xmm5 + +// CHECK: packssdw 32493, %xmm5 + packssdw 0x7eed,%xmm5 + +// CHECK: packssdw 3133065982, %xmm5 + packssdw 0xbabecafe,%xmm5 + +// CHECK: packssdw 305419896, %xmm5 + packssdw 0x12345678,%xmm5 + +// CHECK: packssdw %xmm5, %xmm5 + packssdw %xmm5,%xmm5 + +// CHECK: packsswb 3735928559(%ebx,%ecx,8), %mm3 + packsswb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packsswb 69, %mm3 + packsswb 0x45,%mm3 + +// CHECK: packsswb 32493, %mm3 + packsswb 0x7eed,%mm3 + +// CHECK: packsswb 3133065982, %mm3 + packsswb 0xbabecafe,%mm3 + +// CHECK: packsswb 305419896, %mm3 + packsswb 0x12345678,%mm3 + +// CHECK: packsswb %mm3, %mm3 + packsswb %mm3,%mm3 + +// CHECK: packsswb 3735928559(%ebx,%ecx,8), %xmm5 + packsswb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packsswb 69, %xmm5 + packsswb 0x45,%xmm5 + +// CHECK: packsswb 32493, %xmm5 + packsswb 0x7eed,%xmm5 + +// CHECK: packsswb 3133065982, %xmm5 + packsswb 0xbabecafe,%xmm5 + +// CHECK: packsswb 305419896, %xmm5 + packsswb 0x12345678,%xmm5 + +// CHECK: packsswb %xmm5, %xmm5 + packsswb %xmm5,%xmm5 + +// CHECK: packuswb 3735928559(%ebx,%ecx,8), %mm3 + packuswb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packuswb 69, %mm3 + packuswb 0x45,%mm3 + +// CHECK: packuswb 32493, %mm3 + packuswb 0x7eed,%mm3 + +// CHECK: packuswb 3133065982, %mm3 + packuswb 0xbabecafe,%mm3 + +// CHECK: packuswb 305419896, %mm3 + packuswb 0x12345678,%mm3 + +// CHECK: packuswb %mm3, %mm3 + packuswb %mm3,%mm3 + +// CHECK: packuswb 3735928559(%ebx,%ecx,8), %xmm5 + packuswb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packuswb 69, %xmm5 + packuswb 0x45,%xmm5 + +// CHECK: packuswb 32493, %xmm5 + packuswb 0x7eed,%xmm5 + +// CHECK: packuswb 3133065982, %xmm5 + packuswb 0xbabecafe,%xmm5 + +// CHECK: packuswb 305419896, %xmm5 + packuswb 0x12345678,%xmm5 + +// CHECK: packuswb %xmm5, %xmm5 + packuswb %xmm5,%xmm5 + +// CHECK: paddb 3735928559(%ebx,%ecx,8), %mm3 + paddb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddb 69, %mm3 + paddb 0x45,%mm3 + +// CHECK: paddb 32493, %mm3 + paddb 0x7eed,%mm3 + +// CHECK: paddb 3133065982, %mm3 + paddb 0xbabecafe,%mm3 + +// CHECK: paddb 305419896, %mm3 + paddb 0x12345678,%mm3 + +// CHECK: paddb %mm3, %mm3 + paddb %mm3,%mm3 + +// CHECK: paddb 3735928559(%ebx,%ecx,8), %xmm5 + paddb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddb 69, %xmm5 + paddb 0x45,%xmm5 + +// CHECK: paddb 32493, %xmm5 + paddb 0x7eed,%xmm5 + +// CHECK: paddb 3133065982, %xmm5 + paddb 0xbabecafe,%xmm5 + +// CHECK: paddb 305419896, %xmm5 + paddb 0x12345678,%xmm5 + +// CHECK: paddb %xmm5, %xmm5 + paddb %xmm5,%xmm5 + +// CHECK: paddw 3735928559(%ebx,%ecx,8), %mm3 + paddw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddw 69, %mm3 + paddw 0x45,%mm3 + +// CHECK: paddw 32493, %mm3 + paddw 0x7eed,%mm3 + +// CHECK: paddw 3133065982, %mm3 + paddw 0xbabecafe,%mm3 + +// CHECK: paddw 305419896, %mm3 + paddw 0x12345678,%mm3 + +// CHECK: paddw %mm3, %mm3 + paddw %mm3,%mm3 + +// CHECK: paddw 3735928559(%ebx,%ecx,8), %xmm5 + paddw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddw 69, %xmm5 + paddw 0x45,%xmm5 + +// CHECK: paddw 32493, %xmm5 + paddw 0x7eed,%xmm5 + +// CHECK: paddw 3133065982, %xmm5 + paddw 0xbabecafe,%xmm5 + +// CHECK: paddw 305419896, %xmm5 + paddw 0x12345678,%xmm5 + +// CHECK: paddw %xmm5, %xmm5 + paddw %xmm5,%xmm5 + +// CHECK: paddd 3735928559(%ebx,%ecx,8), %mm3 + paddd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddd 69, %mm3 + paddd 0x45,%mm3 + +// CHECK: paddd 32493, %mm3 + paddd 0x7eed,%mm3 + +// CHECK: paddd 3133065982, %mm3 + paddd 0xbabecafe,%mm3 + +// CHECK: paddd 305419896, %mm3 + paddd 0x12345678,%mm3 + +// CHECK: paddd %mm3, %mm3 + paddd %mm3,%mm3 + +// CHECK: paddd 3735928559(%ebx,%ecx,8), %xmm5 + paddd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddd 69, %xmm5 + paddd 0x45,%xmm5 + +// CHECK: paddd 32493, %xmm5 + paddd 0x7eed,%xmm5 + +// CHECK: paddd 3133065982, %xmm5 + paddd 0xbabecafe,%xmm5 + +// CHECK: paddd 305419896, %xmm5 + paddd 0x12345678,%xmm5 + +// CHECK: paddd %xmm5, %xmm5 + paddd %xmm5,%xmm5 + +// CHECK: paddq 3735928559(%ebx,%ecx,8), %mm3 + paddq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddq 69, %mm3 + paddq 0x45,%mm3 + +// CHECK: paddq 32493, %mm3 + paddq 0x7eed,%mm3 + +// CHECK: paddq 3133065982, %mm3 + paddq 0xbabecafe,%mm3 + +// CHECK: paddq 305419896, %mm3 + paddq 0x12345678,%mm3 + +// CHECK: paddq %mm3, %mm3 + paddq %mm3,%mm3 + +// CHECK: paddq 3735928559(%ebx,%ecx,8), %xmm5 + paddq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddq 69, %xmm5 + paddq 0x45,%xmm5 + +// CHECK: paddq 32493, %xmm5 + paddq 0x7eed,%xmm5 + +// CHECK: paddq 3133065982, %xmm5 + paddq 0xbabecafe,%xmm5 + +// CHECK: paddq 305419896, %xmm5 + paddq 0x12345678,%xmm5 + +// CHECK: paddq %xmm5, %xmm5 + paddq %xmm5,%xmm5 + +// CHECK: paddsb 3735928559(%ebx,%ecx,8), %mm3 + paddsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddsb 69, %mm3 + paddsb 0x45,%mm3 + +// CHECK: paddsb 32493, %mm3 + paddsb 0x7eed,%mm3 + +// CHECK: paddsb 3133065982, %mm3 + paddsb 0xbabecafe,%mm3 + +// CHECK: paddsb 305419896, %mm3 + paddsb 0x12345678,%mm3 + +// CHECK: paddsb %mm3, %mm3 + paddsb %mm3,%mm3 + +// CHECK: paddsb 3735928559(%ebx,%ecx,8), %xmm5 + paddsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddsb 69, %xmm5 + paddsb 0x45,%xmm5 + +// CHECK: paddsb 32493, %xmm5 + paddsb 0x7eed,%xmm5 + +// CHECK: paddsb 3133065982, %xmm5 + paddsb 0xbabecafe,%xmm5 + +// CHECK: paddsb 305419896, %xmm5 + paddsb 0x12345678,%xmm5 + +// CHECK: paddsb %xmm5, %xmm5 + paddsb %xmm5,%xmm5 + +// CHECK: paddsw 3735928559(%ebx,%ecx,8), %mm3 + paddsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddsw 69, %mm3 + paddsw 0x45,%mm3 + +// CHECK: paddsw 32493, %mm3 + paddsw 0x7eed,%mm3 + +// CHECK: paddsw 3133065982, %mm3 + paddsw 0xbabecafe,%mm3 + +// CHECK: paddsw 305419896, %mm3 + paddsw 0x12345678,%mm3 + +// CHECK: paddsw %mm3, %mm3 + paddsw %mm3,%mm3 + +// CHECK: paddsw 3735928559(%ebx,%ecx,8), %xmm5 + paddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddsw 69, %xmm5 + paddsw 0x45,%xmm5 + +// CHECK: paddsw 32493, %xmm5 + paddsw 0x7eed,%xmm5 + +// CHECK: paddsw 3133065982, %xmm5 + paddsw 0xbabecafe,%xmm5 + +// CHECK: paddsw 305419896, %xmm5 + paddsw 0x12345678,%xmm5 + +// CHECK: paddsw %xmm5, %xmm5 + paddsw %xmm5,%xmm5 + +// CHECK: paddusb 3735928559(%ebx,%ecx,8), %mm3 + paddusb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddusb 69, %mm3 + paddusb 0x45,%mm3 + +// CHECK: paddusb 32493, %mm3 + paddusb 0x7eed,%mm3 + +// CHECK: paddusb 3133065982, %mm3 + paddusb 0xbabecafe,%mm3 + +// CHECK: paddusb 305419896, %mm3 + paddusb 0x12345678,%mm3 + +// CHECK: paddusb %mm3, %mm3 + paddusb %mm3,%mm3 + +// CHECK: paddusb 3735928559(%ebx,%ecx,8), %xmm5 + paddusb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddusb 69, %xmm5 + paddusb 0x45,%xmm5 + +// CHECK: paddusb 32493, %xmm5 + paddusb 0x7eed,%xmm5 + +// CHECK: paddusb 3133065982, %xmm5 + paddusb 0xbabecafe,%xmm5 + +// CHECK: paddusb 305419896, %xmm5 + paddusb 0x12345678,%xmm5 + +// CHECK: paddusb %xmm5, %xmm5 + paddusb %xmm5,%xmm5 + +// CHECK: paddusw 3735928559(%ebx,%ecx,8), %mm3 + paddusw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddusw 69, %mm3 + paddusw 0x45,%mm3 + +// CHECK: paddusw 32493, %mm3 + paddusw 0x7eed,%mm3 + +// CHECK: paddusw 3133065982, %mm3 + paddusw 0xbabecafe,%mm3 + +// CHECK: paddusw 305419896, %mm3 + paddusw 0x12345678,%mm3 + +// CHECK: paddusw %mm3, %mm3 + paddusw %mm3,%mm3 + +// CHECK: paddusw 3735928559(%ebx,%ecx,8), %xmm5 + paddusw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddusw 69, %xmm5 + paddusw 0x45,%xmm5 + +// CHECK: paddusw 32493, %xmm5 + paddusw 0x7eed,%xmm5 + +// CHECK: paddusw 3133065982, %xmm5 + paddusw 0xbabecafe,%xmm5 + +// CHECK: paddusw 305419896, %xmm5 + paddusw 0x12345678,%xmm5 + +// CHECK: paddusw %xmm5, %xmm5 + paddusw %xmm5,%xmm5 + +// CHECK: pand 3735928559(%ebx,%ecx,8), %mm3 + pand 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pand 69, %mm3 + pand 0x45,%mm3 + +// CHECK: pand 32493, %mm3 + pand 0x7eed,%mm3 + +// CHECK: pand 3133065982, %mm3 + pand 0xbabecafe,%mm3 + +// CHECK: pand 305419896, %mm3 + pand 0x12345678,%mm3 + +// CHECK: pand %mm3, %mm3 + pand %mm3,%mm3 + +// CHECK: pand 3735928559(%ebx,%ecx,8), %xmm5 + pand 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pand 69, %xmm5 + pand 0x45,%xmm5 + +// CHECK: pand 32493, %xmm5 + pand 0x7eed,%xmm5 + +// CHECK: pand 3133065982, %xmm5 + pand 0xbabecafe,%xmm5 + +// CHECK: pand 305419896, %xmm5 + pand 0x12345678,%xmm5 + +// CHECK: pand %xmm5, %xmm5 + pand %xmm5,%xmm5 + +// CHECK: pandn 3735928559(%ebx,%ecx,8), %mm3 + pandn 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pandn 69, %mm3 + pandn 0x45,%mm3 + +// CHECK: pandn 32493, %mm3 + pandn 0x7eed,%mm3 + +// CHECK: pandn 3133065982, %mm3 + pandn 0xbabecafe,%mm3 + +// CHECK: pandn 305419896, %mm3 + pandn 0x12345678,%mm3 + +// CHECK: pandn %mm3, %mm3 + pandn %mm3,%mm3 + +// CHECK: pandn 3735928559(%ebx,%ecx,8), %xmm5 + pandn 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pandn 69, %xmm5 + pandn 0x45,%xmm5 + +// CHECK: pandn 32493, %xmm5 + pandn 0x7eed,%xmm5 + +// CHECK: pandn 3133065982, %xmm5 + pandn 0xbabecafe,%xmm5 + +// CHECK: pandn 305419896, %xmm5 + pandn 0x12345678,%xmm5 + +// CHECK: pandn %xmm5, %xmm5 + pandn %xmm5,%xmm5 + +// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %mm3 + pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqb 69, %mm3 + pcmpeqb 0x45,%mm3 + +// CHECK: pcmpeqb 32493, %mm3 + pcmpeqb 0x7eed,%mm3 + +// CHECK: pcmpeqb 3133065982, %mm3 + pcmpeqb 0xbabecafe,%mm3 + +// CHECK: pcmpeqb 305419896, %mm3 + pcmpeqb 0x12345678,%mm3 + +// CHECK: pcmpeqb %mm3, %mm3 + pcmpeqb %mm3,%mm3 + +// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %xmm5 + pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqb 69, %xmm5 + pcmpeqb 0x45,%xmm5 + +// CHECK: pcmpeqb 32493, %xmm5 + pcmpeqb 0x7eed,%xmm5 + +// CHECK: pcmpeqb 3133065982, %xmm5 + pcmpeqb 0xbabecafe,%xmm5 + +// CHECK: pcmpeqb 305419896, %xmm5 + pcmpeqb 0x12345678,%xmm5 + +// CHECK: pcmpeqb %xmm5, %xmm5 + pcmpeqb %xmm5,%xmm5 + +// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %mm3 + pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqw 69, %mm3 + pcmpeqw 0x45,%mm3 + +// CHECK: pcmpeqw 32493, %mm3 + pcmpeqw 0x7eed,%mm3 + +// CHECK: pcmpeqw 3133065982, %mm3 + pcmpeqw 0xbabecafe,%mm3 + +// CHECK: pcmpeqw 305419896, %mm3 + pcmpeqw 0x12345678,%mm3 + +// CHECK: pcmpeqw %mm3, %mm3 + pcmpeqw %mm3,%mm3 + +// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %xmm5 + pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqw 69, %xmm5 + pcmpeqw 0x45,%xmm5 + +// CHECK: pcmpeqw 32493, %xmm5 + pcmpeqw 0x7eed,%xmm5 + +// CHECK: pcmpeqw 3133065982, %xmm5 + pcmpeqw 0xbabecafe,%xmm5 + +// CHECK: pcmpeqw 305419896, %xmm5 + pcmpeqw 0x12345678,%xmm5 + +// CHECK: pcmpeqw %xmm5, %xmm5 + pcmpeqw %xmm5,%xmm5 + +// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %mm3 + pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqd 69, %mm3 + pcmpeqd 0x45,%mm3 + +// CHECK: pcmpeqd 32493, %mm3 + pcmpeqd 0x7eed,%mm3 + +// CHECK: pcmpeqd 3133065982, %mm3 + pcmpeqd 0xbabecafe,%mm3 + +// CHECK: pcmpeqd 305419896, %mm3 + pcmpeqd 0x12345678,%mm3 + +// CHECK: pcmpeqd %mm3, %mm3 + pcmpeqd %mm3,%mm3 + +// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %xmm5 + pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqd 69, %xmm5 + pcmpeqd 0x45,%xmm5 + +// CHECK: pcmpeqd 32493, %xmm5 + pcmpeqd 0x7eed,%xmm5 + +// CHECK: pcmpeqd 3133065982, %xmm5 + pcmpeqd 0xbabecafe,%xmm5 + +// CHECK: pcmpeqd 305419896, %xmm5 + pcmpeqd 0x12345678,%xmm5 + +// CHECK: pcmpeqd %xmm5, %xmm5 + pcmpeqd %xmm5,%xmm5 + +// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %mm3 + pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtb 69, %mm3 + pcmpgtb 0x45,%mm3 + +// CHECK: pcmpgtb 32493, %mm3 + pcmpgtb 0x7eed,%mm3 + +// CHECK: pcmpgtb 3133065982, %mm3 + pcmpgtb 0xbabecafe,%mm3 + +// CHECK: pcmpgtb 305419896, %mm3 + pcmpgtb 0x12345678,%mm3 + +// CHECK: pcmpgtb %mm3, %mm3 + pcmpgtb %mm3,%mm3 + +// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %xmm5 + pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtb 69, %xmm5 + pcmpgtb 0x45,%xmm5 + +// CHECK: pcmpgtb 32493, %xmm5 + pcmpgtb 0x7eed,%xmm5 + +// CHECK: pcmpgtb 3133065982, %xmm5 + pcmpgtb 0xbabecafe,%xmm5 + +// CHECK: pcmpgtb 305419896, %xmm5 + pcmpgtb 0x12345678,%xmm5 + +// CHECK: pcmpgtb %xmm5, %xmm5 + pcmpgtb %xmm5,%xmm5 + +// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %mm3 + pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtw 69, %mm3 + pcmpgtw 0x45,%mm3 + +// CHECK: pcmpgtw 32493, %mm3 + pcmpgtw 0x7eed,%mm3 + +// CHECK: pcmpgtw 3133065982, %mm3 + pcmpgtw 0xbabecafe,%mm3 + +// CHECK: pcmpgtw 305419896, %mm3 + pcmpgtw 0x12345678,%mm3 + +// CHECK: pcmpgtw %mm3, %mm3 + pcmpgtw %mm3,%mm3 + +// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %xmm5 + pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtw 69, %xmm5 + pcmpgtw 0x45,%xmm5 + +// CHECK: pcmpgtw 32493, %xmm5 + pcmpgtw 0x7eed,%xmm5 + +// CHECK: pcmpgtw 3133065982, %xmm5 + pcmpgtw 0xbabecafe,%xmm5 + +// CHECK: pcmpgtw 305419896, %xmm5 + pcmpgtw 0x12345678,%xmm5 + +// CHECK: pcmpgtw %xmm5, %xmm5 + pcmpgtw %xmm5,%xmm5 + +// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %mm3 + pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtd 69, %mm3 + pcmpgtd 0x45,%mm3 + +// CHECK: pcmpgtd 32493, %mm3 + pcmpgtd 0x7eed,%mm3 + +// CHECK: pcmpgtd 3133065982, %mm3 + pcmpgtd 0xbabecafe,%mm3 + +// CHECK: pcmpgtd 305419896, %mm3 + pcmpgtd 0x12345678,%mm3 + +// CHECK: pcmpgtd %mm3, %mm3 + pcmpgtd %mm3,%mm3 + +// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %xmm5 + pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtd 69, %xmm5 + pcmpgtd 0x45,%xmm5 + +// CHECK: pcmpgtd 32493, %xmm5 + pcmpgtd 0x7eed,%xmm5 + +// CHECK: pcmpgtd 3133065982, %xmm5 + pcmpgtd 0xbabecafe,%xmm5 + +// CHECK: pcmpgtd 305419896, %xmm5 + pcmpgtd 0x12345678,%xmm5 + +// CHECK: pcmpgtd %xmm5, %xmm5 + pcmpgtd %xmm5,%xmm5 + +// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %mm3 + pmaddwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaddwd 69, %mm3 + pmaddwd 0x45,%mm3 + +// CHECK: pmaddwd 32493, %mm3 + pmaddwd 0x7eed,%mm3 + +// CHECK: pmaddwd 3133065982, %mm3 + pmaddwd 0xbabecafe,%mm3 + +// CHECK: pmaddwd 305419896, %mm3 + pmaddwd 0x12345678,%mm3 + +// CHECK: pmaddwd %mm3, %mm3 + pmaddwd %mm3,%mm3 + +// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %xmm5 + pmaddwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaddwd 69, %xmm5 + pmaddwd 0x45,%xmm5 + +// CHECK: pmaddwd 32493, %xmm5 + pmaddwd 0x7eed,%xmm5 + +// CHECK: pmaddwd 3133065982, %xmm5 + pmaddwd 0xbabecafe,%xmm5 + +// CHECK: pmaddwd 305419896, %xmm5 + pmaddwd 0x12345678,%xmm5 + +// CHECK: pmaddwd %xmm5, %xmm5 + pmaddwd %xmm5,%xmm5 + +// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %mm3 + pmulhw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhw 69, %mm3 + pmulhw 0x45,%mm3 + +// CHECK: pmulhw 32493, %mm3 + pmulhw 0x7eed,%mm3 + +// CHECK: pmulhw 3133065982, %mm3 + pmulhw 0xbabecafe,%mm3 + +// CHECK: pmulhw 305419896, %mm3 + pmulhw 0x12345678,%mm3 + +// CHECK: pmulhw %mm3, %mm3 + pmulhw %mm3,%mm3 + +// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %xmm5 + pmulhw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhw 69, %xmm5 + pmulhw 0x45,%xmm5 + +// CHECK: pmulhw 32493, %xmm5 + pmulhw 0x7eed,%xmm5 + +// CHECK: pmulhw 3133065982, %xmm5 + pmulhw 0xbabecafe,%xmm5 + +// CHECK: pmulhw 305419896, %xmm5 + pmulhw 0x12345678,%xmm5 + +// CHECK: pmulhw %xmm5, %xmm5 + pmulhw %xmm5,%xmm5 + +// CHECK: pmullw 3735928559(%ebx,%ecx,8), %mm3 + pmullw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmullw 69, %mm3 + pmullw 0x45,%mm3 + +// CHECK: pmullw 32493, %mm3 + pmullw 0x7eed,%mm3 + +// CHECK: pmullw 3133065982, %mm3 + pmullw 0xbabecafe,%mm3 + +// CHECK: pmullw 305419896, %mm3 + pmullw 0x12345678,%mm3 + +// CHECK: pmullw %mm3, %mm3 + pmullw %mm3,%mm3 + +// CHECK: pmullw 3735928559(%ebx,%ecx,8), %xmm5 + pmullw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmullw 69, %xmm5 + pmullw 0x45,%xmm5 + +// CHECK: pmullw 32493, %xmm5 + pmullw 0x7eed,%xmm5 + +// CHECK: pmullw 3133065982, %xmm5 + pmullw 0xbabecafe,%xmm5 + +// CHECK: pmullw 305419896, %xmm5 + pmullw 0x12345678,%xmm5 + +// CHECK: pmullw %xmm5, %xmm5 + pmullw %xmm5,%xmm5 + +// CHECK: por 3735928559(%ebx,%ecx,8), %mm3 + por 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: por 69, %mm3 + por 0x45,%mm3 + +// CHECK: por 32493, %mm3 + por 0x7eed,%mm3 + +// CHECK: por 3133065982, %mm3 + por 0xbabecafe,%mm3 + +// CHECK: por 305419896, %mm3 + por 0x12345678,%mm3 + +// CHECK: por %mm3, %mm3 + por %mm3,%mm3 + +// CHECK: por 3735928559(%ebx,%ecx,8), %xmm5 + por 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: por 69, %xmm5 + por 0x45,%xmm5 + +// CHECK: por 32493, %xmm5 + por 0x7eed,%xmm5 + +// CHECK: por 3133065982, %xmm5 + por 0xbabecafe,%xmm5 + +// CHECK: por 305419896, %xmm5 + por 0x12345678,%xmm5 + +// CHECK: por %xmm5, %xmm5 + por %xmm5,%xmm5 + +// CHECK: psllw 3735928559(%ebx,%ecx,8), %mm3 + psllw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psllw 69, %mm3 + psllw 0x45,%mm3 + +// CHECK: psllw 32493, %mm3 + psllw 0x7eed,%mm3 + +// CHECK: psllw 3133065982, %mm3 + psllw 0xbabecafe,%mm3 + +// CHECK: psllw 305419896, %mm3 + psllw 0x12345678,%mm3 + +// CHECK: psllw %mm3, %mm3 + psllw %mm3,%mm3 + +// CHECK: psllw 3735928559(%ebx,%ecx,8), %xmm5 + psllw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psllw 69, %xmm5 + psllw 0x45,%xmm5 + +// CHECK: psllw 32493, %xmm5 + psllw 0x7eed,%xmm5 + +// CHECK: psllw 3133065982, %xmm5 + psllw 0xbabecafe,%xmm5 + +// CHECK: psllw 305419896, %xmm5 + psllw 0x12345678,%xmm5 + +// CHECK: psllw %xmm5, %xmm5 + psllw %xmm5,%xmm5 + +// CHECK: psllw $127, %mm3 + psllw $0x7f,%mm3 + +// CHECK: psllw $127, %xmm5 + psllw $0x7f,%xmm5 + +// CHECK: pslld 3735928559(%ebx,%ecx,8), %mm3 + pslld 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pslld 69, %mm3 + pslld 0x45,%mm3 + +// CHECK: pslld 32493, %mm3 + pslld 0x7eed,%mm3 + +// CHECK: pslld 3133065982, %mm3 + pslld 0xbabecafe,%mm3 + +// CHECK: pslld 305419896, %mm3 + pslld 0x12345678,%mm3 + +// CHECK: pslld %mm3, %mm3 + pslld %mm3,%mm3 + +// CHECK: pslld 3735928559(%ebx,%ecx,8), %xmm5 + pslld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pslld 69, %xmm5 + pslld 0x45,%xmm5 + +// CHECK: pslld 32493, %xmm5 + pslld 0x7eed,%xmm5 + +// CHECK: pslld 3133065982, %xmm5 + pslld 0xbabecafe,%xmm5 + +// CHECK: pslld 305419896, %xmm5 + pslld 0x12345678,%xmm5 + +// CHECK: pslld %xmm5, %xmm5 + pslld %xmm5,%xmm5 + +// CHECK: pslld $127, %mm3 + pslld $0x7f,%mm3 + +// CHECK: pslld $127, %xmm5 + pslld $0x7f,%xmm5 + +// CHECK: psllq 3735928559(%ebx,%ecx,8), %mm3 + psllq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psllq 69, %mm3 + psllq 0x45,%mm3 + +// CHECK: psllq 32493, %mm3 + psllq 0x7eed,%mm3 + +// CHECK: psllq 3133065982, %mm3 + psllq 0xbabecafe,%mm3 + +// CHECK: psllq 305419896, %mm3 + psllq 0x12345678,%mm3 + +// CHECK: psllq %mm3, %mm3 + psllq %mm3,%mm3 + +// CHECK: psllq 3735928559(%ebx,%ecx,8), %xmm5 + psllq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psllq 69, %xmm5 + psllq 0x45,%xmm5 + +// CHECK: psllq 32493, %xmm5 + psllq 0x7eed,%xmm5 + +// CHECK: psllq 3133065982, %xmm5 + psllq 0xbabecafe,%xmm5 + +// CHECK: psllq 305419896, %xmm5 + psllq 0x12345678,%xmm5 + +// CHECK: psllq %xmm5, %xmm5 + psllq %xmm5,%xmm5 + +// CHECK: psllq $127, %mm3 + psllq $0x7f,%mm3 + +// CHECK: psllq $127, %xmm5 + psllq $0x7f,%xmm5 + +// CHECK: psraw 3735928559(%ebx,%ecx,8), %mm3 + psraw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psraw 69, %mm3 + psraw 0x45,%mm3 + +// CHECK: psraw 32493, %mm3 + psraw 0x7eed,%mm3 + +// CHECK: psraw 3133065982, %mm3 + psraw 0xbabecafe,%mm3 + +// CHECK: psraw 305419896, %mm3 + psraw 0x12345678,%mm3 + +// CHECK: psraw %mm3, %mm3 + psraw %mm3,%mm3 + +// CHECK: psraw 3735928559(%ebx,%ecx,8), %xmm5 + psraw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psraw 69, %xmm5 + psraw 0x45,%xmm5 + +// CHECK: psraw 32493, %xmm5 + psraw 0x7eed,%xmm5 + +// CHECK: psraw 3133065982, %xmm5 + psraw 0xbabecafe,%xmm5 + +// CHECK: psraw 305419896, %xmm5 + psraw 0x12345678,%xmm5 + +// CHECK: psraw %xmm5, %xmm5 + psraw %xmm5,%xmm5 + +// CHECK: psraw $127, %mm3 + psraw $0x7f,%mm3 + +// CHECK: psraw $127, %xmm5 + psraw $0x7f,%xmm5 + +// CHECK: psrad 3735928559(%ebx,%ecx,8), %mm3 + psrad 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrad 69, %mm3 + psrad 0x45,%mm3 + +// CHECK: psrad 32493, %mm3 + psrad 0x7eed,%mm3 + +// CHECK: psrad 3133065982, %mm3 + psrad 0xbabecafe,%mm3 + +// CHECK: psrad 305419896, %mm3 + psrad 0x12345678,%mm3 + +// CHECK: psrad %mm3, %mm3 + psrad %mm3,%mm3 + +// CHECK: psrad 3735928559(%ebx,%ecx,8), %xmm5 + psrad 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrad 69, %xmm5 + psrad 0x45,%xmm5 + +// CHECK: psrad 32493, %xmm5 + psrad 0x7eed,%xmm5 + +// CHECK: psrad 3133065982, %xmm5 + psrad 0xbabecafe,%xmm5 + +// CHECK: psrad 305419896, %xmm5 + psrad 0x12345678,%xmm5 + +// CHECK: psrad %xmm5, %xmm5 + psrad %xmm5,%xmm5 + +// CHECK: psrad $127, %mm3 + psrad $0x7f,%mm3 + +// CHECK: psrad $127, %xmm5 + psrad $0x7f,%xmm5 + +// CHECK: psrlw 3735928559(%ebx,%ecx,8), %mm3 + psrlw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrlw 69, %mm3 + psrlw 0x45,%mm3 + +// CHECK: psrlw 32493, %mm3 + psrlw 0x7eed,%mm3 + +// CHECK: psrlw 3133065982, %mm3 + psrlw 0xbabecafe,%mm3 + +// CHECK: psrlw 305419896, %mm3 + psrlw 0x12345678,%mm3 + +// CHECK: psrlw %mm3, %mm3 + psrlw %mm3,%mm3 + +// CHECK: psrlw 3735928559(%ebx,%ecx,8), %xmm5 + psrlw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrlw 69, %xmm5 + psrlw 0x45,%xmm5 + +// CHECK: psrlw 32493, %xmm5 + psrlw 0x7eed,%xmm5 + +// CHECK: psrlw 3133065982, %xmm5 + psrlw 0xbabecafe,%xmm5 + +// CHECK: psrlw 305419896, %xmm5 + psrlw 0x12345678,%xmm5 + +// CHECK: psrlw %xmm5, %xmm5 + psrlw %xmm5,%xmm5 + +// CHECK: psrlw $127, %mm3 + psrlw $0x7f,%mm3 + +// CHECK: psrlw $127, %xmm5 + psrlw $0x7f,%xmm5 + +// CHECK: psrld 3735928559(%ebx,%ecx,8), %mm3 + psrld 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrld 69, %mm3 + psrld 0x45,%mm3 + +// CHECK: psrld 32493, %mm3 + psrld 0x7eed,%mm3 + +// CHECK: psrld 3133065982, %mm3 + psrld 0xbabecafe,%mm3 + +// CHECK: psrld 305419896, %mm3 + psrld 0x12345678,%mm3 + +// CHECK: psrld %mm3, %mm3 + psrld %mm3,%mm3 + +// CHECK: psrld 3735928559(%ebx,%ecx,8), %xmm5 + psrld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrld 69, %xmm5 + psrld 0x45,%xmm5 + +// CHECK: psrld 32493, %xmm5 + psrld 0x7eed,%xmm5 + +// CHECK: psrld 3133065982, %xmm5 + psrld 0xbabecafe,%xmm5 + +// CHECK: psrld 305419896, %xmm5 + psrld 0x12345678,%xmm5 + +// CHECK: psrld %xmm5, %xmm5 + psrld %xmm5,%xmm5 + +// CHECK: psrld $127, %mm3 + psrld $0x7f,%mm3 + +// CHECK: psrld $127, %xmm5 + psrld $0x7f,%xmm5 + +// CHECK: psrlq 3735928559(%ebx,%ecx,8), %mm3 + psrlq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrlq 69, %mm3 + psrlq 0x45,%mm3 + +// CHECK: psrlq 32493, %mm3 + psrlq 0x7eed,%mm3 + +// CHECK: psrlq 3133065982, %mm3 + psrlq 0xbabecafe,%mm3 + +// CHECK: psrlq 305419896, %mm3 + psrlq 0x12345678,%mm3 + +// CHECK: psrlq %mm3, %mm3 + psrlq %mm3,%mm3 + +// CHECK: psrlq 3735928559(%ebx,%ecx,8), %xmm5 + psrlq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrlq 69, %xmm5 + psrlq 0x45,%xmm5 + +// CHECK: psrlq 32493, %xmm5 + psrlq 0x7eed,%xmm5 + +// CHECK: psrlq 3133065982, %xmm5 + psrlq 0xbabecafe,%xmm5 + +// CHECK: psrlq 305419896, %xmm5 + psrlq 0x12345678,%xmm5 + +// CHECK: psrlq %xmm5, %xmm5 + psrlq %xmm5,%xmm5 + +// CHECK: psrlq $127, %mm3 + psrlq $0x7f,%mm3 + +// CHECK: psrlq $127, %xmm5 + psrlq $0x7f,%xmm5 + +// CHECK: psubb 3735928559(%ebx,%ecx,8), %mm3 + psubb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubb 69, %mm3 + psubb 0x45,%mm3 + +// CHECK: psubb 32493, %mm3 + psubb 0x7eed,%mm3 + +// CHECK: psubb 3133065982, %mm3 + psubb 0xbabecafe,%mm3 + +// CHECK: psubb 305419896, %mm3 + psubb 0x12345678,%mm3 + +// CHECK: psubb %mm3, %mm3 + psubb %mm3,%mm3 + +// CHECK: psubb 3735928559(%ebx,%ecx,8), %xmm5 + psubb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubb 69, %xmm5 + psubb 0x45,%xmm5 + +// CHECK: psubb 32493, %xmm5 + psubb 0x7eed,%xmm5 + +// CHECK: psubb 3133065982, %xmm5 + psubb 0xbabecafe,%xmm5 + +// CHECK: psubb 305419896, %xmm5 + psubb 0x12345678,%xmm5 + +// CHECK: psubb %xmm5, %xmm5 + psubb %xmm5,%xmm5 + +// CHECK: psubw 3735928559(%ebx,%ecx,8), %mm3 + psubw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubw 69, %mm3 + psubw 0x45,%mm3 + +// CHECK: psubw 32493, %mm3 + psubw 0x7eed,%mm3 + +// CHECK: psubw 3133065982, %mm3 + psubw 0xbabecafe,%mm3 + +// CHECK: psubw 305419896, %mm3 + psubw 0x12345678,%mm3 + +// CHECK: psubw %mm3, %mm3 + psubw %mm3,%mm3 + +// CHECK: psubw 3735928559(%ebx,%ecx,8), %xmm5 + psubw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubw 69, %xmm5 + psubw 0x45,%xmm5 + +// CHECK: psubw 32493, %xmm5 + psubw 0x7eed,%xmm5 + +// CHECK: psubw 3133065982, %xmm5 + psubw 0xbabecafe,%xmm5 + +// CHECK: psubw 305419896, %xmm5 + psubw 0x12345678,%xmm5 + +// CHECK: psubw %xmm5, %xmm5 + psubw %xmm5,%xmm5 + +// CHECK: psubd 3735928559(%ebx,%ecx,8), %mm3 + psubd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubd 69, %mm3 + psubd 0x45,%mm3 + +// CHECK: psubd 32493, %mm3 + psubd 0x7eed,%mm3 + +// CHECK: psubd 3133065982, %mm3 + psubd 0xbabecafe,%mm3 + +// CHECK: psubd 305419896, %mm3 + psubd 0x12345678,%mm3 + +// CHECK: psubd %mm3, %mm3 + psubd %mm3,%mm3 + +// CHECK: psubd 3735928559(%ebx,%ecx,8), %xmm5 + psubd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubd 69, %xmm5 + psubd 0x45,%xmm5 + +// CHECK: psubd 32493, %xmm5 + psubd 0x7eed,%xmm5 + +// CHECK: psubd 3133065982, %xmm5 + psubd 0xbabecafe,%xmm5 + +// CHECK: psubd 305419896, %xmm5 + psubd 0x12345678,%xmm5 + +// CHECK: psubd %xmm5, %xmm5 + psubd %xmm5,%xmm5 + +// CHECK: psubq 3735928559(%ebx,%ecx,8), %mm3 + psubq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubq 69, %mm3 + psubq 0x45,%mm3 + +// CHECK: psubq 32493, %mm3 + psubq 0x7eed,%mm3 + +// CHECK: psubq 3133065982, %mm3 + psubq 0xbabecafe,%mm3 + +// CHECK: psubq 305419896, %mm3 + psubq 0x12345678,%mm3 + +// CHECK: psubq %mm3, %mm3 + psubq %mm3,%mm3 + +// CHECK: psubq 3735928559(%ebx,%ecx,8), %xmm5 + psubq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubq 69, %xmm5 + psubq 0x45,%xmm5 + +// CHECK: psubq 32493, %xmm5 + psubq 0x7eed,%xmm5 + +// CHECK: psubq 3133065982, %xmm5 + psubq 0xbabecafe,%xmm5 + +// CHECK: psubq 305419896, %xmm5 + psubq 0x12345678,%xmm5 + +// CHECK: psubq %xmm5, %xmm5 + psubq %xmm5,%xmm5 + +// CHECK: psubsb 3735928559(%ebx,%ecx,8), %mm3 + psubsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubsb 69, %mm3 + psubsb 0x45,%mm3 + +// CHECK: psubsb 32493, %mm3 + psubsb 0x7eed,%mm3 + +// CHECK: psubsb 3133065982, %mm3 + psubsb 0xbabecafe,%mm3 + +// CHECK: psubsb 305419896, %mm3 + psubsb 0x12345678,%mm3 + +// CHECK: psubsb %mm3, %mm3 + psubsb %mm3,%mm3 + +// CHECK: psubsb 3735928559(%ebx,%ecx,8), %xmm5 + psubsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubsb 69, %xmm5 + psubsb 0x45,%xmm5 + +// CHECK: psubsb 32493, %xmm5 + psubsb 0x7eed,%xmm5 + +// CHECK: psubsb 3133065982, %xmm5 + psubsb 0xbabecafe,%xmm5 + +// CHECK: psubsb 305419896, %xmm5 + psubsb 0x12345678,%xmm5 + +// CHECK: psubsb %xmm5, %xmm5 + psubsb %xmm5,%xmm5 + +// CHECK: psubsw 3735928559(%ebx,%ecx,8), %mm3 + psubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubsw 69, %mm3 + psubsw 0x45,%mm3 + +// CHECK: psubsw 32493, %mm3 + psubsw 0x7eed,%mm3 + +// CHECK: psubsw 3133065982, %mm3 + psubsw 0xbabecafe,%mm3 + +// CHECK: psubsw 305419896, %mm3 + psubsw 0x12345678,%mm3 + +// CHECK: psubsw %mm3, %mm3 + psubsw %mm3,%mm3 + +// CHECK: psubsw 3735928559(%ebx,%ecx,8), %xmm5 + psubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubsw 69, %xmm5 + psubsw 0x45,%xmm5 + +// CHECK: psubsw 32493, %xmm5 + psubsw 0x7eed,%xmm5 + +// CHECK: psubsw 3133065982, %xmm5 + psubsw 0xbabecafe,%xmm5 + +// CHECK: psubsw 305419896, %xmm5 + psubsw 0x12345678,%xmm5 + +// CHECK: psubsw %xmm5, %xmm5 + psubsw %xmm5,%xmm5 + +// CHECK: psubusb 3735928559(%ebx,%ecx,8), %mm3 + psubusb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubusb 69, %mm3 + psubusb 0x45,%mm3 + +// CHECK: psubusb 32493, %mm3 + psubusb 0x7eed,%mm3 + +// CHECK: psubusb 3133065982, %mm3 + psubusb 0xbabecafe,%mm3 + +// CHECK: psubusb 305419896, %mm3 + psubusb 0x12345678,%mm3 + +// CHECK: psubusb %mm3, %mm3 + psubusb %mm3,%mm3 + +// CHECK: psubusb 3735928559(%ebx,%ecx,8), %xmm5 + psubusb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubusb 69, %xmm5 + psubusb 0x45,%xmm5 + +// CHECK: psubusb 32493, %xmm5 + psubusb 0x7eed,%xmm5 + +// CHECK: psubusb 3133065982, %xmm5 + psubusb 0xbabecafe,%xmm5 + +// CHECK: psubusb 305419896, %xmm5 + psubusb 0x12345678,%xmm5 + +// CHECK: psubusb %xmm5, %xmm5 + psubusb %xmm5,%xmm5 + +// CHECK: psubusw 3735928559(%ebx,%ecx,8), %mm3 + psubusw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubusw 69, %mm3 + psubusw 0x45,%mm3 + +// CHECK: psubusw 32493, %mm3 + psubusw 0x7eed,%mm3 + +// CHECK: psubusw 3133065982, %mm3 + psubusw 0xbabecafe,%mm3 + +// CHECK: psubusw 305419896, %mm3 + psubusw 0x12345678,%mm3 + +// CHECK: psubusw %mm3, %mm3 + psubusw %mm3,%mm3 + +// CHECK: psubusw 3735928559(%ebx,%ecx,8), %xmm5 + psubusw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubusw 69, %xmm5 + psubusw 0x45,%xmm5 + +// CHECK: psubusw 32493, %xmm5 + psubusw 0x7eed,%xmm5 + +// CHECK: psubusw 3133065982, %xmm5 + psubusw 0xbabecafe,%xmm5 + +// CHECK: psubusw 305419896, %xmm5 + psubusw 0x12345678,%xmm5 + +// CHECK: psubusw %xmm5, %xmm5 + psubusw %xmm5,%xmm5 + +// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %mm3 + punpckhbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhbw 69, %mm3 + punpckhbw 0x45,%mm3 + +// CHECK: punpckhbw 32493, %mm3 + punpckhbw 0x7eed,%mm3 + +// CHECK: punpckhbw 3133065982, %mm3 + punpckhbw 0xbabecafe,%mm3 + +// CHECK: punpckhbw 305419896, %mm3 + punpckhbw 0x12345678,%mm3 + +// CHECK: punpckhbw %mm3, %mm3 + punpckhbw %mm3,%mm3 + +// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %xmm5 + punpckhbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhbw 69, %xmm5 + punpckhbw 0x45,%xmm5 + +// CHECK: punpckhbw 32493, %xmm5 + punpckhbw 0x7eed,%xmm5 + +// CHECK: punpckhbw 3133065982, %xmm5 + punpckhbw 0xbabecafe,%xmm5 + +// CHECK: punpckhbw 305419896, %xmm5 + punpckhbw 0x12345678,%xmm5 + +// CHECK: punpckhbw %xmm5, %xmm5 + punpckhbw %xmm5,%xmm5 + +// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %mm3 + punpckhwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhwd 69, %mm3 + punpckhwd 0x45,%mm3 + +// CHECK: punpckhwd 32493, %mm3 + punpckhwd 0x7eed,%mm3 + +// CHECK: punpckhwd 3133065982, %mm3 + punpckhwd 0xbabecafe,%mm3 + +// CHECK: punpckhwd 305419896, %mm3 + punpckhwd 0x12345678,%mm3 + +// CHECK: punpckhwd %mm3, %mm3 + punpckhwd %mm3,%mm3 + +// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %xmm5 + punpckhwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhwd 69, %xmm5 + punpckhwd 0x45,%xmm5 + +// CHECK: punpckhwd 32493, %xmm5 + punpckhwd 0x7eed,%xmm5 + +// CHECK: punpckhwd 3133065982, %xmm5 + punpckhwd 0xbabecafe,%xmm5 + +// CHECK: punpckhwd 305419896, %xmm5 + punpckhwd 0x12345678,%xmm5 + +// CHECK: punpckhwd %xmm5, %xmm5 + punpckhwd %xmm5,%xmm5 + +// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %mm3 + punpckhdq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhdq 69, %mm3 + punpckhdq 0x45,%mm3 + +// CHECK: punpckhdq 32493, %mm3 + punpckhdq 0x7eed,%mm3 + +// CHECK: punpckhdq 3133065982, %mm3 + punpckhdq 0xbabecafe,%mm3 + +// CHECK: punpckhdq 305419896, %mm3 + punpckhdq 0x12345678,%mm3 + +// CHECK: punpckhdq %mm3, %mm3 + punpckhdq %mm3,%mm3 + +// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %xmm5 + punpckhdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhdq 69, %xmm5 + punpckhdq 0x45,%xmm5 + +// CHECK: punpckhdq 32493, %xmm5 + punpckhdq 0x7eed,%xmm5 + +// CHECK: punpckhdq 3133065982, %xmm5 + punpckhdq 0xbabecafe,%xmm5 + +// CHECK: punpckhdq 305419896, %xmm5 + punpckhdq 0x12345678,%xmm5 + +// CHECK: punpckhdq %xmm5, %xmm5 + punpckhdq %xmm5,%xmm5 + +// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %mm3 + punpcklbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpcklbw 69, %mm3 + punpcklbw 0x45,%mm3 + +// CHECK: punpcklbw 32493, %mm3 + punpcklbw 0x7eed,%mm3 + +// CHECK: punpcklbw 3133065982, %mm3 + punpcklbw 0xbabecafe,%mm3 + +// CHECK: punpcklbw 305419896, %mm3 + punpcklbw 0x12345678,%mm3 + +// CHECK: punpcklbw %mm3, %mm3 + punpcklbw %mm3,%mm3 + +// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %xmm5 + punpcklbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklbw 69, %xmm5 + punpcklbw 0x45,%xmm5 + +// CHECK: punpcklbw 32493, %xmm5 + punpcklbw 0x7eed,%xmm5 + +// CHECK: punpcklbw 3133065982, %xmm5 + punpcklbw 0xbabecafe,%xmm5 + +// CHECK: punpcklbw 305419896, %xmm5 + punpcklbw 0x12345678,%xmm5 + +// CHECK: punpcklbw %xmm5, %xmm5 + punpcklbw %xmm5,%xmm5 + +// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %mm3 + punpcklwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpcklwd 69, %mm3 + punpcklwd 0x45,%mm3 + +// CHECK: punpcklwd 32493, %mm3 + punpcklwd 0x7eed,%mm3 + +// CHECK: punpcklwd 3133065982, %mm3 + punpcklwd 0xbabecafe,%mm3 + +// CHECK: punpcklwd 305419896, %mm3 + punpcklwd 0x12345678,%mm3 + +// CHECK: punpcklwd %mm3, %mm3 + punpcklwd %mm3,%mm3 + +// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %xmm5 + punpcklwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklwd 69, %xmm5 + punpcklwd 0x45,%xmm5 + +// CHECK: punpcklwd 32493, %xmm5 + punpcklwd 0x7eed,%xmm5 + +// CHECK: punpcklwd 3133065982, %xmm5 + punpcklwd 0xbabecafe,%xmm5 + +// CHECK: punpcklwd 305419896, %xmm5 + punpcklwd 0x12345678,%xmm5 + +// CHECK: punpcklwd %xmm5, %xmm5 + punpcklwd %xmm5,%xmm5 + +// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %mm3 + punpckldq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckldq 69, %mm3 + punpckldq 0x45,%mm3 + +// CHECK: punpckldq 32493, %mm3 + punpckldq 0x7eed,%mm3 + +// CHECK: punpckldq 3133065982, %mm3 + punpckldq 0xbabecafe,%mm3 + +// CHECK: punpckldq 305419896, %mm3 + punpckldq 0x12345678,%mm3 + +// CHECK: punpckldq %mm3, %mm3 + punpckldq %mm3,%mm3 + +// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %xmm5 + punpckldq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckldq 69, %xmm5 + punpckldq 0x45,%xmm5 + +// CHECK: punpckldq 32493, %xmm5 + punpckldq 0x7eed,%xmm5 + +// CHECK: punpckldq 3133065982, %xmm5 + punpckldq 0xbabecafe,%xmm5 + +// CHECK: punpckldq 305419896, %xmm5 + punpckldq 0x12345678,%xmm5 + +// CHECK: punpckldq %xmm5, %xmm5 + punpckldq %xmm5,%xmm5 + +// CHECK: pxor 3735928559(%ebx,%ecx,8), %mm3 + pxor 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pxor 69, %mm3 + pxor 0x45,%mm3 + +// CHECK: pxor 32493, %mm3 + pxor 0x7eed,%mm3 + +// CHECK: pxor 3133065982, %mm3 + pxor 0xbabecafe,%mm3 + +// CHECK: pxor 305419896, %mm3 + pxor 0x12345678,%mm3 + +// CHECK: pxor %mm3, %mm3 + pxor %mm3,%mm3 + +// CHECK: pxor 3735928559(%ebx,%ecx,8), %xmm5 + pxor 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pxor 69, %xmm5 + pxor 0x45,%xmm5 + +// CHECK: pxor 32493, %xmm5 + pxor 0x7eed,%xmm5 + +// CHECK: pxor 3133065982, %xmm5 + pxor 0xbabecafe,%xmm5 + +// CHECK: pxor 305419896, %xmm5 + pxor 0x12345678,%xmm5 + +// CHECK: pxor %xmm5, %xmm5 + pxor %xmm5,%xmm5 + +// CHECK: addps 3735928559(%ebx,%ecx,8), %xmm5 + addps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addps 69, %xmm5 + addps 0x45,%xmm5 + +// CHECK: addps 32493, %xmm5 + addps 0x7eed,%xmm5 + +// CHECK: addps 3133065982, %xmm5 + addps 0xbabecafe,%xmm5 + +// CHECK: addps 305419896, %xmm5 + addps 0x12345678,%xmm5 + +// CHECK: addps %xmm5, %xmm5 + addps %xmm5,%xmm5 + +// CHECK: addss 3735928559(%ebx,%ecx,8), %xmm5 + addss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addss 69, %xmm5 + addss 0x45,%xmm5 + +// CHECK: addss 32493, %xmm5 + addss 0x7eed,%xmm5 + +// CHECK: addss 3133065982, %xmm5 + addss 0xbabecafe,%xmm5 + +// CHECK: addss 305419896, %xmm5 + addss 0x12345678,%xmm5 + +// CHECK: addss %xmm5, %xmm5 + addss %xmm5,%xmm5 + +// CHECK: andnps 3735928559(%ebx,%ecx,8), %xmm5 + andnps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andnps 69, %xmm5 + andnps 0x45,%xmm5 + +// CHECK: andnps 32493, %xmm5 + andnps 0x7eed,%xmm5 + +// CHECK: andnps 3133065982, %xmm5 + andnps 0xbabecafe,%xmm5 + +// CHECK: andnps 305419896, %xmm5 + andnps 0x12345678,%xmm5 + +// CHECK: andnps %xmm5, %xmm5 + andnps %xmm5,%xmm5 + +// CHECK: andps 3735928559(%ebx,%ecx,8), %xmm5 + andps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andps 69, %xmm5 + andps 0x45,%xmm5 + +// CHECK: andps 32493, %xmm5 + andps 0x7eed,%xmm5 + +// CHECK: andps 3133065982, %xmm5 + andps 0xbabecafe,%xmm5 + +// CHECK: andps 305419896, %xmm5 + andps 0x12345678,%xmm5 + +// CHECK: andps %xmm5, %xmm5 + andps %xmm5,%xmm5 + +// CHECK: comiss 3735928559(%ebx,%ecx,8), %xmm5 + comiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: comiss 69, %xmm5 + comiss 0x45,%xmm5 + +// CHECK: comiss 32493, %xmm5 + comiss 0x7eed,%xmm5 + +// CHECK: comiss 3133065982, %xmm5 + comiss 0xbabecafe,%xmm5 + +// CHECK: comiss 305419896, %xmm5 + comiss 0x12345678,%xmm5 + +// CHECK: comiss %xmm5, %xmm5 + comiss %xmm5,%xmm5 + +// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5 + cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2ps 69, %xmm5 + cvtpi2ps 0x45,%xmm5 + +// CHECK: cvtpi2ps 32493, %xmm5 + cvtpi2ps 0x7eed,%xmm5 + +// CHECK: cvtpi2ps 3133065982, %xmm5 + cvtpi2ps 0xbabecafe,%xmm5 + +// CHECK: cvtpi2ps 305419896, %xmm5 + cvtpi2ps 0x12345678,%xmm5 + +// CHECK: cvtpi2ps %mm3, %xmm5 + cvtpi2ps %mm3,%xmm5 + +// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3 + cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtps2pi 69, %mm3 + cvtps2pi 0x45,%mm3 + +// CHECK: cvtps2pi 32493, %mm3 + cvtps2pi 0x7eed,%mm3 + +// CHECK: cvtps2pi 3133065982, %mm3 + cvtps2pi 0xbabecafe,%mm3 + +// CHECK: cvtps2pi 305419896, %mm3 + cvtps2pi 0x12345678,%mm3 + +// CHECK: cvtps2pi %xmm5, %mm3 + cvtps2pi %xmm5,%mm3 + +// CHECK: cvtsi2ss %ecx, %xmm5 + cvtsi2ss %ecx,%xmm5 + +// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5 + cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsi2ss 69, %xmm5 + cvtsi2ss 0x45,%xmm5 + +// CHECK: cvtsi2ss 32493, %xmm5 + cvtsi2ss 0x7eed,%xmm5 + +// CHECK: cvtsi2ss 3133065982, %xmm5 + cvtsi2ss 0xbabecafe,%xmm5 + +// CHECK: cvtsi2ss 305419896, %xmm5 + cvtsi2ss 0x12345678,%xmm5 + +// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3 + cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttps2pi 69, %mm3 + cvttps2pi 0x45,%mm3 + +// CHECK: cvttps2pi 32493, %mm3 + cvttps2pi 0x7eed,%mm3 + +// CHECK: cvttps2pi 3133065982, %mm3 + cvttps2pi 0xbabecafe,%mm3 + +// CHECK: cvttps2pi 305419896, %mm3 + cvttps2pi 0x12345678,%mm3 + +// CHECK: cvttps2pi %xmm5, %mm3 + cvttps2pi %xmm5,%mm3 + +// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx + cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttss2si 69, %ecx + cvttss2si 0x45,%ecx + +// CHECK: cvttss2si 32493, %ecx + cvttss2si 0x7eed,%ecx + +// CHECK: cvttss2si 3133065982, %ecx + cvttss2si 0xbabecafe,%ecx + +// CHECK: cvttss2si 305419896, %ecx + cvttss2si 0x12345678,%ecx + +// CHECK: cvttss2si %xmm5, %ecx + cvttss2si %xmm5,%ecx + +// CHECK: divps 3735928559(%ebx,%ecx,8), %xmm5 + divps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divps 69, %xmm5 + divps 0x45,%xmm5 + +// CHECK: divps 32493, %xmm5 + divps 0x7eed,%xmm5 + +// CHECK: divps 3133065982, %xmm5 + divps 0xbabecafe,%xmm5 + +// CHECK: divps 305419896, %xmm5 + divps 0x12345678,%xmm5 + +// CHECK: divps %xmm5, %xmm5 + divps %xmm5,%xmm5 + +// CHECK: divss 3735928559(%ebx,%ecx,8), %xmm5 + divss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divss 69, %xmm5 + divss 0x45,%xmm5 + +// CHECK: divss 32493, %xmm5 + divss 0x7eed,%xmm5 + +// CHECK: divss 3133065982, %xmm5 + divss 0xbabecafe,%xmm5 + +// CHECK: divss 305419896, %xmm5 + divss 0x12345678,%xmm5 + +// CHECK: divss %xmm5, %xmm5 + divss %xmm5,%xmm5 + +// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8) + ldmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ldmxcsr 32493 + ldmxcsr 0x7eed + +// CHECK: ldmxcsr 3133065982 + ldmxcsr 0xbabecafe + +// CHECK: ldmxcsr 305419896 + ldmxcsr 0x12345678 + +// CHECK: maskmovq %mm3, %mm3 + maskmovq %mm3,%mm3 + +// CHECK: maxps 3735928559(%ebx,%ecx,8), %xmm5 + maxps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxps 69, %xmm5 + maxps 0x45,%xmm5 + +// CHECK: maxps 32493, %xmm5 + maxps 0x7eed,%xmm5 + +// CHECK: maxps 3133065982, %xmm5 + maxps 0xbabecafe,%xmm5 + +// CHECK: maxps 305419896, %xmm5 + maxps 0x12345678,%xmm5 + +// CHECK: maxps %xmm5, %xmm5 + maxps %xmm5,%xmm5 + +// CHECK: maxss 3735928559(%ebx,%ecx,8), %xmm5 + maxss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxss 69, %xmm5 + maxss 0x45,%xmm5 + +// CHECK: maxss 32493, %xmm5 + maxss 0x7eed,%xmm5 + +// CHECK: maxss 3133065982, %xmm5 + maxss 0xbabecafe,%xmm5 + +// CHECK: maxss 305419896, %xmm5 + maxss 0x12345678,%xmm5 + +// CHECK: maxss %xmm5, %xmm5 + maxss %xmm5,%xmm5 + +// CHECK: minps 3735928559(%ebx,%ecx,8), %xmm5 + minps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minps 69, %xmm5 + minps 0x45,%xmm5 + +// CHECK: minps 32493, %xmm5 + minps 0x7eed,%xmm5 + +// CHECK: minps 3133065982, %xmm5 + minps 0xbabecafe,%xmm5 + +// CHECK: minps 305419896, %xmm5 + minps 0x12345678,%xmm5 + +// CHECK: minps %xmm5, %xmm5 + minps %xmm5,%xmm5 + +// CHECK: minss 3735928559(%ebx,%ecx,8), %xmm5 + minss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minss 69, %xmm5 + minss 0x45,%xmm5 + +// CHECK: minss 32493, %xmm5 + minss 0x7eed,%xmm5 + +// CHECK: minss 3133065982, %xmm5 + minss 0xbabecafe,%xmm5 + +// CHECK: minss 305419896, %xmm5 + minss 0x12345678,%xmm5 + +// CHECK: minss %xmm5, %xmm5 + minss %xmm5,%xmm5 + +// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5 + movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movaps 69, %xmm5 + movaps 0x45,%xmm5 + +// CHECK: movaps 32493, %xmm5 + movaps 0x7eed,%xmm5 + +// CHECK: movaps 3133065982, %xmm5 + movaps 0xbabecafe,%xmm5 + +// CHECK: movaps 305419896, %xmm5 + movaps 0x12345678,%xmm5 + +// CHECK: movaps %xmm5, %xmm5 + movaps %xmm5,%xmm5 + +// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8) + movaps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movaps %xmm5, 69 + movaps %xmm5,0x45 + +// CHECK: movaps %xmm5, 32493 + movaps %xmm5,0x7eed + +// CHECK: movaps %xmm5, 3133065982 + movaps %xmm5,0xbabecafe + +// CHECK: movaps %xmm5, 305419896 + movaps %xmm5,0x12345678 + +// CHECK: movaps %xmm5, %xmm5 + movaps %xmm5,%xmm5 + +// CHECK: movhlps %xmm5, %xmm5 + movhlps %xmm5,%xmm5 + +// CHECK: movhps 3735928559(%ebx,%ecx,8), %xmm5 + movhps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movhps 69, %xmm5 + movhps 0x45,%xmm5 + +// CHECK: movhps 32493, %xmm5 + movhps 0x7eed,%xmm5 + +// CHECK: movhps 3133065982, %xmm5 + movhps 0xbabecafe,%xmm5 + +// CHECK: movhps 305419896, %xmm5 + movhps 0x12345678,%xmm5 + +// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8) + movhps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movhps %xmm5, 69 + movhps %xmm5,0x45 + +// CHECK: movhps %xmm5, 32493 + movhps %xmm5,0x7eed + +// CHECK: movhps %xmm5, 3133065982 + movhps %xmm5,0xbabecafe + +// CHECK: movhps %xmm5, 305419896 + movhps %xmm5,0x12345678 + +// CHECK: movlhps %xmm5, %xmm5 + movlhps %xmm5,%xmm5 + +// CHECK: movlps 3735928559(%ebx,%ecx,8), %xmm5 + movlps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movlps 69, %xmm5 + movlps 0x45,%xmm5 + +// CHECK: movlps 32493, %xmm5 + movlps 0x7eed,%xmm5 + +// CHECK: movlps 3133065982, %xmm5 + movlps 0xbabecafe,%xmm5 + +// CHECK: movlps 305419896, %xmm5 + movlps 0x12345678,%xmm5 + +// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8) + movlps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlps %xmm5, 69 + movlps %xmm5,0x45 + +// CHECK: movlps %xmm5, 32493 + movlps %xmm5,0x7eed + +// CHECK: movlps %xmm5, 3133065982 + movlps %xmm5,0xbabecafe + +// CHECK: movlps %xmm5, 305419896 + movlps %xmm5,0x12345678 + +// CHECK: movmskps %xmm5, %ecx + movmskps %xmm5,%ecx + +// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8) + movntps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntps %xmm5, 69 + movntps %xmm5,0x45 + +// CHECK: movntps %xmm5, 32493 + movntps %xmm5,0x7eed + +// CHECK: movntps %xmm5, 3133065982 + movntps %xmm5,0xbabecafe + +// CHECK: movntps %xmm5, 305419896 + movntps %xmm5,0x12345678 + +// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8) + movntq %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntq %mm3, 69 + movntq %mm3,0x45 + +// CHECK: movntq %mm3, 32493 + movntq %mm3,0x7eed + +// CHECK: movntq %mm3, 3133065982 + movntq %mm3,0xbabecafe + +// CHECK: movntq %mm3, 305419896 + movntq %mm3,0x12345678 + +// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8) + movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntdq %xmm5, 69 + movntdq %xmm5,0x45 + +// CHECK: movntdq %xmm5, 32493 + movntdq %xmm5,0x7eed + +// CHECK: movntdq %xmm5, 3133065982 + movntdq %xmm5,0xbabecafe + +// CHECK: movntdq %xmm5, 305419896 + movntdq %xmm5,0x12345678 + +// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5 + movss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movss 69, %xmm5 + movss 0x45,%xmm5 + +// CHECK: movss 32493, %xmm5 + movss 0x7eed,%xmm5 + +// CHECK: movss 3133065982, %xmm5 + movss 0xbabecafe,%xmm5 + +// CHECK: movss 305419896, %xmm5 + movss 0x12345678,%xmm5 + +// CHECK: movss %xmm5, %xmm5 + movss %xmm5,%xmm5 + +// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8) + movss %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movss %xmm5, 69 + movss %xmm5,0x45 + +// CHECK: movss %xmm5, 32493 + movss %xmm5,0x7eed + +// CHECK: movss %xmm5, 3133065982 + movss %xmm5,0xbabecafe + +// CHECK: movss %xmm5, 305419896 + movss %xmm5,0x12345678 + +// CHECK: movss %xmm5, %xmm5 + movss %xmm5,%xmm5 + +// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5 + movups 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movups 69, %xmm5 + movups 0x45,%xmm5 + +// CHECK: movups 32493, %xmm5 + movups 0x7eed,%xmm5 + +// CHECK: movups 3133065982, %xmm5 + movups 0xbabecafe,%xmm5 + +// CHECK: movups 305419896, %xmm5 + movups 0x12345678,%xmm5 + +// CHECK: movups %xmm5, %xmm5 + movups %xmm5,%xmm5 + +// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8) + movups %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movups %xmm5, 69 + movups %xmm5,0x45 + +// CHECK: movups %xmm5, 32493 + movups %xmm5,0x7eed + +// CHECK: movups %xmm5, 3133065982 + movups %xmm5,0xbabecafe + +// CHECK: movups %xmm5, 305419896 + movups %xmm5,0x12345678 + +// CHECK: movups %xmm5, %xmm5 + movups %xmm5,%xmm5 + +// CHECK: mulps 3735928559(%ebx,%ecx,8), %xmm5 + mulps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulps 69, %xmm5 + mulps 0x45,%xmm5 + +// CHECK: mulps 32493, %xmm5 + mulps 0x7eed,%xmm5 + +// CHECK: mulps 3133065982, %xmm5 + mulps 0xbabecafe,%xmm5 + +// CHECK: mulps 305419896, %xmm5 + mulps 0x12345678,%xmm5 + +// CHECK: mulps %xmm5, %xmm5 + mulps %xmm5,%xmm5 + +// CHECK: mulss 3735928559(%ebx,%ecx,8), %xmm5 + mulss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulss 69, %xmm5 + mulss 0x45,%xmm5 + +// CHECK: mulss 32493, %xmm5 + mulss 0x7eed,%xmm5 + +// CHECK: mulss 3133065982, %xmm5 + mulss 0xbabecafe,%xmm5 + +// CHECK: mulss 305419896, %xmm5 + mulss 0x12345678,%xmm5 + +// CHECK: mulss %xmm5, %xmm5 + mulss %xmm5,%xmm5 + +// CHECK: orps 3735928559(%ebx,%ecx,8), %xmm5 + orps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: orps 69, %xmm5 + orps 0x45,%xmm5 + +// CHECK: orps 32493, %xmm5 + orps 0x7eed,%xmm5 + +// CHECK: orps 3133065982, %xmm5 + orps 0xbabecafe,%xmm5 + +// CHECK: orps 305419896, %xmm5 + orps 0x12345678,%xmm5 + +// CHECK: orps %xmm5, %xmm5 + orps %xmm5,%xmm5 + +// CHECK: pavgb 3735928559(%ebx,%ecx,8), %mm3 + pavgb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pavgb 69, %mm3 + pavgb 0x45,%mm3 + +// CHECK: pavgb 32493, %mm3 + pavgb 0x7eed,%mm3 + +// CHECK: pavgb 3133065982, %mm3 + pavgb 0xbabecafe,%mm3 + +// CHECK: pavgb 305419896, %mm3 + pavgb 0x12345678,%mm3 + +// CHECK: pavgb %mm3, %mm3 + pavgb %mm3,%mm3 + +// CHECK: pavgb 3735928559(%ebx,%ecx,8), %xmm5 + pavgb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pavgb 69, %xmm5 + pavgb 0x45,%xmm5 + +// CHECK: pavgb 32493, %xmm5 + pavgb 0x7eed,%xmm5 + +// CHECK: pavgb 3133065982, %xmm5 + pavgb 0xbabecafe,%xmm5 + +// CHECK: pavgb 305419896, %xmm5 + pavgb 0x12345678,%xmm5 + +// CHECK: pavgb %xmm5, %xmm5 + pavgb %xmm5,%xmm5 + +// CHECK: pavgw 3735928559(%ebx,%ecx,8), %mm3 + pavgw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pavgw 69, %mm3 + pavgw 0x45,%mm3 + +// CHECK: pavgw 32493, %mm3 + pavgw 0x7eed,%mm3 + +// CHECK: pavgw 3133065982, %mm3 + pavgw 0xbabecafe,%mm3 + +// CHECK: pavgw 305419896, %mm3 + pavgw 0x12345678,%mm3 + +// CHECK: pavgw %mm3, %mm3 + pavgw %mm3,%mm3 + +// CHECK: pavgw 3735928559(%ebx,%ecx,8), %xmm5 + pavgw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pavgw 69, %xmm5 + pavgw 0x45,%xmm5 + +// CHECK: pavgw 32493, %xmm5 + pavgw 0x7eed,%xmm5 + +// CHECK: pavgw 3133065982, %xmm5 + pavgw 0xbabecafe,%xmm5 + +// CHECK: pavgw 305419896, %xmm5 + pavgw 0x12345678,%xmm5 + +// CHECK: pavgw %xmm5, %xmm5 + pavgw %xmm5,%xmm5 + +// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %mm3 + pmaxsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaxsw 69, %mm3 + pmaxsw 0x45,%mm3 + +// CHECK: pmaxsw 32493, %mm3 + pmaxsw 0x7eed,%mm3 + +// CHECK: pmaxsw 3133065982, %mm3 + pmaxsw 0xbabecafe,%mm3 + +// CHECK: pmaxsw 305419896, %mm3 + pmaxsw 0x12345678,%mm3 + +// CHECK: pmaxsw %mm3, %mm3 + pmaxsw %mm3,%mm3 + +// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %xmm5 + pmaxsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsw 69, %xmm5 + pmaxsw 0x45,%xmm5 + +// CHECK: pmaxsw 32493, %xmm5 + pmaxsw 0x7eed,%xmm5 + +// CHECK: pmaxsw 3133065982, %xmm5 + pmaxsw 0xbabecafe,%xmm5 + +// CHECK: pmaxsw 305419896, %xmm5 + pmaxsw 0x12345678,%xmm5 + +// CHECK: pmaxsw %xmm5, %xmm5 + pmaxsw %xmm5,%xmm5 + +// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %mm3 + pmaxub 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaxub 69, %mm3 + pmaxub 0x45,%mm3 + +// CHECK: pmaxub 32493, %mm3 + pmaxub 0x7eed,%mm3 + +// CHECK: pmaxub 3133065982, %mm3 + pmaxub 0xbabecafe,%mm3 + +// CHECK: pmaxub 305419896, %mm3 + pmaxub 0x12345678,%mm3 + +// CHECK: pmaxub %mm3, %mm3 + pmaxub %mm3,%mm3 + +// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %xmm5 + pmaxub 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxub 69, %xmm5 + pmaxub 0x45,%xmm5 + +// CHECK: pmaxub 32493, %xmm5 + pmaxub 0x7eed,%xmm5 + +// CHECK: pmaxub 3133065982, %xmm5 + pmaxub 0xbabecafe,%xmm5 + +// CHECK: pmaxub 305419896, %xmm5 + pmaxub 0x12345678,%xmm5 + +// CHECK: pmaxub %xmm5, %xmm5 + pmaxub %xmm5,%xmm5 + +// CHECK: pminsw 3735928559(%ebx,%ecx,8), %mm3 + pminsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pminsw 69, %mm3 + pminsw 0x45,%mm3 + +// CHECK: pminsw 32493, %mm3 + pminsw 0x7eed,%mm3 + +// CHECK: pminsw 3133065982, %mm3 + pminsw 0xbabecafe,%mm3 + +// CHECK: pminsw 305419896, %mm3 + pminsw 0x12345678,%mm3 + +// CHECK: pminsw %mm3, %mm3 + pminsw %mm3,%mm3 + +// CHECK: pminsw 3735928559(%ebx,%ecx,8), %xmm5 + pminsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsw 69, %xmm5 + pminsw 0x45,%xmm5 + +// CHECK: pminsw 32493, %xmm5 + pminsw 0x7eed,%xmm5 + +// CHECK: pminsw 3133065982, %xmm5 + pminsw 0xbabecafe,%xmm5 + +// CHECK: pminsw 305419896, %xmm5 + pminsw 0x12345678,%xmm5 + +// CHECK: pminsw %xmm5, %xmm5 + pminsw %xmm5,%xmm5 + +// CHECK: pminub 3735928559(%ebx,%ecx,8), %mm3 + pminub 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pminub 69, %mm3 + pminub 0x45,%mm3 + +// CHECK: pminub 32493, %mm3 + pminub 0x7eed,%mm3 + +// CHECK: pminub 3133065982, %mm3 + pminub 0xbabecafe,%mm3 + +// CHECK: pminub 305419896, %mm3 + pminub 0x12345678,%mm3 + +// CHECK: pminub %mm3, %mm3 + pminub %mm3,%mm3 + +// CHECK: pminub 3735928559(%ebx,%ecx,8), %xmm5 + pminub 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminub 69, %xmm5 + pminub 0x45,%xmm5 + +// CHECK: pminub 32493, %xmm5 + pminub 0x7eed,%xmm5 + +// CHECK: pminub 3133065982, %xmm5 + pminub 0xbabecafe,%xmm5 + +// CHECK: pminub 305419896, %xmm5 + pminub 0x12345678,%xmm5 + +// CHECK: pminub %xmm5, %xmm5 + pminub %xmm5,%xmm5 + +// CHECK: pmovmskb %mm3, %ecx + pmovmskb %mm3,%ecx + +// CHECK: pmovmskb %xmm5, %ecx + pmovmskb %xmm5,%ecx + +// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %mm3 + pmulhuw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhuw 69, %mm3 + pmulhuw 0x45,%mm3 + +// CHECK: pmulhuw 32493, %mm3 + pmulhuw 0x7eed,%mm3 + +// CHECK: pmulhuw 3133065982, %mm3 + pmulhuw 0xbabecafe,%mm3 + +// CHECK: pmulhuw 305419896, %mm3 + pmulhuw 0x12345678,%mm3 + +// CHECK: pmulhuw %mm3, %mm3 + pmulhuw %mm3,%mm3 + +// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %xmm5 + pmulhuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhuw 69, %xmm5 + pmulhuw 0x45,%xmm5 + +// CHECK: pmulhuw 32493, %xmm5 + pmulhuw 0x7eed,%xmm5 + +// CHECK: pmulhuw 3133065982, %xmm5 + pmulhuw 0xbabecafe,%xmm5 + +// CHECK: pmulhuw 305419896, %xmm5 + pmulhuw 0x12345678,%xmm5 + +// CHECK: pmulhuw %xmm5, %xmm5 + pmulhuw %xmm5,%xmm5 + +// CHECK: prefetchnta 3735928559(%ebx,%ecx,8) + prefetchnta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetchnta 32493 + prefetchnta 0x7eed + +// CHECK: prefetchnta 3133065982 + prefetchnta 0xbabecafe + +// CHECK: prefetchnta 305419896 + prefetchnta 0x12345678 + +// CHECK: prefetcht0 3735928559(%ebx,%ecx,8) + prefetcht0 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht0 32493 + prefetcht0 0x7eed + +// CHECK: prefetcht0 3133065982 + prefetcht0 0xbabecafe + +// CHECK: prefetcht0 305419896 + prefetcht0 0x12345678 + +// CHECK: prefetcht1 3735928559(%ebx,%ecx,8) + prefetcht1 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht1 32493 + prefetcht1 0x7eed + +// CHECK: prefetcht1 3133065982 + prefetcht1 0xbabecafe + +// CHECK: prefetcht1 305419896 + prefetcht1 0x12345678 + +// CHECK: prefetcht2 3735928559(%ebx,%ecx,8) + prefetcht2 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht2 32493 + prefetcht2 0x7eed + +// CHECK: prefetcht2 3133065982 + prefetcht2 0xbabecafe + +// CHECK: prefetcht2 305419896 + prefetcht2 0x12345678 + +// CHECK: psadbw 3735928559(%ebx,%ecx,8), %mm3 + psadbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psadbw 69, %mm3 + psadbw 0x45,%mm3 + +// CHECK: psadbw 32493, %mm3 + psadbw 0x7eed,%mm3 + +// CHECK: psadbw 3133065982, %mm3 + psadbw 0xbabecafe,%mm3 + +// CHECK: psadbw 305419896, %mm3 + psadbw 0x12345678,%mm3 + +// CHECK: psadbw %mm3, %mm3 + psadbw %mm3,%mm3 + +// CHECK: psadbw 3735928559(%ebx,%ecx,8), %xmm5 + psadbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psadbw 69, %xmm5 + psadbw 0x45,%xmm5 + +// CHECK: psadbw 32493, %xmm5 + psadbw 0x7eed,%xmm5 + +// CHECK: psadbw 3133065982, %xmm5 + psadbw 0xbabecafe,%xmm5 + +// CHECK: psadbw 305419896, %xmm5 + psadbw 0x12345678,%xmm5 + +// CHECK: psadbw %xmm5, %xmm5 + psadbw %xmm5,%xmm5 + +// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5 + rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpps 69, %xmm5 + rcpps 0x45,%xmm5 + +// CHECK: rcpps 32493, %xmm5 + rcpps 0x7eed,%xmm5 + +// CHECK: rcpps 3133065982, %xmm5 + rcpps 0xbabecafe,%xmm5 + +// CHECK: rcpps 305419896, %xmm5 + rcpps 0x12345678,%xmm5 + +// CHECK: rcpps %xmm5, %xmm5 + rcpps %xmm5,%xmm5 + +// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5 + rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpss 69, %xmm5 + rcpss 0x45,%xmm5 + +// CHECK: rcpss 32493, %xmm5 + rcpss 0x7eed,%xmm5 + +// CHECK: rcpss 3133065982, %xmm5 + rcpss 0xbabecafe,%xmm5 + +// CHECK: rcpss 305419896, %xmm5 + rcpss 0x12345678,%xmm5 + +// CHECK: rcpss %xmm5, %xmm5 + rcpss %xmm5,%xmm5 + +// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5 + rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtps 69, %xmm5 + rsqrtps 0x45,%xmm5 + +// CHECK: rsqrtps 32493, %xmm5 + rsqrtps 0x7eed,%xmm5 + +// CHECK: rsqrtps 3133065982, %xmm5 + rsqrtps 0xbabecafe,%xmm5 + +// CHECK: rsqrtps 305419896, %xmm5 + rsqrtps 0x12345678,%xmm5 + +// CHECK: rsqrtps %xmm5, %xmm5 + rsqrtps %xmm5,%xmm5 + +// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5 + rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtss 69, %xmm5 + rsqrtss 0x45,%xmm5 + +// CHECK: rsqrtss 32493, %xmm5 + rsqrtss 0x7eed,%xmm5 + +// CHECK: rsqrtss 3133065982, %xmm5 + rsqrtss 0xbabecafe,%xmm5 + +// CHECK: rsqrtss 305419896, %xmm5 + rsqrtss 0x12345678,%xmm5 + +// CHECK: rsqrtss %xmm5, %xmm5 + rsqrtss %xmm5,%xmm5 + +// CHECK: sfence + sfence + +// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5 + sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtps 69, %xmm5 + sqrtps 0x45,%xmm5 + +// CHECK: sqrtps 32493, %xmm5 + sqrtps 0x7eed,%xmm5 + +// CHECK: sqrtps 3133065982, %xmm5 + sqrtps 0xbabecafe,%xmm5 + +// CHECK: sqrtps 305419896, %xmm5 + sqrtps 0x12345678,%xmm5 + +// CHECK: sqrtps %xmm5, %xmm5 + sqrtps %xmm5,%xmm5 + +// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5 + sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtss 69, %xmm5 + sqrtss 0x45,%xmm5 + +// CHECK: sqrtss 32493, %xmm5 + sqrtss 0x7eed,%xmm5 + +// CHECK: sqrtss 3133065982, %xmm5 + sqrtss 0xbabecafe,%xmm5 + +// CHECK: sqrtss 305419896, %xmm5 + sqrtss 0x12345678,%xmm5 + +// CHECK: sqrtss %xmm5, %xmm5 + sqrtss %xmm5,%xmm5 + +// CHECK: stmxcsr 3735928559(%ebx,%ecx,8) + stmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: stmxcsr 32493 + stmxcsr 0x7eed + +// CHECK: stmxcsr 3133065982 + stmxcsr 0xbabecafe + +// CHECK: stmxcsr 305419896 + stmxcsr 0x12345678 + +// CHECK: subps 3735928559(%ebx,%ecx,8), %xmm5 + subps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subps 69, %xmm5 + subps 0x45,%xmm5 + +// CHECK: subps 32493, %xmm5 + subps 0x7eed,%xmm5 + +// CHECK: subps 3133065982, %xmm5 + subps 0xbabecafe,%xmm5 + +// CHECK: subps 305419896, %xmm5 + subps 0x12345678,%xmm5 + +// CHECK: subps %xmm5, %xmm5 + subps %xmm5,%xmm5 + +// CHECK: subss 3735928559(%ebx,%ecx,8), %xmm5 + subss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subss 69, %xmm5 + subss 0x45,%xmm5 + +// CHECK: subss 32493, %xmm5 + subss 0x7eed,%xmm5 + +// CHECK: subss 3133065982, %xmm5 + subss 0xbabecafe,%xmm5 + +// CHECK: subss 305419896, %xmm5 + subss 0x12345678,%xmm5 + +// CHECK: subss %xmm5, %xmm5 + subss %xmm5,%xmm5 + +// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5 + ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomiss 69, %xmm5 + ucomiss 0x45,%xmm5 + +// CHECK: ucomiss 32493, %xmm5 + ucomiss 0x7eed,%xmm5 + +// CHECK: ucomiss 3133065982, %xmm5 + ucomiss 0xbabecafe,%xmm5 + +// CHECK: ucomiss 305419896, %xmm5 + ucomiss 0x12345678,%xmm5 + +// CHECK: ucomiss %xmm5, %xmm5 + ucomiss %xmm5,%xmm5 + +// CHECK: unpckhps 3735928559(%ebx,%ecx,8), %xmm5 + unpckhps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpckhps 69, %xmm5 + unpckhps 0x45,%xmm5 + +// CHECK: unpckhps 32493, %xmm5 + unpckhps 0x7eed,%xmm5 + +// CHECK: unpckhps 3133065982, %xmm5 + unpckhps 0xbabecafe,%xmm5 + +// CHECK: unpckhps 305419896, %xmm5 + unpckhps 0x12345678,%xmm5 + +// CHECK: unpckhps %xmm5, %xmm5 + unpckhps %xmm5,%xmm5 + +// CHECK: unpcklps 3735928559(%ebx,%ecx,8), %xmm5 + unpcklps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpcklps 69, %xmm5 + unpcklps 0x45,%xmm5 + +// CHECK: unpcklps 32493, %xmm5 + unpcklps 0x7eed,%xmm5 + +// CHECK: unpcklps 3133065982, %xmm5 + unpcklps 0xbabecafe,%xmm5 + +// CHECK: unpcklps 305419896, %xmm5 + unpcklps 0x12345678,%xmm5 + +// CHECK: unpcklps %xmm5, %xmm5 + unpcklps %xmm5,%xmm5 + +// CHECK: xorps 3735928559(%ebx,%ecx,8), %xmm5 + xorps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: xorps 69, %xmm5 + xorps 0x45,%xmm5 + +// CHECK: xorps 32493, %xmm5 + xorps 0x7eed,%xmm5 + +// CHECK: xorps 3133065982, %xmm5 + xorps 0xbabecafe,%xmm5 + +// CHECK: xorps 305419896, %xmm5 + xorps 0x12345678,%xmm5 + +// CHECK: xorps %xmm5, %xmm5 + xorps %xmm5,%xmm5 + +// CHECK: addpd 3735928559(%ebx,%ecx,8), %xmm5 + addpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addpd 69, %xmm5 + addpd 0x45,%xmm5 + +// CHECK: addpd 32493, %xmm5 + addpd 0x7eed,%xmm5 + +// CHECK: addpd 3133065982, %xmm5 + addpd 0xbabecafe,%xmm5 + +// CHECK: addpd 305419896, %xmm5 + addpd 0x12345678,%xmm5 + +// CHECK: addpd %xmm5, %xmm5 + addpd %xmm5,%xmm5 + +// CHECK: addsd 3735928559(%ebx,%ecx,8), %xmm5 + addsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsd 69, %xmm5 + addsd 0x45,%xmm5 + +// CHECK: addsd 32493, %xmm5 + addsd 0x7eed,%xmm5 + +// CHECK: addsd 3133065982, %xmm5 + addsd 0xbabecafe,%xmm5 + +// CHECK: addsd 305419896, %xmm5 + addsd 0x12345678,%xmm5 + +// CHECK: addsd %xmm5, %xmm5 + addsd %xmm5,%xmm5 + +// CHECK: andnpd 3735928559(%ebx,%ecx,8), %xmm5 + andnpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andnpd 69, %xmm5 + andnpd 0x45,%xmm5 + +// CHECK: andnpd 32493, %xmm5 + andnpd 0x7eed,%xmm5 + +// CHECK: andnpd 3133065982, %xmm5 + andnpd 0xbabecafe,%xmm5 + +// CHECK: andnpd 305419896, %xmm5 + andnpd 0x12345678,%xmm5 + +// CHECK: andnpd %xmm5, %xmm5 + andnpd %xmm5,%xmm5 + +// CHECK: andpd 3735928559(%ebx,%ecx,8), %xmm5 + andpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andpd 69, %xmm5 + andpd 0x45,%xmm5 + +// CHECK: andpd 32493, %xmm5 + andpd 0x7eed,%xmm5 + +// CHECK: andpd 3133065982, %xmm5 + andpd 0xbabecafe,%xmm5 + +// CHECK: andpd 305419896, %xmm5 + andpd 0x12345678,%xmm5 + +// CHECK: andpd %xmm5, %xmm5 + andpd %xmm5,%xmm5 + +// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5 + comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: comisd 69, %xmm5 + comisd 0x45,%xmm5 + +// CHECK: comisd 32493, %xmm5 + comisd 0x7eed,%xmm5 + +// CHECK: comisd 3133065982, %xmm5 + comisd 0xbabecafe,%xmm5 + +// CHECK: comisd 305419896, %xmm5 + comisd 0x12345678,%xmm5 + +// CHECK: comisd %xmm5, %xmm5 + comisd %xmm5,%xmm5 + +// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5 + cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2pd 69, %xmm5 + cvtpi2pd 0x45,%xmm5 + +// CHECK: cvtpi2pd 32493, %xmm5 + cvtpi2pd 0x7eed,%xmm5 + +// CHECK: cvtpi2pd 3133065982, %xmm5 + cvtpi2pd 0xbabecafe,%xmm5 + +// CHECK: cvtpi2pd 305419896, %xmm5 + cvtpi2pd 0x12345678,%xmm5 + +// CHECK: cvtpi2pd %mm3, %xmm5 + cvtpi2pd %mm3,%xmm5 + +// CHECK: cvtsi2sd %ecx, %xmm5 + cvtsi2sd %ecx,%xmm5 + +// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5 + cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsi2sd 69, %xmm5 + cvtsi2sd 0x45,%xmm5 + +// CHECK: cvtsi2sd 32493, %xmm5 + cvtsi2sd 0x7eed,%xmm5 + +// CHECK: cvtsi2sd 3133065982, %xmm5 + cvtsi2sd 0xbabecafe,%xmm5 + +// CHECK: cvtsi2sd 305419896, %xmm5 + cvtsi2sd 0x12345678,%xmm5 + +// CHECK: divpd 3735928559(%ebx,%ecx,8), %xmm5 + divpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divpd 69, %xmm5 + divpd 0x45,%xmm5 + +// CHECK: divpd 32493, %xmm5 + divpd 0x7eed,%xmm5 + +// CHECK: divpd 3133065982, %xmm5 + divpd 0xbabecafe,%xmm5 + +// CHECK: divpd 305419896, %xmm5 + divpd 0x12345678,%xmm5 + +// CHECK: divpd %xmm5, %xmm5 + divpd %xmm5,%xmm5 + +// CHECK: divsd 3735928559(%ebx,%ecx,8), %xmm5 + divsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divsd 69, %xmm5 + divsd 0x45,%xmm5 + +// CHECK: divsd 32493, %xmm5 + divsd 0x7eed,%xmm5 + +// CHECK: divsd 3133065982, %xmm5 + divsd 0xbabecafe,%xmm5 + +// CHECK: divsd 305419896, %xmm5 + divsd 0x12345678,%xmm5 + +// CHECK: divsd %xmm5, %xmm5 + divsd %xmm5,%xmm5 + +// CHECK: maxpd 3735928559(%ebx,%ecx,8), %xmm5 + maxpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxpd 69, %xmm5 + maxpd 0x45,%xmm5 + +// CHECK: maxpd 32493, %xmm5 + maxpd 0x7eed,%xmm5 + +// CHECK: maxpd 3133065982, %xmm5 + maxpd 0xbabecafe,%xmm5 + +// CHECK: maxpd 305419896, %xmm5 + maxpd 0x12345678,%xmm5 + +// CHECK: maxpd %xmm5, %xmm5 + maxpd %xmm5,%xmm5 + +// CHECK: maxsd 3735928559(%ebx,%ecx,8), %xmm5 + maxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxsd 69, %xmm5 + maxsd 0x45,%xmm5 + +// CHECK: maxsd 32493, %xmm5 + maxsd 0x7eed,%xmm5 + +// CHECK: maxsd 3133065982, %xmm5 + maxsd 0xbabecafe,%xmm5 + +// CHECK: maxsd 305419896, %xmm5 + maxsd 0x12345678,%xmm5 + +// CHECK: maxsd %xmm5, %xmm5 + maxsd %xmm5,%xmm5 + +// CHECK: minpd 3735928559(%ebx,%ecx,8), %xmm5 + minpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minpd 69, %xmm5 + minpd 0x45,%xmm5 + +// CHECK: minpd 32493, %xmm5 + minpd 0x7eed,%xmm5 + +// CHECK: minpd 3133065982, %xmm5 + minpd 0xbabecafe,%xmm5 + +// CHECK: minpd 305419896, %xmm5 + minpd 0x12345678,%xmm5 + +// CHECK: minpd %xmm5, %xmm5 + minpd %xmm5,%xmm5 + +// CHECK: minsd 3735928559(%ebx,%ecx,8), %xmm5 + minsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minsd 69, %xmm5 + minsd 0x45,%xmm5 + +// CHECK: minsd 32493, %xmm5 + minsd 0x7eed,%xmm5 + +// CHECK: minsd 3133065982, %xmm5 + minsd 0xbabecafe,%xmm5 + +// CHECK: minsd 305419896, %xmm5 + minsd 0x12345678,%xmm5 + +// CHECK: minsd %xmm5, %xmm5 + minsd %xmm5,%xmm5 + +// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5 + movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movapd 69, %xmm5 + movapd 0x45,%xmm5 + +// CHECK: movapd 32493, %xmm5 + movapd 0x7eed,%xmm5 + +// CHECK: movapd 3133065982, %xmm5 + movapd 0xbabecafe,%xmm5 + +// CHECK: movapd 305419896, %xmm5 + movapd 0x12345678,%xmm5 + +// CHECK: movapd %xmm5, %xmm5 + movapd %xmm5,%xmm5 + +// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8) + movapd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movapd %xmm5, 69 + movapd %xmm5,0x45 + +// CHECK: movapd %xmm5, 32493 + movapd %xmm5,0x7eed + +// CHECK: movapd %xmm5, 3133065982 + movapd %xmm5,0xbabecafe + +// CHECK: movapd %xmm5, 305419896 + movapd %xmm5,0x12345678 + +// CHECK: movapd %xmm5, %xmm5 + movapd %xmm5,%xmm5 + +// CHECK: movhpd 3735928559(%ebx,%ecx,8), %xmm5 + movhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movhpd 69, %xmm5 + movhpd 0x45,%xmm5 + +// CHECK: movhpd 32493, %xmm5 + movhpd 0x7eed,%xmm5 + +// CHECK: movhpd 3133065982, %xmm5 + movhpd 0xbabecafe,%xmm5 + +// CHECK: movhpd 305419896, %xmm5 + movhpd 0x12345678,%xmm5 + +// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8) + movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movhpd %xmm5, 69 + movhpd %xmm5,0x45 + +// CHECK: movhpd %xmm5, 32493 + movhpd %xmm5,0x7eed + +// CHECK: movhpd %xmm5, 3133065982 + movhpd %xmm5,0xbabecafe + +// CHECK: movhpd %xmm5, 305419896 + movhpd %xmm5,0x12345678 + +// CHECK: movlpd 3735928559(%ebx,%ecx,8), %xmm5 + movlpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movlpd 69, %xmm5 + movlpd 0x45,%xmm5 + +// CHECK: movlpd 32493, %xmm5 + movlpd 0x7eed,%xmm5 + +// CHECK: movlpd 3133065982, %xmm5 + movlpd 0xbabecafe,%xmm5 + +// CHECK: movlpd 305419896, %xmm5 + movlpd 0x12345678,%xmm5 + +// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8) + movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlpd %xmm5, 69 + movlpd %xmm5,0x45 + +// CHECK: movlpd %xmm5, 32493 + movlpd %xmm5,0x7eed + +// CHECK: movlpd %xmm5, 3133065982 + movlpd %xmm5,0xbabecafe + +// CHECK: movlpd %xmm5, 305419896 + movlpd %xmm5,0x12345678 + +// CHECK: movmskpd %xmm5, %ecx + movmskpd %xmm5,%ecx + +// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8) + movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntpd %xmm5, 69 + movntpd %xmm5,0x45 + +// CHECK: movntpd %xmm5, 32493 + movntpd %xmm5,0x7eed + +// CHECK: movntpd %xmm5, 3133065982 + movntpd %xmm5,0xbabecafe + +// CHECK: movntpd %xmm5, 305419896 + movntpd %xmm5,0x12345678 + +// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5 + movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsd 69, %xmm5 + movsd 0x45,%xmm5 + +// CHECK: movsd 32493, %xmm5 + movsd 0x7eed,%xmm5 + +// CHECK: movsd 3133065982, %xmm5 + movsd 0xbabecafe,%xmm5 + +// CHECK: movsd 305419896, %xmm5 + movsd 0x12345678,%xmm5 + +// CHECK: movsd %xmm5, %xmm5 + movsd %xmm5,%xmm5 + +// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8) + movsd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movsd %xmm5, 69 + movsd %xmm5,0x45 + +// CHECK: movsd %xmm5, 32493 + movsd %xmm5,0x7eed + +// CHECK: movsd %xmm5, 3133065982 + movsd %xmm5,0xbabecafe + +// CHECK: movsd %xmm5, 305419896 + movsd %xmm5,0x12345678 + +// CHECK: movsd %xmm5, %xmm5 + movsd %xmm5,%xmm5 + +// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5 + movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movupd 69, %xmm5 + movupd 0x45,%xmm5 + +// CHECK: movupd 32493, %xmm5 + movupd 0x7eed,%xmm5 + +// CHECK: movupd 3133065982, %xmm5 + movupd 0xbabecafe,%xmm5 + +// CHECK: movupd 305419896, %xmm5 + movupd 0x12345678,%xmm5 + +// CHECK: movupd %xmm5, %xmm5 + movupd %xmm5,%xmm5 + +// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8) + movupd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movupd %xmm5, 69 + movupd %xmm5,0x45 + +// CHECK: movupd %xmm5, 32493 + movupd %xmm5,0x7eed + +// CHECK: movupd %xmm5, 3133065982 + movupd %xmm5,0xbabecafe + +// CHECK: movupd %xmm5, 305419896 + movupd %xmm5,0x12345678 + +// CHECK: movupd %xmm5, %xmm5 + movupd %xmm5,%xmm5 + +// CHECK: mulpd 3735928559(%ebx,%ecx,8), %xmm5 + mulpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulpd 69, %xmm5 + mulpd 0x45,%xmm5 + +// CHECK: mulpd 32493, %xmm5 + mulpd 0x7eed,%xmm5 + +// CHECK: mulpd 3133065982, %xmm5 + mulpd 0xbabecafe,%xmm5 + +// CHECK: mulpd 305419896, %xmm5 + mulpd 0x12345678,%xmm5 + +// CHECK: mulpd %xmm5, %xmm5 + mulpd %xmm5,%xmm5 + +// CHECK: mulsd 3735928559(%ebx,%ecx,8), %xmm5 + mulsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulsd 69, %xmm5 + mulsd 0x45,%xmm5 + +// CHECK: mulsd 32493, %xmm5 + mulsd 0x7eed,%xmm5 + +// CHECK: mulsd 3133065982, %xmm5 + mulsd 0xbabecafe,%xmm5 + +// CHECK: mulsd 305419896, %xmm5 + mulsd 0x12345678,%xmm5 + +// CHECK: mulsd %xmm5, %xmm5 + mulsd %xmm5,%xmm5 + +// CHECK: orpd 3735928559(%ebx,%ecx,8), %xmm5 + orpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: orpd 69, %xmm5 + orpd 0x45,%xmm5 + +// CHECK: orpd 32493, %xmm5 + orpd 0x7eed,%xmm5 + +// CHECK: orpd 3133065982, %xmm5 + orpd 0xbabecafe,%xmm5 + +// CHECK: orpd 305419896, %xmm5 + orpd 0x12345678,%xmm5 + +// CHECK: orpd %xmm5, %xmm5 + orpd %xmm5,%xmm5 + +// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5 + sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtpd 69, %xmm5 + sqrtpd 0x45,%xmm5 + +// CHECK: sqrtpd 32493, %xmm5 + sqrtpd 0x7eed,%xmm5 + +// CHECK: sqrtpd 3133065982, %xmm5 + sqrtpd 0xbabecafe,%xmm5 + +// CHECK: sqrtpd 305419896, %xmm5 + sqrtpd 0x12345678,%xmm5 + +// CHECK: sqrtpd %xmm5, %xmm5 + sqrtpd %xmm5,%xmm5 + +// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5 + sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtsd 69, %xmm5 + sqrtsd 0x45,%xmm5 + +// CHECK: sqrtsd 32493, %xmm5 + sqrtsd 0x7eed,%xmm5 + +// CHECK: sqrtsd 3133065982, %xmm5 + sqrtsd 0xbabecafe,%xmm5 + +// CHECK: sqrtsd 305419896, %xmm5 + sqrtsd 0x12345678,%xmm5 + +// CHECK: sqrtsd %xmm5, %xmm5 + sqrtsd %xmm5,%xmm5 + +// CHECK: subpd 3735928559(%ebx,%ecx,8), %xmm5 + subpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subpd 69, %xmm5 + subpd 0x45,%xmm5 + +// CHECK: subpd 32493, %xmm5 + subpd 0x7eed,%xmm5 + +// CHECK: subpd 3133065982, %xmm5 + subpd 0xbabecafe,%xmm5 + +// CHECK: subpd 305419896, %xmm5 + subpd 0x12345678,%xmm5 + +// CHECK: subpd %xmm5, %xmm5 + subpd %xmm5,%xmm5 + +// CHECK: subsd 3735928559(%ebx,%ecx,8), %xmm5 + subsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subsd 69, %xmm5 + subsd 0x45,%xmm5 + +// CHECK: subsd 32493, %xmm5 + subsd 0x7eed,%xmm5 + +// CHECK: subsd 3133065982, %xmm5 + subsd 0xbabecafe,%xmm5 + +// CHECK: subsd 305419896, %xmm5 + subsd 0x12345678,%xmm5 + +// CHECK: subsd %xmm5, %xmm5 + subsd %xmm5,%xmm5 + +// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5 + ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomisd 69, %xmm5 + ucomisd 0x45,%xmm5 + +// CHECK: ucomisd 32493, %xmm5 + ucomisd 0x7eed,%xmm5 + +// CHECK: ucomisd 3133065982, %xmm5 + ucomisd 0xbabecafe,%xmm5 + +// CHECK: ucomisd 305419896, %xmm5 + ucomisd 0x12345678,%xmm5 + +// CHECK: ucomisd %xmm5, %xmm5 + ucomisd %xmm5,%xmm5 + +// CHECK: unpckhpd 3735928559(%ebx,%ecx,8), %xmm5 + unpckhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpckhpd 69, %xmm5 + unpckhpd 0x45,%xmm5 + +// CHECK: unpckhpd 32493, %xmm5 + unpckhpd 0x7eed,%xmm5 + +// CHECK: unpckhpd 3133065982, %xmm5 + unpckhpd 0xbabecafe,%xmm5 + +// CHECK: unpckhpd 305419896, %xmm5 + unpckhpd 0x12345678,%xmm5 + +// CHECK: unpckhpd %xmm5, %xmm5 + unpckhpd %xmm5,%xmm5 + +// CHECK: unpcklpd 3735928559(%ebx,%ecx,8), %xmm5 + unpcklpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpcklpd 69, %xmm5 + unpcklpd 0x45,%xmm5 + +// CHECK: unpcklpd 32493, %xmm5 + unpcklpd 0x7eed,%xmm5 + +// CHECK: unpcklpd 3133065982, %xmm5 + unpcklpd 0xbabecafe,%xmm5 + +// CHECK: unpcklpd 305419896, %xmm5 + unpcklpd 0x12345678,%xmm5 + +// CHECK: unpcklpd %xmm5, %xmm5 + unpcklpd %xmm5,%xmm5 + +// CHECK: xorpd 3735928559(%ebx,%ecx,8), %xmm5 + xorpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: xorpd 69, %xmm5 + xorpd 0x45,%xmm5 + +// CHECK: xorpd 32493, %xmm5 + xorpd 0x7eed,%xmm5 + +// CHECK: xorpd 3133065982, %xmm5 + xorpd 0xbabecafe,%xmm5 + +// CHECK: xorpd 305419896, %xmm5 + xorpd 0x12345678,%xmm5 + +// CHECK: xorpd %xmm5, %xmm5 + xorpd %xmm5,%xmm5 + +// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5 + cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2pd 69, %xmm5 + cvtdq2pd 0x45,%xmm5 + +// CHECK: cvtdq2pd 32493, %xmm5 + cvtdq2pd 0x7eed,%xmm5 + +// CHECK: cvtdq2pd 3133065982, %xmm5 + cvtdq2pd 0xbabecafe,%xmm5 + +// CHECK: cvtdq2pd 305419896, %xmm5 + cvtdq2pd 0x12345678,%xmm5 + +// CHECK: cvtdq2pd %xmm5, %xmm5 + cvtdq2pd %xmm5,%xmm5 + +// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5 + cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpd2dq 69, %xmm5 + cvtpd2dq 0x45,%xmm5 + +// CHECK: cvtpd2dq 32493, %xmm5 + cvtpd2dq 0x7eed,%xmm5 + +// CHECK: cvtpd2dq 3133065982, %xmm5 + cvtpd2dq 0xbabecafe,%xmm5 + +// CHECK: cvtpd2dq 305419896, %xmm5 + cvtpd2dq 0x12345678,%xmm5 + +// CHECK: cvtpd2dq %xmm5, %xmm5 + cvtpd2dq %xmm5,%xmm5 + +// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5 + cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2ps 69, %xmm5 + cvtdq2ps 0x45,%xmm5 + +// CHECK: cvtdq2ps 32493, %xmm5 + cvtdq2ps 0x7eed,%xmm5 + +// CHECK: cvtdq2ps 3133065982, %xmm5 + cvtdq2ps 0xbabecafe,%xmm5 + +// CHECK: cvtdq2ps 305419896, %xmm5 + cvtdq2ps 0x12345678,%xmm5 + +// CHECK: cvtdq2ps %xmm5, %xmm5 + cvtdq2ps %xmm5,%xmm5 + +// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3 + cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtpd2pi 69, %mm3 + cvtpd2pi 0x45,%mm3 + +// CHECK: cvtpd2pi 32493, %mm3 + cvtpd2pi 0x7eed,%mm3 + +// CHECK: cvtpd2pi 3133065982, %mm3 + cvtpd2pi 0xbabecafe,%mm3 + +// CHECK: cvtpd2pi 305419896, %mm3 + cvtpd2pi 0x12345678,%mm3 + +// CHECK: cvtpd2pi %xmm5, %mm3 + cvtpd2pi %xmm5,%mm3 + +// CHECK: cvtpd2ps 3735928559(%ebx,%ecx,8), %xmm5 + cvtpd2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpd2ps 69, %xmm5 + cvtpd2ps 0x45,%xmm5 + +// CHECK: cvtpd2ps 32493, %xmm5 + cvtpd2ps 0x7eed,%xmm5 + +// CHECK: cvtpd2ps 3133065982, %xmm5 + cvtpd2ps 0xbabecafe,%xmm5 + +// CHECK: cvtpd2ps 305419896, %xmm5 + cvtpd2ps 0x12345678,%xmm5 + +// CHECK: cvtpd2ps %xmm5, %xmm5 + cvtpd2ps %xmm5,%xmm5 + +// CHECK: cvtps2pd 3735928559(%ebx,%ecx,8), %xmm5 + cvtps2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtps2pd 69, %xmm5 + cvtps2pd 0x45,%xmm5 + +// CHECK: cvtps2pd 32493, %xmm5 + cvtps2pd 0x7eed,%xmm5 + +// CHECK: cvtps2pd 3133065982, %xmm5 + cvtps2pd 0xbabecafe,%xmm5 + +// CHECK: cvtps2pd 305419896, %xmm5 + cvtps2pd 0x12345678,%xmm5 + +// CHECK: cvtps2pd %xmm5, %xmm5 + cvtps2pd %xmm5,%xmm5 + +// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5 + cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtps2dq 69, %xmm5 + cvtps2dq 0x45,%xmm5 + +// CHECK: cvtps2dq 32493, %xmm5 + cvtps2dq 0x7eed,%xmm5 + +// CHECK: cvtps2dq 3133065982, %xmm5 + cvtps2dq 0xbabecafe,%xmm5 + +// CHECK: cvtps2dq 305419896, %xmm5 + cvtps2dq 0x12345678,%xmm5 + +// CHECK: cvtps2dq %xmm5, %xmm5 + cvtps2dq %xmm5,%xmm5 + +// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5 + cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsd2ss 69, %xmm5 + cvtsd2ss 0x45,%xmm5 + +// CHECK: cvtsd2ss 32493, %xmm5 + cvtsd2ss 0x7eed,%xmm5 + +// CHECK: cvtsd2ss 3133065982, %xmm5 + cvtsd2ss 0xbabecafe,%xmm5 + +// CHECK: cvtsd2ss 305419896, %xmm5 + cvtsd2ss 0x12345678,%xmm5 + +// CHECK: cvtsd2ss %xmm5, %xmm5 + cvtsd2ss %xmm5,%xmm5 + +// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5 + cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtss2sd 69, %xmm5 + cvtss2sd 0x45,%xmm5 + +// CHECK: cvtss2sd 32493, %xmm5 + cvtss2sd 0x7eed,%xmm5 + +// CHECK: cvtss2sd 3133065982, %xmm5 + cvtss2sd 0xbabecafe,%xmm5 + +// CHECK: cvtss2sd 305419896, %xmm5 + cvtss2sd 0x12345678,%xmm5 + +// CHECK: cvtss2sd %xmm5, %xmm5 + cvtss2sd %xmm5,%xmm5 + +// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3 + cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttpd2pi 69, %mm3 + cvttpd2pi 0x45,%mm3 + +// CHECK: cvttpd2pi 32493, %mm3 + cvttpd2pi 0x7eed,%mm3 + +// CHECK: cvttpd2pi 3133065982, %mm3 + cvttpd2pi 0xbabecafe,%mm3 + +// CHECK: cvttpd2pi 305419896, %mm3 + cvttpd2pi 0x12345678,%mm3 + +// CHECK: cvttpd2pi %xmm5, %mm3 + cvttpd2pi %xmm5,%mm3 + +// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx + cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttsd2si 69, %ecx + cvttsd2si 0x45,%ecx + +// CHECK: cvttsd2si 32493, %ecx + cvttsd2si 0x7eed,%ecx + +// CHECK: cvttsd2si 3133065982, %ecx + cvttsd2si 0xbabecafe,%ecx + +// CHECK: cvttsd2si 305419896, %ecx + cvttsd2si 0x12345678,%ecx + +// CHECK: cvttsd2si %xmm5, %ecx + cvttsd2si %xmm5,%ecx + +// CHECK: cvttps2dq 3735928559(%ebx,%ecx,8), %xmm5 + cvttps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvttps2dq 69, %xmm5 + cvttps2dq 0x45,%xmm5 + +// CHECK: cvttps2dq 32493, %xmm5 + cvttps2dq 0x7eed,%xmm5 + +// CHECK: cvttps2dq 3133065982, %xmm5 + cvttps2dq 0xbabecafe,%xmm5 + +// CHECK: cvttps2dq 305419896, %xmm5 + cvttps2dq 0x12345678,%xmm5 + +// CHECK: cvttps2dq %xmm5, %xmm5 + cvttps2dq %xmm5,%xmm5 + +// CHECK: maskmovdqu %xmm5, %xmm5 + maskmovdqu %xmm5,%xmm5 + +// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5 + movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqa 69, %xmm5 + movdqa 0x45,%xmm5 + +// CHECK: movdqa 32493, %xmm5 + movdqa 0x7eed,%xmm5 + +// CHECK: movdqa 3133065982, %xmm5 + movdqa 0xbabecafe,%xmm5 + +// CHECK: movdqa 305419896, %xmm5 + movdqa 0x12345678,%xmm5 + +// CHECK: movdqa %xmm5, %xmm5 + movdqa %xmm5,%xmm5 + +// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8) + movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdqa %xmm5, 69 + movdqa %xmm5,0x45 + +// CHECK: movdqa %xmm5, 32493 + movdqa %xmm5,0x7eed + +// CHECK: movdqa %xmm5, 3133065982 + movdqa %xmm5,0xbabecafe + +// CHECK: movdqa %xmm5, 305419896 + movdqa %xmm5,0x12345678 + +// CHECK: movdqa %xmm5, %xmm5 + movdqa %xmm5,%xmm5 + +// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5 + movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqu 69, %xmm5 + movdqu 0x45,%xmm5 + +// CHECK: movdqu 32493, %xmm5 + movdqu 0x7eed,%xmm5 + +// CHECK: movdqu 3133065982, %xmm5 + movdqu 0xbabecafe,%xmm5 + +// CHECK: movdqu 305419896, %xmm5 + movdqu 0x12345678,%xmm5 + +// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8) + movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdqu %xmm5, 69 + movdqu %xmm5,0x45 + +// CHECK: movdqu %xmm5, 32493 + movdqu %xmm5,0x7eed + +// CHECK: movdqu %xmm5, 3133065982 + movdqu %xmm5,0xbabecafe + +// CHECK: movdqu %xmm5, 305419896 + movdqu %xmm5,0x12345678 + +// CHECK: movdq2q %xmm5, %mm3 + movdq2q %xmm5,%mm3 + +// CHECK: movq2dq %mm3, %xmm5 + movq2dq %mm3,%xmm5 + +// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %mm3 + pmuludq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmuludq 69, %mm3 + pmuludq 0x45,%mm3 + +// CHECK: pmuludq 32493, %mm3 + pmuludq 0x7eed,%mm3 + +// CHECK: pmuludq 3133065982, %mm3 + pmuludq 0xbabecafe,%mm3 + +// CHECK: pmuludq 305419896, %mm3 + pmuludq 0x12345678,%mm3 + +// CHECK: pmuludq %mm3, %mm3 + pmuludq %mm3,%mm3 + +// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %xmm5 + pmuludq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmuludq 69, %xmm5 + pmuludq 0x45,%xmm5 + +// CHECK: pmuludq 32493, %xmm5 + pmuludq 0x7eed,%xmm5 + +// CHECK: pmuludq 3133065982, %xmm5 + pmuludq 0xbabecafe,%xmm5 + +// CHECK: pmuludq 305419896, %xmm5 + pmuludq 0x12345678,%xmm5 + +// CHECK: pmuludq %xmm5, %xmm5 + pmuludq %xmm5,%xmm5 + +// CHECK: pslldq $127, %xmm5 + pslldq $0x7f,%xmm5 + +// CHECK: psrldq $127, %xmm5 + psrldq $0x7f,%xmm5 + +// CHECK: punpckhqdq 3735928559(%ebx,%ecx,8), %xmm5 + punpckhqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhqdq 69, %xmm5 + punpckhqdq 0x45,%xmm5 + +// CHECK: punpckhqdq 32493, %xmm5 + punpckhqdq 0x7eed,%xmm5 + +// CHECK: punpckhqdq 3133065982, %xmm5 + punpckhqdq 0xbabecafe,%xmm5 + +// CHECK: punpckhqdq 305419896, %xmm5 + punpckhqdq 0x12345678,%xmm5 + +// CHECK: punpckhqdq %xmm5, %xmm5 + punpckhqdq %xmm5,%xmm5 + +// CHECK: punpcklqdq 3735928559(%ebx,%ecx,8), %xmm5 + punpcklqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklqdq 69, %xmm5 + punpcklqdq 0x45,%xmm5 + +// CHECK: punpcklqdq 32493, %xmm5 + punpcklqdq 0x7eed,%xmm5 + +// CHECK: punpcklqdq 3133065982, %xmm5 + punpcklqdq 0xbabecafe,%xmm5 + +// CHECK: punpcklqdq 305419896, %xmm5 + punpcklqdq 0x12345678,%xmm5 + +// CHECK: punpcklqdq %xmm5, %xmm5 + punpcklqdq %xmm5,%xmm5 + +// CHECK: addsubpd 3735928559(%ebx,%ecx,8), %xmm5 + addsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsubpd 69, %xmm5 + addsubpd 0x45,%xmm5 + +// CHECK: addsubpd 32493, %xmm5 + addsubpd 0x7eed,%xmm5 + +// CHECK: addsubpd 3133065982, %xmm5 + addsubpd 0xbabecafe,%xmm5 + +// CHECK: addsubpd 305419896, %xmm5 + addsubpd 0x12345678,%xmm5 + +// CHECK: addsubpd %xmm5, %xmm5 + addsubpd %xmm5,%xmm5 + +// CHECK: addsubps 3735928559(%ebx,%ecx,8), %xmm5 + addsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsubps 69, %xmm5 + addsubps 0x45,%xmm5 + +// CHECK: addsubps 32493, %xmm5 + addsubps 0x7eed,%xmm5 + +// CHECK: addsubps 3133065982, %xmm5 + addsubps 0xbabecafe,%xmm5 + +// CHECK: addsubps 305419896, %xmm5 + addsubps 0x12345678,%xmm5 + +// CHECK: addsubps %xmm5, %xmm5 + addsubps %xmm5,%xmm5 + +// CHECK: fisttpl 3735928559(%ebx,%ecx,8) + fisttpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisttpl 3133065982 + fisttpl 0xbabecafe + +// CHECK: fisttpl 305419896 + fisttpl 0x12345678 + +// CHECK: haddpd 3735928559(%ebx,%ecx,8), %xmm5 + haddpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: haddpd 69, %xmm5 + haddpd 0x45,%xmm5 + +// CHECK: haddpd 32493, %xmm5 + haddpd 0x7eed,%xmm5 + +// CHECK: haddpd 3133065982, %xmm5 + haddpd 0xbabecafe,%xmm5 + +// CHECK: haddpd 305419896, %xmm5 + haddpd 0x12345678,%xmm5 + +// CHECK: haddpd %xmm5, %xmm5 + haddpd %xmm5,%xmm5 + +// CHECK: haddps 3735928559(%ebx,%ecx,8), %xmm5 + haddps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: haddps 69, %xmm5 + haddps 0x45,%xmm5 + +// CHECK: haddps 32493, %xmm5 + haddps 0x7eed,%xmm5 + +// CHECK: haddps 3133065982, %xmm5 + haddps 0xbabecafe,%xmm5 + +// CHECK: haddps 305419896, %xmm5 + haddps 0x12345678,%xmm5 + +// CHECK: haddps %xmm5, %xmm5 + haddps %xmm5,%xmm5 + +// CHECK: hsubpd 3735928559(%ebx,%ecx,8), %xmm5 + hsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: hsubpd 69, %xmm5 + hsubpd 0x45,%xmm5 + +// CHECK: hsubpd 32493, %xmm5 + hsubpd 0x7eed,%xmm5 + +// CHECK: hsubpd 3133065982, %xmm5 + hsubpd 0xbabecafe,%xmm5 + +// CHECK: hsubpd 305419896, %xmm5 + hsubpd 0x12345678,%xmm5 + +// CHECK: hsubpd %xmm5, %xmm5 + hsubpd %xmm5,%xmm5 + +// CHECK: hsubps 3735928559(%ebx,%ecx,8), %xmm5 + hsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: hsubps 69, %xmm5 + hsubps 0x45,%xmm5 + +// CHECK: hsubps 32493, %xmm5 + hsubps 0x7eed,%xmm5 + +// CHECK: hsubps 3133065982, %xmm5 + hsubps 0xbabecafe,%xmm5 + +// CHECK: hsubps 305419896, %xmm5 + hsubps 0x12345678,%xmm5 + +// CHECK: hsubps %xmm5, %xmm5 + hsubps %xmm5,%xmm5 + +// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5 + lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: lddqu 69, %xmm5 + lddqu 0x45,%xmm5 + +// CHECK: lddqu 32493, %xmm5 + lddqu 0x7eed,%xmm5 + +// CHECK: lddqu 3133065982, %xmm5 + lddqu 0xbabecafe,%xmm5 + +// CHECK: lddqu 305419896, %xmm5 + lddqu 0x12345678,%xmm5 + +// CHECK: monitor + monitor + +// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5 + movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movddup 69, %xmm5 + movddup 0x45,%xmm5 + +// CHECK: movddup 32493, %xmm5 + movddup 0x7eed,%xmm5 + +// CHECK: movddup 3133065982, %xmm5 + movddup 0xbabecafe,%xmm5 + +// CHECK: movddup 305419896, %xmm5 + movddup 0x12345678,%xmm5 + +// CHECK: movddup %xmm5, %xmm5 + movddup %xmm5,%xmm5 + +// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5 + movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movshdup 69, %xmm5 + movshdup 0x45,%xmm5 + +// CHECK: movshdup 32493, %xmm5 + movshdup 0x7eed,%xmm5 + +// CHECK: movshdup 3133065982, %xmm5 + movshdup 0xbabecafe,%xmm5 + +// CHECK: movshdup 305419896, %xmm5 + movshdup 0x12345678,%xmm5 + +// CHECK: movshdup %xmm5, %xmm5 + movshdup %xmm5,%xmm5 + +// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5 + movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsldup 69, %xmm5 + movsldup 0x45,%xmm5 + +// CHECK: movsldup 32493, %xmm5 + movsldup 0x7eed,%xmm5 + +// CHECK: movsldup 3133065982, %xmm5 + movsldup 0xbabecafe,%xmm5 + +// CHECK: movsldup 305419896, %xmm5 + movsldup 0x12345678,%xmm5 + +// CHECK: movsldup %xmm5, %xmm5 + movsldup %xmm5,%xmm5 + +// CHECK: mwait + mwait + +// CHECK: vmcall + vmcall + +// CHECK: vmclear 3735928559(%ebx,%ecx,8) + vmclear 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmclear 32493 + vmclear 0x7eed + +// CHECK: vmclear 3133065982 + vmclear 0xbabecafe + +// CHECK: vmclear 305419896 + vmclear 0x12345678 + +// CHECK: vmlaunch + vmlaunch + +// CHECK: vmresume + vmresume + +// CHECK: vmptrld 3735928559(%ebx,%ecx,8) + vmptrld 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmptrld 32493 + vmptrld 0x7eed + +// CHECK: vmptrld 3133065982 + vmptrld 0xbabecafe + +// CHECK: vmptrld 305419896 + vmptrld 0x12345678 + +// CHECK: vmptrst 3735928559(%ebx,%ecx,8) + vmptrst 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmptrst 32493 + vmptrst 0x7eed + +// CHECK: vmptrst 3133065982 + vmptrst 0xbabecafe + +// CHECK: vmptrst 305419896 + vmptrst 0x12345678 + +// CHECK: vmxoff + vmxoff + +// CHECK: vmxon 3735928559(%ebx,%ecx,8) + vmxon 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmxon 32493 + vmxon 0x7eed + +// CHECK: vmxon 3133065982 + vmxon 0xbabecafe + +// CHECK: vmxon 305419896 + vmxon 0x12345678 + +// CHECK: phaddw 3735928559(%ebx,%ecx,8), %mm3 + phaddw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddw 69, %mm3 + phaddw 0x45,%mm3 + +// CHECK: phaddw 32493, %mm3 + phaddw 0x7eed,%mm3 + +// CHECK: phaddw 3133065982, %mm3 + phaddw 0xbabecafe,%mm3 + +// CHECK: phaddw 305419896, %mm3 + phaddw 0x12345678,%mm3 + +// CHECK: phaddw %mm3, %mm3 + phaddw %mm3,%mm3 + +// CHECK: phaddw 3735928559(%ebx,%ecx,8), %xmm5 + phaddw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddw 69, %xmm5 + phaddw 0x45,%xmm5 + +// CHECK: phaddw 32493, %xmm5 + phaddw 0x7eed,%xmm5 + +// CHECK: phaddw 3133065982, %xmm5 + phaddw 0xbabecafe,%xmm5 + +// CHECK: phaddw 305419896, %xmm5 + phaddw 0x12345678,%xmm5 + +// CHECK: phaddw %xmm5, %xmm5 + phaddw %xmm5,%xmm5 + +// CHECK: phaddd 3735928559(%ebx,%ecx,8), %mm3 + phaddd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddd 69, %mm3 + phaddd 0x45,%mm3 + +// CHECK: phaddd 32493, %mm3 + phaddd 0x7eed,%mm3 + +// CHECK: phaddd 3133065982, %mm3 + phaddd 0xbabecafe,%mm3 + +// CHECK: phaddd 305419896, %mm3 + phaddd 0x12345678,%mm3 + +// CHECK: phaddd %mm3, %mm3 + phaddd %mm3,%mm3 + +// CHECK: phaddd 3735928559(%ebx,%ecx,8), %xmm5 + phaddd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddd 69, %xmm5 + phaddd 0x45,%xmm5 + +// CHECK: phaddd 32493, %xmm5 + phaddd 0x7eed,%xmm5 + +// CHECK: phaddd 3133065982, %xmm5 + phaddd 0xbabecafe,%xmm5 + +// CHECK: phaddd 305419896, %xmm5 + phaddd 0x12345678,%xmm5 + +// CHECK: phaddd %xmm5, %xmm5 + phaddd %xmm5,%xmm5 + +// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %mm3 + phaddsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddsw 69, %mm3 + phaddsw 0x45,%mm3 + +// CHECK: phaddsw 32493, %mm3 + phaddsw 0x7eed,%mm3 + +// CHECK: phaddsw 3133065982, %mm3 + phaddsw 0xbabecafe,%mm3 + +// CHECK: phaddsw 305419896, %mm3 + phaddsw 0x12345678,%mm3 + +// CHECK: phaddsw %mm3, %mm3 + phaddsw %mm3,%mm3 + +// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %xmm5 + phaddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddsw 69, %xmm5 + phaddsw 0x45,%xmm5 + +// CHECK: phaddsw 32493, %xmm5 + phaddsw 0x7eed,%xmm5 + +// CHECK: phaddsw 3133065982, %xmm5 + phaddsw 0xbabecafe,%xmm5 + +// CHECK: phaddsw 305419896, %xmm5 + phaddsw 0x12345678,%xmm5 + +// CHECK: phaddsw %xmm5, %xmm5 + phaddsw %xmm5,%xmm5 + +// CHECK: phsubw 3735928559(%ebx,%ecx,8), %mm3 + phsubw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubw 69, %mm3 + phsubw 0x45,%mm3 + +// CHECK: phsubw 32493, %mm3 + phsubw 0x7eed,%mm3 + +// CHECK: phsubw 3133065982, %mm3 + phsubw 0xbabecafe,%mm3 + +// CHECK: phsubw 305419896, %mm3 + phsubw 0x12345678,%mm3 + +// CHECK: phsubw %mm3, %mm3 + phsubw %mm3,%mm3 + +// CHECK: phsubw 3735928559(%ebx,%ecx,8), %xmm5 + phsubw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubw 69, %xmm5 + phsubw 0x45,%xmm5 + +// CHECK: phsubw 32493, %xmm5 + phsubw 0x7eed,%xmm5 + +// CHECK: phsubw 3133065982, %xmm5 + phsubw 0xbabecafe,%xmm5 + +// CHECK: phsubw 305419896, %xmm5 + phsubw 0x12345678,%xmm5 + +// CHECK: phsubw %xmm5, %xmm5 + phsubw %xmm5,%xmm5 + +// CHECK: phsubd 3735928559(%ebx,%ecx,8), %mm3 + phsubd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubd 69, %mm3 + phsubd 0x45,%mm3 + +// CHECK: phsubd 32493, %mm3 + phsubd 0x7eed,%mm3 + +// CHECK: phsubd 3133065982, %mm3 + phsubd 0xbabecafe,%mm3 + +// CHECK: phsubd 305419896, %mm3 + phsubd 0x12345678,%mm3 + +// CHECK: phsubd %mm3, %mm3 + phsubd %mm3,%mm3 + +// CHECK: phsubd 3735928559(%ebx,%ecx,8), %xmm5 + phsubd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubd 69, %xmm5 + phsubd 0x45,%xmm5 + +// CHECK: phsubd 32493, %xmm5 + phsubd 0x7eed,%xmm5 + +// CHECK: phsubd 3133065982, %xmm5 + phsubd 0xbabecafe,%xmm5 + +// CHECK: phsubd 305419896, %xmm5 + phsubd 0x12345678,%xmm5 + +// CHECK: phsubd %xmm5, %xmm5 + phsubd %xmm5,%xmm5 + +// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %mm3 + phsubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubsw 69, %mm3 + phsubsw 0x45,%mm3 + +// CHECK: phsubsw 32493, %mm3 + phsubsw 0x7eed,%mm3 + +// CHECK: phsubsw 3133065982, %mm3 + phsubsw 0xbabecafe,%mm3 + +// CHECK: phsubsw 305419896, %mm3 + phsubsw 0x12345678,%mm3 + +// CHECK: phsubsw %mm3, %mm3 + phsubsw %mm3,%mm3 + +// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %xmm5 + phsubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubsw 69, %xmm5 + phsubsw 0x45,%xmm5 + +// CHECK: phsubsw 32493, %xmm5 + phsubsw 0x7eed,%xmm5 + +// CHECK: phsubsw 3133065982, %xmm5 + phsubsw 0xbabecafe,%xmm5 + +// CHECK: phsubsw 305419896, %xmm5 + phsubsw 0x12345678,%xmm5 + +// CHECK: phsubsw %xmm5, %xmm5 + phsubsw %xmm5,%xmm5 + +// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %mm3 + pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaddubsw 69, %mm3 + pmaddubsw 0x45,%mm3 + +// CHECK: pmaddubsw 32493, %mm3 + pmaddubsw 0x7eed,%mm3 + +// CHECK: pmaddubsw 3133065982, %mm3 + pmaddubsw 0xbabecafe,%mm3 + +// CHECK: pmaddubsw 305419896, %mm3 + pmaddubsw 0x12345678,%mm3 + +// CHECK: pmaddubsw %mm3, %mm3 + pmaddubsw %mm3,%mm3 + +// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %xmm5 + pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaddubsw 69, %xmm5 + pmaddubsw 0x45,%xmm5 + +// CHECK: pmaddubsw 32493, %xmm5 + pmaddubsw 0x7eed,%xmm5 + +// CHECK: pmaddubsw 3133065982, %xmm5 + pmaddubsw 0xbabecafe,%xmm5 + +// CHECK: pmaddubsw 305419896, %xmm5 + pmaddubsw 0x12345678,%xmm5 + +// CHECK: pmaddubsw %xmm5, %xmm5 + pmaddubsw %xmm5,%xmm5 + +// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %mm3 + pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhrsw 69, %mm3 + pmulhrsw 0x45,%mm3 + +// CHECK: pmulhrsw 32493, %mm3 + pmulhrsw 0x7eed,%mm3 + +// CHECK: pmulhrsw 3133065982, %mm3 + pmulhrsw 0xbabecafe,%mm3 + +// CHECK: pmulhrsw 305419896, %mm3 + pmulhrsw 0x12345678,%mm3 + +// CHECK: pmulhrsw %mm3, %mm3 + pmulhrsw %mm3,%mm3 + +// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %xmm5 + pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhrsw 69, %xmm5 + pmulhrsw 0x45,%xmm5 + +// CHECK: pmulhrsw 32493, %xmm5 + pmulhrsw 0x7eed,%xmm5 + +// CHECK: pmulhrsw 3133065982, %xmm5 + pmulhrsw 0xbabecafe,%xmm5 + +// CHECK: pmulhrsw 305419896, %xmm5 + pmulhrsw 0x12345678,%xmm5 + +// CHECK: pmulhrsw %xmm5, %xmm5 + pmulhrsw %xmm5,%xmm5 + +// CHECK: pshufb 3735928559(%ebx,%ecx,8), %mm3 + pshufb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pshufb 69, %mm3 + pshufb 0x45,%mm3 + +// CHECK: pshufb 32493, %mm3 + pshufb 0x7eed,%mm3 + +// CHECK: pshufb 3133065982, %mm3 + pshufb 0xbabecafe,%mm3 + +// CHECK: pshufb 305419896, %mm3 + pshufb 0x12345678,%mm3 + +// CHECK: pshufb %mm3, %mm3 + pshufb %mm3,%mm3 + +// CHECK: pshufb 3735928559(%ebx,%ecx,8), %xmm5 + pshufb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pshufb 69, %xmm5 + pshufb 0x45,%xmm5 + +// CHECK: pshufb 32493, %xmm5 + pshufb 0x7eed,%xmm5 + +// CHECK: pshufb 3133065982, %xmm5 + pshufb 0xbabecafe,%xmm5 + +// CHECK: pshufb 305419896, %xmm5 + pshufb 0x12345678,%xmm5 + +// CHECK: pshufb %xmm5, %xmm5 + pshufb %xmm5,%xmm5 + +// CHECK: psignb 3735928559(%ebx,%ecx,8), %mm3 + psignb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignb 69, %mm3 + psignb 0x45,%mm3 + +// CHECK: psignb 32493, %mm3 + psignb 0x7eed,%mm3 + +// CHECK: psignb 3133065982, %mm3 + psignb 0xbabecafe,%mm3 + +// CHECK: psignb 305419896, %mm3 + psignb 0x12345678,%mm3 + +// CHECK: psignb %mm3, %mm3 + psignb %mm3,%mm3 + +// CHECK: psignb 3735928559(%ebx,%ecx,8), %xmm5 + psignb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignb 69, %xmm5 + psignb 0x45,%xmm5 + +// CHECK: psignb 32493, %xmm5 + psignb 0x7eed,%xmm5 + +// CHECK: psignb 3133065982, %xmm5 + psignb 0xbabecafe,%xmm5 + +// CHECK: psignb 305419896, %xmm5 + psignb 0x12345678,%xmm5 + +// CHECK: psignb %xmm5, %xmm5 + psignb %xmm5,%xmm5 + +// CHECK: psignw 3735928559(%ebx,%ecx,8), %mm3 + psignw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignw 69, %mm3 + psignw 0x45,%mm3 + +// CHECK: psignw 32493, %mm3 + psignw 0x7eed,%mm3 + +// CHECK: psignw 3133065982, %mm3 + psignw 0xbabecafe,%mm3 + +// CHECK: psignw 305419896, %mm3 + psignw 0x12345678,%mm3 + +// CHECK: psignw %mm3, %mm3 + psignw %mm3,%mm3 + +// CHECK: psignw 3735928559(%ebx,%ecx,8), %xmm5 + psignw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignw 69, %xmm5 + psignw 0x45,%xmm5 + +// CHECK: psignw 32493, %xmm5 + psignw 0x7eed,%xmm5 + +// CHECK: psignw 3133065982, %xmm5 + psignw 0xbabecafe,%xmm5 + +// CHECK: psignw 305419896, %xmm5 + psignw 0x12345678,%xmm5 + +// CHECK: psignw %xmm5, %xmm5 + psignw %xmm5,%xmm5 + +// CHECK: psignd 3735928559(%ebx,%ecx,8), %mm3 + psignd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignd 69, %mm3 + psignd 0x45,%mm3 + +// CHECK: psignd 32493, %mm3 + psignd 0x7eed,%mm3 + +// CHECK: psignd 3133065982, %mm3 + psignd 0xbabecafe,%mm3 + +// CHECK: psignd 305419896, %mm3 + psignd 0x12345678,%mm3 + +// CHECK: psignd %mm3, %mm3 + psignd %mm3,%mm3 + +// CHECK: psignd 3735928559(%ebx,%ecx,8), %xmm5 + psignd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignd 69, %xmm5 + psignd 0x45,%xmm5 + +// CHECK: psignd 32493, %xmm5 + psignd 0x7eed,%xmm5 + +// CHECK: psignd 3133065982, %xmm5 + psignd 0xbabecafe,%xmm5 + +// CHECK: psignd 305419896, %xmm5 + psignd 0x12345678,%xmm5 + +// CHECK: psignd %xmm5, %xmm5 + psignd %xmm5,%xmm5 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3 + pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsb 69, %mm3 + pabsb 0x45,%mm3 + +// CHECK: pabsb 32493, %mm3 + pabsb 0x7eed,%mm3 + +// CHECK: pabsb 3133065982, %mm3 + pabsb 0xbabecafe,%mm3 + +// CHECK: pabsb 305419896, %mm3 + pabsb 0x12345678,%mm3 + +// CHECK: pabsb %mm3, %mm3 + pabsb %mm3,%mm3 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5 + pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsb 69, %xmm5 + pabsb 0x45,%xmm5 + +// CHECK: pabsb 32493, %xmm5 + pabsb 0x7eed,%xmm5 + +// CHECK: pabsb 3133065982, %xmm5 + pabsb 0xbabecafe,%xmm5 + +// CHECK: pabsb 305419896, %xmm5 + pabsb 0x12345678,%xmm5 + +// CHECK: pabsb %xmm5, %xmm5 + pabsb %xmm5,%xmm5 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3 + pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsw 69, %mm3 + pabsw 0x45,%mm3 + +// CHECK: pabsw 32493, %mm3 + pabsw 0x7eed,%mm3 + +// CHECK: pabsw 3133065982, %mm3 + pabsw 0xbabecafe,%mm3 + +// CHECK: pabsw 305419896, %mm3 + pabsw 0x12345678,%mm3 + +// CHECK: pabsw %mm3, %mm3 + pabsw %mm3,%mm3 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5 + pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsw 69, %xmm5 + pabsw 0x45,%xmm5 + +// CHECK: pabsw 32493, %xmm5 + pabsw 0x7eed,%xmm5 + +// CHECK: pabsw 3133065982, %xmm5 + pabsw 0xbabecafe,%xmm5 + +// CHECK: pabsw 305419896, %xmm5 + pabsw 0x12345678,%xmm5 + +// CHECK: pabsw %xmm5, %xmm5 + pabsw %xmm5,%xmm5 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3 + pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsd 69, %mm3 + pabsd 0x45,%mm3 + +// CHECK: pabsd 32493, %mm3 + pabsd 0x7eed,%mm3 + +// CHECK: pabsd 3133065982, %mm3 + pabsd 0xbabecafe,%mm3 + +// CHECK: pabsd 305419896, %mm3 + pabsd 0x12345678,%mm3 + +// CHECK: pabsd %mm3, %mm3 + pabsd %mm3,%mm3 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5 + pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsd 69, %xmm5 + pabsd 0x45,%xmm5 + +// CHECK: pabsd 32493, %xmm5 + pabsd 0x7eed,%xmm5 + +// CHECK: pabsd 3133065982, %xmm5 + pabsd 0xbabecafe,%xmm5 + +// CHECK: pabsd 305419896, %xmm5 + pabsd 0x12345678,%xmm5 + +// CHECK: pabsd %xmm5, %xmm5 + pabsd %xmm5,%xmm5 + +// CHECK: femms + femms + +// CHECK: movntdqa 3735928559(%ebx,%ecx,8), %xmm5 + movntdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movntdqa 69, %xmm5 + movntdqa 0x45,%xmm5 + +// CHECK: movntdqa 32493, %xmm5 + movntdqa 0x7eed,%xmm5 + +// CHECK: movntdqa 3133065982, %xmm5 + movntdqa 0xbabecafe,%xmm5 + +// CHECK: movntdqa 305419896, %xmm5 + movntdqa 0x12345678,%xmm5 + +// CHECK: packusdw 3735928559(%ebx,%ecx,8), %xmm5 + packusdw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packusdw 69, %xmm5 + packusdw 0x45,%xmm5 + +// CHECK: packusdw 32493, %xmm5 + packusdw 0x7eed,%xmm5 + +// CHECK: packusdw 3133065982, %xmm5 + packusdw 0xbabecafe,%xmm5 + +// CHECK: packusdw 305419896, %xmm5 + packusdw 0x12345678,%xmm5 + +// CHECK: packusdw %xmm5, %xmm5 + packusdw %xmm5,%xmm5 + +// CHECK: pcmpeqq 3735928559(%ebx,%ecx,8), %xmm5 + pcmpeqq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqq 69, %xmm5 + pcmpeqq 0x45,%xmm5 + +// CHECK: pcmpeqq 32493, %xmm5 + pcmpeqq 0x7eed,%xmm5 + +// CHECK: pcmpeqq 3133065982, %xmm5 + pcmpeqq 0xbabecafe,%xmm5 + +// CHECK: pcmpeqq 305419896, %xmm5 + pcmpeqq 0x12345678,%xmm5 + +// CHECK: pcmpeqq %xmm5, %xmm5 + pcmpeqq %xmm5,%xmm5 + +// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5 + phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phminposuw 69, %xmm5 + phminposuw 0x45,%xmm5 + +// CHECK: phminposuw 32493, %xmm5 + phminposuw 0x7eed,%xmm5 + +// CHECK: phminposuw 3133065982, %xmm5 + phminposuw 0xbabecafe,%xmm5 + +// CHECK: phminposuw 305419896, %xmm5 + phminposuw 0x12345678,%xmm5 + +// CHECK: phminposuw %xmm5, %xmm5 + phminposuw %xmm5,%xmm5 + +// CHECK: pmaxsb 3735928559(%ebx,%ecx,8), %xmm5 + pmaxsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsb 69, %xmm5 + pmaxsb 0x45,%xmm5 + +// CHECK: pmaxsb 32493, %xmm5 + pmaxsb 0x7eed,%xmm5 + +// CHECK: pmaxsb 3133065982, %xmm5 + pmaxsb 0xbabecafe,%xmm5 + +// CHECK: pmaxsb 305419896, %xmm5 + pmaxsb 0x12345678,%xmm5 + +// CHECK: pmaxsb %xmm5, %xmm5 + pmaxsb %xmm5,%xmm5 + +// CHECK: pmaxsd 3735928559(%ebx,%ecx,8), %xmm5 + pmaxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsd 69, %xmm5 + pmaxsd 0x45,%xmm5 + +// CHECK: pmaxsd 32493, %xmm5 + pmaxsd 0x7eed,%xmm5 + +// CHECK: pmaxsd 3133065982, %xmm5 + pmaxsd 0xbabecafe,%xmm5 + +// CHECK: pmaxsd 305419896, %xmm5 + pmaxsd 0x12345678,%xmm5 + +// CHECK: pmaxsd %xmm5, %xmm5 + pmaxsd %xmm5,%xmm5 + +// CHECK: pmaxud 3735928559(%ebx,%ecx,8), %xmm5 + pmaxud 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxud 69, %xmm5 + pmaxud 0x45,%xmm5 + +// CHECK: pmaxud 32493, %xmm5 + pmaxud 0x7eed,%xmm5 + +// CHECK: pmaxud 3133065982, %xmm5 + pmaxud 0xbabecafe,%xmm5 + +// CHECK: pmaxud 305419896, %xmm5 + pmaxud 0x12345678,%xmm5 + +// CHECK: pmaxud %xmm5, %xmm5 + pmaxud %xmm5,%xmm5 + +// CHECK: pmaxuw 3735928559(%ebx,%ecx,8), %xmm5 + pmaxuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxuw 69, %xmm5 + pmaxuw 0x45,%xmm5 + +// CHECK: pmaxuw 32493, %xmm5 + pmaxuw 0x7eed,%xmm5 + +// CHECK: pmaxuw 3133065982, %xmm5 + pmaxuw 0xbabecafe,%xmm5 + +// CHECK: pmaxuw 305419896, %xmm5 + pmaxuw 0x12345678,%xmm5 + +// CHECK: pmaxuw %xmm5, %xmm5 + pmaxuw %xmm5,%xmm5 + +// CHECK: pminsb 3735928559(%ebx,%ecx,8), %xmm5 + pminsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsb 69, %xmm5 + pminsb 0x45,%xmm5 + +// CHECK: pminsb 32493, %xmm5 + pminsb 0x7eed,%xmm5 + +// CHECK: pminsb 3133065982, %xmm5 + pminsb 0xbabecafe,%xmm5 + +// CHECK: pminsb 305419896, %xmm5 + pminsb 0x12345678,%xmm5 + +// CHECK: pminsb %xmm5, %xmm5 + pminsb %xmm5,%xmm5 + +// CHECK: pminsd 3735928559(%ebx,%ecx,8), %xmm5 + pminsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsd 69, %xmm5 + pminsd 0x45,%xmm5 + +// CHECK: pminsd 32493, %xmm5 + pminsd 0x7eed,%xmm5 + +// CHECK: pminsd 3133065982, %xmm5 + pminsd 0xbabecafe,%xmm5 + +// CHECK: pminsd 305419896, %xmm5 + pminsd 0x12345678,%xmm5 + +// CHECK: pminsd %xmm5, %xmm5 + pminsd %xmm5,%xmm5 + +// CHECK: pminud 3735928559(%ebx,%ecx,8), %xmm5 + pminud 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminud 69, %xmm5 + pminud 0x45,%xmm5 + +// CHECK: pminud 32493, %xmm5 + pminud 0x7eed,%xmm5 + +// CHECK: pminud 3133065982, %xmm5 + pminud 0xbabecafe,%xmm5 + +// CHECK: pminud 305419896, %xmm5 + pminud 0x12345678,%xmm5 + +// CHECK: pminud %xmm5, %xmm5 + pminud %xmm5,%xmm5 + +// CHECK: pminuw 3735928559(%ebx,%ecx,8), %xmm5 + pminuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminuw 69, %xmm5 + pminuw 0x45,%xmm5 + +// CHECK: pminuw 32493, %xmm5 + pminuw 0x7eed,%xmm5 + +// CHECK: pminuw 3133065982, %xmm5 + pminuw 0xbabecafe,%xmm5 + +// CHECK: pminuw 305419896, %xmm5 + pminuw 0x12345678,%xmm5 + +// CHECK: pminuw %xmm5, %xmm5 + pminuw %xmm5,%xmm5 + +// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbw 69, %xmm5 + pmovsxbw 0x45,%xmm5 + +// CHECK: pmovsxbw 32493, %xmm5 + pmovsxbw 0x7eed,%xmm5 + +// CHECK: pmovsxbw 3133065982, %xmm5 + pmovsxbw 0xbabecafe,%xmm5 + +// CHECK: pmovsxbw 305419896, %xmm5 + pmovsxbw 0x12345678,%xmm5 + +// CHECK: pmovsxbw %xmm5, %xmm5 + pmovsxbw %xmm5,%xmm5 + +// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbd 69, %xmm5 + pmovsxbd 0x45,%xmm5 + +// CHECK: pmovsxbd 32493, %xmm5 + pmovsxbd 0x7eed,%xmm5 + +// CHECK: pmovsxbd 3133065982, %xmm5 + pmovsxbd 0xbabecafe,%xmm5 + +// CHECK: pmovsxbd 305419896, %xmm5 + pmovsxbd 0x12345678,%xmm5 + +// CHECK: pmovsxbd %xmm5, %xmm5 + pmovsxbd %xmm5,%xmm5 + +// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbq 69, %xmm5 + pmovsxbq 0x45,%xmm5 + +// CHECK: pmovsxbq 32493, %xmm5 + pmovsxbq 0x7eed,%xmm5 + +// CHECK: pmovsxbq 3133065982, %xmm5 + pmovsxbq 0xbabecafe,%xmm5 + +// CHECK: pmovsxbq 305419896, %xmm5 + pmovsxbq 0x12345678,%xmm5 + +// CHECK: pmovsxbq %xmm5, %xmm5 + pmovsxbq %xmm5,%xmm5 + +// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwd 69, %xmm5 + pmovsxwd 0x45,%xmm5 + +// CHECK: pmovsxwd 32493, %xmm5 + pmovsxwd 0x7eed,%xmm5 + +// CHECK: pmovsxwd 3133065982, %xmm5 + pmovsxwd 0xbabecafe,%xmm5 + +// CHECK: pmovsxwd 305419896, %xmm5 + pmovsxwd 0x12345678,%xmm5 + +// CHECK: pmovsxwd %xmm5, %xmm5 + pmovsxwd %xmm5,%xmm5 + +// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwq 69, %xmm5 + pmovsxwq 0x45,%xmm5 + +// CHECK: pmovsxwq 32493, %xmm5 + pmovsxwq 0x7eed,%xmm5 + +// CHECK: pmovsxwq 3133065982, %xmm5 + pmovsxwq 0xbabecafe,%xmm5 + +// CHECK: pmovsxwq 305419896, %xmm5 + pmovsxwq 0x12345678,%xmm5 + +// CHECK: pmovsxwq %xmm5, %xmm5 + pmovsxwq %xmm5,%xmm5 + +// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5 + pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxdq 69, %xmm5 + pmovsxdq 0x45,%xmm5 + +// CHECK: pmovsxdq 32493, %xmm5 + pmovsxdq 0x7eed,%xmm5 + +// CHECK: pmovsxdq 3133065982, %xmm5 + pmovsxdq 0xbabecafe,%xmm5 + +// CHECK: pmovsxdq 305419896, %xmm5 + pmovsxdq 0x12345678,%xmm5 + +// CHECK: pmovsxdq %xmm5, %xmm5 + pmovsxdq %xmm5,%xmm5 + +// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbw 69, %xmm5 + pmovzxbw 0x45,%xmm5 + +// CHECK: pmovzxbw 32493, %xmm5 + pmovzxbw 0x7eed,%xmm5 + +// CHECK: pmovzxbw 3133065982, %xmm5 + pmovzxbw 0xbabecafe,%xmm5 + +// CHECK: pmovzxbw 305419896, %xmm5 + pmovzxbw 0x12345678,%xmm5 + +// CHECK: pmovzxbw %xmm5, %xmm5 + pmovzxbw %xmm5,%xmm5 + +// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbd 69, %xmm5 + pmovzxbd 0x45,%xmm5 + +// CHECK: pmovzxbd 32493, %xmm5 + pmovzxbd 0x7eed,%xmm5 + +// CHECK: pmovzxbd 3133065982, %xmm5 + pmovzxbd 0xbabecafe,%xmm5 + +// CHECK: pmovzxbd 305419896, %xmm5 + pmovzxbd 0x12345678,%xmm5 + +// CHECK: pmovzxbd %xmm5, %xmm5 + pmovzxbd %xmm5,%xmm5 + +// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbq 69, %xmm5 + pmovzxbq 0x45,%xmm5 + +// CHECK: pmovzxbq 32493, %xmm5 + pmovzxbq 0x7eed,%xmm5 + +// CHECK: pmovzxbq 3133065982, %xmm5 + pmovzxbq 0xbabecafe,%xmm5 + +// CHECK: pmovzxbq 305419896, %xmm5 + pmovzxbq 0x12345678,%xmm5 + +// CHECK: pmovzxbq %xmm5, %xmm5 + pmovzxbq %xmm5,%xmm5 + +// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwd 69, %xmm5 + pmovzxwd 0x45,%xmm5 + +// CHECK: pmovzxwd 32493, %xmm5 + pmovzxwd 0x7eed,%xmm5 + +// CHECK: pmovzxwd 3133065982, %xmm5 + pmovzxwd 0xbabecafe,%xmm5 + +// CHECK: pmovzxwd 305419896, %xmm5 + pmovzxwd 0x12345678,%xmm5 + +// CHECK: pmovzxwd %xmm5, %xmm5 + pmovzxwd %xmm5,%xmm5 + +// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwq 69, %xmm5 + pmovzxwq 0x45,%xmm5 + +// CHECK: pmovzxwq 32493, %xmm5 + pmovzxwq 0x7eed,%xmm5 + +// CHECK: pmovzxwq 3133065982, %xmm5 + pmovzxwq 0xbabecafe,%xmm5 + +// CHECK: pmovzxwq 305419896, %xmm5 + pmovzxwq 0x12345678,%xmm5 + +// CHECK: pmovzxwq %xmm5, %xmm5 + pmovzxwq %xmm5,%xmm5 + +// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5 + pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxdq 69, %xmm5 + pmovzxdq 0x45,%xmm5 + +// CHECK: pmovzxdq 32493, %xmm5 + pmovzxdq 0x7eed,%xmm5 + +// CHECK: pmovzxdq 3133065982, %xmm5 + pmovzxdq 0xbabecafe,%xmm5 + +// CHECK: pmovzxdq 305419896, %xmm5 + pmovzxdq 0x12345678,%xmm5 + +// CHECK: pmovzxdq %xmm5, %xmm5 + pmovzxdq %xmm5,%xmm5 + +// CHECK: pmuldq 3735928559(%ebx,%ecx,8), %xmm5 + pmuldq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmuldq 69, %xmm5 + pmuldq 0x45,%xmm5 + +// CHECK: pmuldq 32493, %xmm5 + pmuldq 0x7eed,%xmm5 + +// CHECK: pmuldq 3133065982, %xmm5 + pmuldq 0xbabecafe,%xmm5 + +// CHECK: pmuldq 305419896, %xmm5 + pmuldq 0x12345678,%xmm5 + +// CHECK: pmuldq %xmm5, %xmm5 + pmuldq %xmm5,%xmm5 + +// CHECK: pmulld 3735928559(%ebx,%ecx,8), %xmm5 + pmulld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulld 69, %xmm5 + pmulld 0x45,%xmm5 + +// CHECK: pmulld 32493, %xmm5 + pmulld 0x7eed,%xmm5 + +// CHECK: pmulld 3133065982, %xmm5 + pmulld 0xbabecafe,%xmm5 + +// CHECK: pmulld 305419896, %xmm5 + pmulld 0x12345678,%xmm5 + +// CHECK: pmulld %xmm5, %xmm5 + pmulld %xmm5,%xmm5 + +// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5 + ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ptest 69, %xmm5 + ptest 0x45,%xmm5 + +// CHECK: ptest 32493, %xmm5 + ptest 0x7eed,%xmm5 + +// CHECK: ptest 3133065982, %xmm5 + ptest 0xbabecafe,%xmm5 + +// CHECK: ptest 305419896, %xmm5 + ptest 0x12345678,%xmm5 + +// CHECK: ptest %xmm5, %xmm5 + ptest %xmm5,%xmm5 + +// CHECK: crc32 3735928559(%ebx,%ecx,8), %ecx + crc32 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: crc32 69, %ecx + crc32 0x45,%ecx + +// CHECK: crc32 32493, %ecx + crc32 0x7eed,%ecx + +// CHECK: crc32 3133065982, %ecx + crc32 0xbabecafe,%ecx + +// CHECK: crc32 305419896, %ecx + crc32 0x12345678,%ecx + +// CHECK: crc32 %ecx, %ecx + crc32 %ecx,%ecx + +// CHECK: crc32 %ecx, %ecx + crc32 %ecx,%ecx + +// CHECK: crc32 3735928559(%ebx,%ecx,8), %ecx + crc32 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: crc32 69, %ecx + crc32 0x45,%ecx + +// CHECK: crc32 32493, %ecx + crc32 0x7eed,%ecx + +// CHECK: crc32 3133065982, %ecx + crc32 0xbabecafe,%ecx + +// CHECK: crc32 305419896, %ecx + crc32 0x12345678,%ecx + +// CHECK: pcmpgtq 3735928559(%ebx,%ecx,8), %xmm5 + pcmpgtq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtq 69, %xmm5 + pcmpgtq 0x45,%xmm5 + +// CHECK: pcmpgtq 32493, %xmm5 + pcmpgtq 0x7eed,%xmm5 + +// CHECK: pcmpgtq 3133065982, %xmm5 + pcmpgtq 0xbabecafe,%xmm5 + +// CHECK: pcmpgtq 305419896, %xmm5 + pcmpgtq 0x12345678,%xmm5 + +// CHECK: pcmpgtq %xmm5, %xmm5 + pcmpgtq %xmm5,%xmm5 diff --git a/test/MC/AsmParser/X86/x86_32-encoding.s b/test/MC/AsmParser/X86/x86_32-encoding.s new file mode 100644 index 0000000..e325bdd --- /dev/null +++ b/test/MC/AsmParser/X86/x86_32-encoding.s @@ -0,0 +1,9861 @@ +// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s + +// CHECK: movb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc6,0x84,0xcb,0xef,0xbe,0xad,0xde,0x7f] + movb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movb $127, 69 +// CHECK: encoding: [0xc6,0x05,0x45,0x00,0x00,0x00,0x7f] + movb $0x7f,0x45 + +// CHECK: movb $127, 32493 +// CHECK: encoding: [0xc6,0x05,0xed,0x7e,0x00,0x00,0x7f] + movb $0x7f,0x7eed + +// CHECK: movb $127, 3133065982 +// CHECK: encoding: [0xc6,0x05,0xfe,0xca,0xbe,0xba,0x7f] + movb $0x7f,0xbabecafe + +// CHECK: movb $127, 305419896 +// CHECK: encoding: [0xc6,0x05,0x78,0x56,0x34,0x12,0x7f] + movb $0x7f,0x12345678 + +// CHECK: movw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0xc7,0x84,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + movw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movw $31438, 69 +// CHECK: encoding: [0x66,0xc7,0x05,0x45,0x00,0x00,0x00,0xce,0x7a] + movw $0x7ace,0x45 + +// CHECK: movw $31438, 32493 +// CHECK: encoding: [0x66,0xc7,0x05,0xed,0x7e,0x00,0x00,0xce,0x7a] + movw $0x7ace,0x7eed + +// CHECK: movw $31438, 3133065982 +// CHECK: encoding: [0x66,0xc7,0x05,0xfe,0xca,0xbe,0xba,0xce,0x7a] + movw $0x7ace,0xbabecafe + +// CHECK: movw $31438, 305419896 +// CHECK: encoding: [0x66,0xc7,0x05,0x78,0x56,0x34,0x12,0xce,0x7a] + movw $0x7ace,0x12345678 + +// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc7,0x84,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $2063514302, 69 +// CHECK: encoding: [0xc7,0x05,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + movl $0x7afebabe,0x45 + +// CHECK: movl $2063514302, 32493 +// CHECK: encoding: [0xc7,0x05,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + movl $0x7afebabe,0x7eed + +// CHECK: movl $2063514302, 3133065982 +// CHECK: encoding: [0xc7,0x05,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + movl $0x7afebabe,0xbabecafe + +// CHECK: movl $2063514302, 305419896 +// CHECK: encoding: [0xc7,0x05,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + movl $0x7afebabe,0x12345678 + +// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc7,0x84,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + movl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movl $324478056, 69 +// CHECK: encoding: [0xc7,0x05,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + movl $0x13572468,0x45 + +// CHECK: movl $324478056, 32493 +// CHECK: encoding: [0xc7,0x05,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + movl $0x13572468,0x7eed + +// CHECK: movl $324478056, 3133065982 +// CHECK: encoding: [0xc7,0x05,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + movl $0x13572468,0xbabecafe + +// CHECK: movl $324478056, 305419896 +// CHECK: encoding: [0xc7,0x05,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + movl $0x13572468,0x12345678 + +// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0x0f,0xbe,0x8c,0xcb,0xef,0xbe,0xad,0xde] + movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movsbl 69, %ecx +// CHECK: encoding: [0x0f,0xbe,0x0d,0x45,0x00,0x00,0x00] + movsbl 0x45,%ecx + +// CHECK: movsbl 32493, %ecx +// CHECK: encoding: [0x0f,0xbe,0x0d,0xed,0x7e,0x00,0x00] + movsbl 0x7eed,%ecx + +// CHECK: movsbl 3133065982, %ecx +// CHECK: encoding: [0x0f,0xbe,0x0d,0xfe,0xca,0xbe,0xba] + movsbl 0xbabecafe,%ecx + +// CHECK: movsbl 305419896, %ecx +// CHECK: encoding: [0x0f,0xbe,0x0d,0x78,0x56,0x34,0x12] + movsbl 0x12345678,%ecx + +// CHECK: movsbw 3735928559(%ebx,%ecx,8), %bx +// CHECK: encoding: [0x66,0x0f,0xbe,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movsbw 0xdeadbeef(%ebx,%ecx,8),%bx + +// CHECK: movsbw 69, %bx +// CHECK: encoding: [0x66,0x0f,0xbe,0x1d,0x45,0x00,0x00,0x00] + movsbw 0x45,%bx + +// CHECK: movsbw 32493, %bx +// CHECK: encoding: [0x66,0x0f,0xbe,0x1d,0xed,0x7e,0x00,0x00] + movsbw 0x7eed,%bx + +// CHECK: movsbw 3133065982, %bx +// CHECK: encoding: [0x66,0x0f,0xbe,0x1d,0xfe,0xca,0xbe,0xba] + movsbw 0xbabecafe,%bx + +// CHECK: movsbw 305419896, %bx +// CHECK: encoding: [0x66,0x0f,0xbe,0x1d,0x78,0x56,0x34,0x12] + movsbw 0x12345678,%bx + +// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0x0f,0xbf,0x8c,0xcb,0xef,0xbe,0xad,0xde] + movswl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movswl 69, %ecx +// CHECK: encoding: [0x0f,0xbf,0x0d,0x45,0x00,0x00,0x00] + movswl 0x45,%ecx + +// CHECK: movswl 32493, %ecx +// CHECK: encoding: [0x0f,0xbf,0x0d,0xed,0x7e,0x00,0x00] + movswl 0x7eed,%ecx + +// CHECK: movswl 3133065982, %ecx +// CHECK: encoding: [0x0f,0xbf,0x0d,0xfe,0xca,0xbe,0xba] + movswl 0xbabecafe,%ecx + +// CHECK: movswl 305419896, %ecx +// CHECK: encoding: [0x0f,0xbf,0x0d,0x78,0x56,0x34,0x12] + movswl 0x12345678,%ecx + +// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0x0f,0xb6,0x8c,0xcb,0xef,0xbe,0xad,0xde] + movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzbl 69, %ecx +// CHECK: encoding: [0x0f,0xb6,0x0d,0x45,0x00,0x00,0x00] + movzbl 0x45,%ecx + +// CHECK: movzbl 32493, %ecx +// CHECK: encoding: [0x0f,0xb6,0x0d,0xed,0x7e,0x00,0x00] + movzbl 0x7eed,%ecx + +// CHECK: movzbl 3133065982, %ecx +// CHECK: encoding: [0x0f,0xb6,0x0d,0xfe,0xca,0xbe,0xba] + movzbl 0xbabecafe,%ecx + +// CHECK: movzbl 305419896, %ecx +// CHECK: encoding: [0x0f,0xb6,0x0d,0x78,0x56,0x34,0x12] + movzbl 0x12345678,%ecx + +// CHECK: movzbw 3735928559(%ebx,%ecx,8), %bx +// CHECK: encoding: [0x66,0x0f,0xb6,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movzbw 0xdeadbeef(%ebx,%ecx,8),%bx + +// CHECK: movzbw 69, %bx +// CHECK: encoding: [0x66,0x0f,0xb6,0x1d,0x45,0x00,0x00,0x00] + movzbw 0x45,%bx + +// CHECK: movzbw 32493, %bx +// CHECK: encoding: [0x66,0x0f,0xb6,0x1d,0xed,0x7e,0x00,0x00] + movzbw 0x7eed,%bx + +// CHECK: movzbw 3133065982, %bx +// CHECK: encoding: [0x66,0x0f,0xb6,0x1d,0xfe,0xca,0xbe,0xba] + movzbw 0xbabecafe,%bx + +// CHECK: movzbw 305419896, %bx +// CHECK: encoding: [0x66,0x0f,0xb6,0x1d,0x78,0x56,0x34,0x12] + movzbw 0x12345678,%bx + +// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0x0f,0xb7,0x8c,0xcb,0xef,0xbe,0xad,0xde] + movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: movzwl 69, %ecx +// CHECK: encoding: [0x0f,0xb7,0x0d,0x45,0x00,0x00,0x00] + movzwl 0x45,%ecx + +// CHECK: movzwl 32493, %ecx +// CHECK: encoding: [0x0f,0xb7,0x0d,0xed,0x7e,0x00,0x00] + movzwl 0x7eed,%ecx + +// CHECK: movzwl 3133065982, %ecx +// CHECK: encoding: [0x0f,0xb7,0x0d,0xfe,0xca,0xbe,0xba] + movzwl 0xbabecafe,%ecx + +// CHECK: movzwl 305419896, %ecx +// CHECK: encoding: [0x0f,0xb7,0x0d,0x78,0x56,0x34,0x12] + movzwl 0x12345678,%ecx + +// CHECK: pushl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0xb4,0xcb,0xef,0xbe,0xad,0xde] + pushl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: pushw 32493 +// CHECK: encoding: [0x66,0xff,0x35,0xed,0x7e,0x00,0x00] + pushw 0x7eed + +// CHECK: pushl 3133065982 +// CHECK: encoding: [0xff,0x35,0xfe,0xca,0xbe,0xba] + pushl 0xbabecafe + +// CHECK: pushl 305419896 +// CHECK: encoding: [0xff,0x35,0x78,0x56,0x34,0x12] + pushl 0x12345678 + +// CHECK: popl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x8f,0x84,0xcb,0xef,0xbe,0xad,0xde] + popl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: popw 32493 +// CHECK: encoding: [0x66,0x8f,0x05,0xed,0x7e,0x00,0x00] + popw 0x7eed + +// CHECK: popl 3133065982 +// CHECK: encoding: [0x8f,0x05,0xfe,0xca,0xbe,0xba] + popl 0xbabecafe + +// CHECK: popl 305419896 +// CHECK: encoding: [0x8f,0x05,0x78,0x56,0x34,0x12] + popl 0x12345678 + +// CHECK: clc +// CHECK: encoding: [0xf8] + clc + +// CHECK: cld +// CHECK: encoding: [0xfc] + cld + +// CHECK: cli +// CHECK: encoding: [0xfa] + cli + +// CHECK: clts +// CHECK: encoding: [0x0f,0x06] + clts + +// CHECK: cmc +// CHECK: encoding: [0xf5] + cmc + +// CHECK: lahf +// CHECK: encoding: [0x9f] + lahf + +// CHECK: sahf +// CHECK: encoding: [0x9e] + sahf + +// CHECK: stc +// CHECK: encoding: [0xf9] + stc + +// CHECK: std +// CHECK: encoding: [0xfd] + std + +// CHECK: sti +// CHECK: encoding: [0xfb] + sti + +// CHECK: addb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x84,0xcb,0xef,0xbe,0xad,0xde,0xfe] + addb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addb $254, 69 +// CHECK: encoding: [0x80,0x05,0x45,0x00,0x00,0x00,0xfe] + addb $0xfe,0x45 + +// CHECK: addb $254, 32493 +// CHECK: encoding: [0x80,0x05,0xed,0x7e,0x00,0x00,0xfe] + addb $0xfe,0x7eed + +// CHECK: addb $254, 3133065982 +// CHECK: encoding: [0x80,0x05,0xfe,0xca,0xbe,0xba,0xfe] + addb $0xfe,0xbabecafe + +// CHECK: addb $254, 305419896 +// CHECK: encoding: [0x80,0x05,0x78,0x56,0x34,0x12,0xfe] + addb $0xfe,0x12345678 + +// CHECK: addb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x84,0xcb,0xef,0xbe,0xad,0xde,0x7f] + addb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addb $127, 69 +// CHECK: encoding: [0x80,0x05,0x45,0x00,0x00,0x00,0x7f] + addb $0x7f,0x45 + +// CHECK: addb $127, 32493 +// CHECK: encoding: [0x80,0x05,0xed,0x7e,0x00,0x00,0x7f] + addb $0x7f,0x7eed + +// CHECK: addb $127, 3133065982 +// CHECK: encoding: [0x80,0x05,0xfe,0xca,0xbe,0xba,0x7f] + addb $0x7f,0xbabecafe + +// CHECK: addb $127, 305419896 +// CHECK: encoding: [0x80,0x05,0x78,0x56,0x34,0x12,0x7f] + addb $0x7f,0x12345678 + +// CHECK: addw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0x84,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + addw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x05,0x45,0x00,0x00,0x00,0xce,0x7a] + addw $0x7ace,0x45 + +// CHECK: addw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x05,0xed,0x7e,0x00,0x00,0xce,0x7a] + addw $0x7ace,0x7eed + +// CHECK: addw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x05,0xfe,0xca,0xbe,0xba,0xce,0x7a] + addw $0x7ace,0xbabecafe + +// CHECK: addw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x05,0x78,0x56,0x34,0x12,0xce,0x7a] + addw $0x7ace,0x12345678 + +// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x84,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $2063514302, 69 +// CHECK: encoding: [0x81,0x05,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + addl $0x7afebabe,0x45 + +// CHECK: addl $2063514302, 32493 +// CHECK: encoding: [0x81,0x05,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + addl $0x7afebabe,0x7eed + +// CHECK: addl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x05,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + addl $0x7afebabe,0xbabecafe + +// CHECK: addl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x05,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + addl $0x7afebabe,0x12345678 + +// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x84,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + addl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: addl $324478056, 69 +// CHECK: encoding: [0x81,0x05,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + addl $0x13572468,0x45 + +// CHECK: addl $324478056, 32493 +// CHECK: encoding: [0x81,0x05,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + addl $0x13572468,0x7eed + +// CHECK: addl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x05,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + addl $0x13572468,0xbabecafe + +// CHECK: addl $324478056, 305419896 +// CHECK: encoding: [0x81,0x05,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + addl $0x13572468,0x12345678 + +// CHECK: incl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0x84,0xcb,0xef,0xbe,0xad,0xde] + incl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: incw 32493 +// CHECK: encoding: [0x66,0xff,0x05,0xed,0x7e,0x00,0x00] + incw 0x7eed + +// CHECK: incl 3133065982 +// CHECK: encoding: [0xff,0x05,0xfe,0xca,0xbe,0xba] + incl 0xbabecafe + +// CHECK: incl 305419896 +// CHECK: encoding: [0xff,0x05,0x78,0x56,0x34,0x12] + incl 0x12345678 + +// CHECK: subb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xac,0xcb,0xef,0xbe,0xad,0xde,0xfe] + subb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $254, 69 +// CHECK: encoding: [0x80,0x2d,0x45,0x00,0x00,0x00,0xfe] + subb $0xfe,0x45 + +// CHECK: subb $254, 32493 +// CHECK: encoding: [0x80,0x2d,0xed,0x7e,0x00,0x00,0xfe] + subb $0xfe,0x7eed + +// CHECK: subb $254, 3133065982 +// CHECK: encoding: [0x80,0x2d,0xfe,0xca,0xbe,0xba,0xfe] + subb $0xfe,0xbabecafe + +// CHECK: subb $254, 305419896 +// CHECK: encoding: [0x80,0x2d,0x78,0x56,0x34,0x12,0xfe] + subb $0xfe,0x12345678 + +// CHECK: subb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xac,0xcb,0xef,0xbe,0xad,0xde,0x7f] + subb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subb $127, 69 +// CHECK: encoding: [0x80,0x2d,0x45,0x00,0x00,0x00,0x7f] + subb $0x7f,0x45 + +// CHECK: subb $127, 32493 +// CHECK: encoding: [0x80,0x2d,0xed,0x7e,0x00,0x00,0x7f] + subb $0x7f,0x7eed + +// CHECK: subb $127, 3133065982 +// CHECK: encoding: [0x80,0x2d,0xfe,0xca,0xbe,0xba,0x7f] + subb $0x7f,0xbabecafe + +// CHECK: subb $127, 305419896 +// CHECK: encoding: [0x80,0x2d,0x78,0x56,0x34,0x12,0x7f] + subb $0x7f,0x12345678 + +// CHECK: subw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0xac,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + subw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x2d,0x45,0x00,0x00,0x00,0xce,0x7a] + subw $0x7ace,0x45 + +// CHECK: subw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x2d,0xed,0x7e,0x00,0x00,0xce,0x7a] + subw $0x7ace,0x7eed + +// CHECK: subw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x2d,0xfe,0xca,0xbe,0xba,0xce,0x7a] + subw $0x7ace,0xbabecafe + +// CHECK: subw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x2d,0x78,0x56,0x34,0x12,0xce,0x7a] + subw $0x7ace,0x12345678 + +// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xac,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $2063514302, 69 +// CHECK: encoding: [0x81,0x2d,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + subl $0x7afebabe,0x45 + +// CHECK: subl $2063514302, 32493 +// CHECK: encoding: [0x81,0x2d,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + subl $0x7afebabe,0x7eed + +// CHECK: subl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x2d,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + subl $0x7afebabe,0xbabecafe + +// CHECK: subl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x2d,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + subl $0x7afebabe,0x12345678 + +// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xac,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + subl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: subl $324478056, 69 +// CHECK: encoding: [0x81,0x2d,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + subl $0x13572468,0x45 + +// CHECK: subl $324478056, 32493 +// CHECK: encoding: [0x81,0x2d,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + subl $0x13572468,0x7eed + +// CHECK: subl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x2d,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + subl $0x13572468,0xbabecafe + +// CHECK: subl $324478056, 305419896 +// CHECK: encoding: [0x81,0x2d,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + subl $0x13572468,0x12345678 + +// CHECK: decl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0x8c,0xcb,0xef,0xbe,0xad,0xde] + decl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: decw 32493 +// CHECK: encoding: [0x66,0xff,0x0d,0xed,0x7e,0x00,0x00] + decw 0x7eed + +// CHECK: decl 3133065982 +// CHECK: encoding: [0xff,0x0d,0xfe,0xca,0xbe,0xba] + decl 0xbabecafe + +// CHECK: decl 305419896 +// CHECK: encoding: [0xff,0x0d,0x78,0x56,0x34,0x12] + decl 0x12345678 + +// CHECK: sbbb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x9c,0xcb,0xef,0xbe,0xad,0xde,0xfe] + sbbb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbb $254, 69 +// CHECK: encoding: [0x80,0x1d,0x45,0x00,0x00,0x00,0xfe] + sbbb $0xfe,0x45 + +// CHECK: sbbb $254, 32493 +// CHECK: encoding: [0x80,0x1d,0xed,0x7e,0x00,0x00,0xfe] + sbbb $0xfe,0x7eed + +// CHECK: sbbb $254, 3133065982 +// CHECK: encoding: [0x80,0x1d,0xfe,0xca,0xbe,0xba,0xfe] + sbbb $0xfe,0xbabecafe + +// CHECK: sbbb $254, 305419896 +// CHECK: encoding: [0x80,0x1d,0x78,0x56,0x34,0x12,0xfe] + sbbb $0xfe,0x12345678 + +// CHECK: sbbb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x9c,0xcb,0xef,0xbe,0xad,0xde,0x7f] + sbbb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbb $127, 69 +// CHECK: encoding: [0x80,0x1d,0x45,0x00,0x00,0x00,0x7f] + sbbb $0x7f,0x45 + +// CHECK: sbbb $127, 32493 +// CHECK: encoding: [0x80,0x1d,0xed,0x7e,0x00,0x00,0x7f] + sbbb $0x7f,0x7eed + +// CHECK: sbbb $127, 3133065982 +// CHECK: encoding: [0x80,0x1d,0xfe,0xca,0xbe,0xba,0x7f] + sbbb $0x7f,0xbabecafe + +// CHECK: sbbb $127, 305419896 +// CHECK: encoding: [0x80,0x1d,0x78,0x56,0x34,0x12,0x7f] + sbbb $0x7f,0x12345678 + +// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0x9c,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x1d,0x45,0x00,0x00,0x00,0xce,0x7a] + sbbw $0x7ace,0x45 + +// CHECK: sbbw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x1d,0xed,0x7e,0x00,0x00,0xce,0x7a] + sbbw $0x7ace,0x7eed + +// CHECK: sbbw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x1d,0xfe,0xca,0xbe,0xba,0xce,0x7a] + sbbw $0x7ace,0xbabecafe + +// CHECK: sbbw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x1d,0x78,0x56,0x34,0x12,0xce,0x7a] + sbbw $0x7ace,0x12345678 + +// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x9c,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $2063514302, 69 +// CHECK: encoding: [0x81,0x1d,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + sbbl $0x7afebabe,0x45 + +// CHECK: sbbl $2063514302, 32493 +// CHECK: encoding: [0x81,0x1d,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + sbbl $0x7afebabe,0x7eed + +// CHECK: sbbl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x1d,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + sbbl $0x7afebabe,0xbabecafe + +// CHECK: sbbl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x1d,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + sbbl $0x7afebabe,0x12345678 + +// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x9c,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sbbl $324478056, 69 +// CHECK: encoding: [0x81,0x1d,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + sbbl $0x13572468,0x45 + +// CHECK: sbbl $324478056, 32493 +// CHECK: encoding: [0x81,0x1d,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + sbbl $0x13572468,0x7eed + +// CHECK: sbbl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x1d,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + sbbl $0x13572468,0xbabecafe + +// CHECK: sbbl $324478056, 305419896 +// CHECK: encoding: [0x81,0x1d,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + sbbl $0x13572468,0x12345678 + +// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xbc,0xcb,0xef,0xbe,0xad,0xde,0xfe] + cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $254, 69 +// CHECK: encoding: [0x80,0x3d,0x45,0x00,0x00,0x00,0xfe] + cmpb $0xfe,0x45 + +// CHECK: cmpb $254, 32493 +// CHECK: encoding: [0x80,0x3d,0xed,0x7e,0x00,0x00,0xfe] + cmpb $0xfe,0x7eed + +// CHECK: cmpb $254, 3133065982 +// CHECK: encoding: [0x80,0x3d,0xfe,0xca,0xbe,0xba,0xfe] + cmpb $0xfe,0xbabecafe + +// CHECK: cmpb $254, 305419896 +// CHECK: encoding: [0x80,0x3d,0x78,0x56,0x34,0x12,0xfe] + cmpb $0xfe,0x12345678 + +// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xbc,0xcb,0xef,0xbe,0xad,0xde,0x7f] + cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpb $127, 69 +// CHECK: encoding: [0x80,0x3d,0x45,0x00,0x00,0x00,0x7f] + cmpb $0x7f,0x45 + +// CHECK: cmpb $127, 32493 +// CHECK: encoding: [0x80,0x3d,0xed,0x7e,0x00,0x00,0x7f] + cmpb $0x7f,0x7eed + +// CHECK: cmpb $127, 3133065982 +// CHECK: encoding: [0x80,0x3d,0xfe,0xca,0xbe,0xba,0x7f] + cmpb $0x7f,0xbabecafe + +// CHECK: cmpb $127, 305419896 +// CHECK: encoding: [0x80,0x3d,0x78,0x56,0x34,0x12,0x7f] + cmpb $0x7f,0x12345678 + +// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0xbc,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x3d,0x45,0x00,0x00,0x00,0xce,0x7a] + cmpw $0x7ace,0x45 + +// CHECK: cmpw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x3d,0xed,0x7e,0x00,0x00,0xce,0x7a] + cmpw $0x7ace,0x7eed + +// CHECK: cmpw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x3d,0xfe,0xca,0xbe,0xba,0xce,0x7a] + cmpw $0x7ace,0xbabecafe + +// CHECK: cmpw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x3d,0x78,0x56,0x34,0x12,0xce,0x7a] + cmpw $0x7ace,0x12345678 + +// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xbc,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $2063514302, 69 +// CHECK: encoding: [0x81,0x3d,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + cmpl $0x7afebabe,0x45 + +// CHECK: cmpl $2063514302, 32493 +// CHECK: encoding: [0x81,0x3d,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + cmpl $0x7afebabe,0x7eed + +// CHECK: cmpl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x3d,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + cmpl $0x7afebabe,0xbabecafe + +// CHECK: cmpl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x3d,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + cmpl $0x7afebabe,0x12345678 + +// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xbc,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpl $324478056, 69 +// CHECK: encoding: [0x81,0x3d,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + cmpl $0x13572468,0x45 + +// CHECK: cmpl $324478056, 32493 +// CHECK: encoding: [0x81,0x3d,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + cmpl $0x13572468,0x7eed + +// CHECK: cmpl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x3d,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + cmpl $0x13572468,0xbabecafe + +// CHECK: cmpl $324478056, 305419896 +// CHECK: encoding: [0x81,0x3d,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + cmpl $0x13572468,0x12345678 + +// CHECK: testb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf6,0x84,0xcb,0xef,0xbe,0xad,0xde,0x7f] + testb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testb $127, 69 +// CHECK: encoding: [0xf6,0x05,0x45,0x00,0x00,0x00,0x7f] + testb $0x7f,0x45 + +// CHECK: testb $127, 32493 +// CHECK: encoding: [0xf6,0x05,0xed,0x7e,0x00,0x00,0x7f] + testb $0x7f,0x7eed + +// CHECK: testb $127, 3133065982 +// CHECK: encoding: [0xf6,0x05,0xfe,0xca,0xbe,0xba,0x7f] + testb $0x7f,0xbabecafe + +// CHECK: testb $127, 305419896 +// CHECK: encoding: [0xf6,0x05,0x78,0x56,0x34,0x12,0x7f] + testb $0x7f,0x12345678 + +// CHECK: testw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0xf7,0x84,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + testw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testw $31438, 69 +// CHECK: encoding: [0x66,0xf7,0x05,0x45,0x00,0x00,0x00,0xce,0x7a] + testw $0x7ace,0x45 + +// CHECK: testw $31438, 32493 +// CHECK: encoding: [0x66,0xf7,0x05,0xed,0x7e,0x00,0x00,0xce,0x7a] + testw $0x7ace,0x7eed + +// CHECK: testw $31438, 3133065982 +// CHECK: encoding: [0x66,0xf7,0x05,0xfe,0xca,0xbe,0xba,0xce,0x7a] + testw $0x7ace,0xbabecafe + +// CHECK: testw $31438, 305419896 +// CHECK: encoding: [0x66,0xf7,0x05,0x78,0x56,0x34,0x12,0xce,0x7a] + testw $0x7ace,0x12345678 + +// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0x84,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $2063514302, 69 +// CHECK: encoding: [0xf7,0x05,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + testl $0x7afebabe,0x45 + +// CHECK: testl $2063514302, 32493 +// CHECK: encoding: [0xf7,0x05,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + testl $0x7afebabe,0x7eed + +// CHECK: testl $2063514302, 3133065982 +// CHECK: encoding: [0xf7,0x05,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + testl $0x7afebabe,0xbabecafe + +// CHECK: testl $2063514302, 305419896 +// CHECK: encoding: [0xf7,0x05,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + testl $0x7afebabe,0x12345678 + +// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0x84,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + testl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: testl $324478056, 69 +// CHECK: encoding: [0xf7,0x05,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + testl $0x13572468,0x45 + +// CHECK: testl $324478056, 32493 +// CHECK: encoding: [0xf7,0x05,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + testl $0x13572468,0x7eed + +// CHECK: testl $324478056, 3133065982 +// CHECK: encoding: [0xf7,0x05,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + testl $0x13572468,0xbabecafe + +// CHECK: testl $324478056, 305419896 +// CHECK: encoding: [0xf7,0x05,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + testl $0x13572468,0x12345678 + +// CHECK: andb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xa4,0xcb,0xef,0xbe,0xad,0xde,0xfe] + andb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $254, 69 +// CHECK: encoding: [0x80,0x25,0x45,0x00,0x00,0x00,0xfe] + andb $0xfe,0x45 + +// CHECK: andb $254, 32493 +// CHECK: encoding: [0x80,0x25,0xed,0x7e,0x00,0x00,0xfe] + andb $0xfe,0x7eed + +// CHECK: andb $254, 3133065982 +// CHECK: encoding: [0x80,0x25,0xfe,0xca,0xbe,0xba,0xfe] + andb $0xfe,0xbabecafe + +// CHECK: andb $254, 305419896 +// CHECK: encoding: [0x80,0x25,0x78,0x56,0x34,0x12,0xfe] + andb $0xfe,0x12345678 + +// CHECK: andb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x7f] + andb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andb $127, 69 +// CHECK: encoding: [0x80,0x25,0x45,0x00,0x00,0x00,0x7f] + andb $0x7f,0x45 + +// CHECK: andb $127, 32493 +// CHECK: encoding: [0x80,0x25,0xed,0x7e,0x00,0x00,0x7f] + andb $0x7f,0x7eed + +// CHECK: andb $127, 3133065982 +// CHECK: encoding: [0x80,0x25,0xfe,0xca,0xbe,0xba,0x7f] + andb $0x7f,0xbabecafe + +// CHECK: andb $127, 305419896 +// CHECK: encoding: [0x80,0x25,0x78,0x56,0x34,0x12,0x7f] + andb $0x7f,0x12345678 + +// CHECK: andw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0xa4,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + andw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x25,0x45,0x00,0x00,0x00,0xce,0x7a] + andw $0x7ace,0x45 + +// CHECK: andw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x25,0xed,0x7e,0x00,0x00,0xce,0x7a] + andw $0x7ace,0x7eed + +// CHECK: andw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x25,0xfe,0xca,0xbe,0xba,0xce,0x7a] + andw $0x7ace,0xbabecafe + +// CHECK: andw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x25,0x78,0x56,0x34,0x12,0xce,0x7a] + andw $0x7ace,0x12345678 + +// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xa4,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $2063514302, 69 +// CHECK: encoding: [0x81,0x25,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + andl $0x7afebabe,0x45 + +// CHECK: andl $2063514302, 32493 +// CHECK: encoding: [0x81,0x25,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + andl $0x7afebabe,0x7eed + +// CHECK: andl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x25,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + andl $0x7afebabe,0xbabecafe + +// CHECK: andl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x25,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + andl $0x7afebabe,0x12345678 + +// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + andl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: andl $324478056, 69 +// CHECK: encoding: [0x81,0x25,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + andl $0x13572468,0x45 + +// CHECK: andl $324478056, 32493 +// CHECK: encoding: [0x81,0x25,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + andl $0x13572468,0x7eed + +// CHECK: andl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x25,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + andl $0x13572468,0xbabecafe + +// CHECK: andl $324478056, 305419896 +// CHECK: encoding: [0x81,0x25,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + andl $0x13572468,0x12345678 + +// CHECK: orb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x8c,0xcb,0xef,0xbe,0xad,0xde,0xfe] + orb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $254, 69 +// CHECK: encoding: [0x80,0x0d,0x45,0x00,0x00,0x00,0xfe] + orb $0xfe,0x45 + +// CHECK: orb $254, 32493 +// CHECK: encoding: [0x80,0x0d,0xed,0x7e,0x00,0x00,0xfe] + orb $0xfe,0x7eed + +// CHECK: orb $254, 3133065982 +// CHECK: encoding: [0x80,0x0d,0xfe,0xca,0xbe,0xba,0xfe] + orb $0xfe,0xbabecafe + +// CHECK: orb $254, 305419896 +// CHECK: encoding: [0x80,0x0d,0x78,0x56,0x34,0x12,0xfe] + orb $0xfe,0x12345678 + +// CHECK: orb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x8c,0xcb,0xef,0xbe,0xad,0xde,0x7f] + orb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orb $127, 69 +// CHECK: encoding: [0x80,0x0d,0x45,0x00,0x00,0x00,0x7f] + orb $0x7f,0x45 + +// CHECK: orb $127, 32493 +// CHECK: encoding: [0x80,0x0d,0xed,0x7e,0x00,0x00,0x7f] + orb $0x7f,0x7eed + +// CHECK: orb $127, 3133065982 +// CHECK: encoding: [0x80,0x0d,0xfe,0xca,0xbe,0xba,0x7f] + orb $0x7f,0xbabecafe + +// CHECK: orb $127, 305419896 +// CHECK: encoding: [0x80,0x0d,0x78,0x56,0x34,0x12,0x7f] + orb $0x7f,0x12345678 + +// CHECK: orw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0x8c,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + orw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x0d,0x45,0x00,0x00,0x00,0xce,0x7a] + orw $0x7ace,0x45 + +// CHECK: orw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x0d,0xed,0x7e,0x00,0x00,0xce,0x7a] + orw $0x7ace,0x7eed + +// CHECK: orw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x0d,0xfe,0xca,0xbe,0xba,0xce,0x7a] + orw $0x7ace,0xbabecafe + +// CHECK: orw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x0d,0x78,0x56,0x34,0x12,0xce,0x7a] + orw $0x7ace,0x12345678 + +// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x8c,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $2063514302, 69 +// CHECK: encoding: [0x81,0x0d,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + orl $0x7afebabe,0x45 + +// CHECK: orl $2063514302, 32493 +// CHECK: encoding: [0x81,0x0d,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + orl $0x7afebabe,0x7eed + +// CHECK: orl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x0d,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + orl $0x7afebabe,0xbabecafe + +// CHECK: orl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x0d,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + orl $0x7afebabe,0x12345678 + +// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x8c,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + orl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: orl $324478056, 69 +// CHECK: encoding: [0x81,0x0d,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + orl $0x13572468,0x45 + +// CHECK: orl $324478056, 32493 +// CHECK: encoding: [0x81,0x0d,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + orl $0x13572468,0x7eed + +// CHECK: orl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x0d,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + orl $0x13572468,0xbabecafe + +// CHECK: orl $324478056, 305419896 +// CHECK: encoding: [0x81,0x0d,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + orl $0x13572468,0x12345678 + +// CHECK: xorb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xb4,0xcb,0xef,0xbe,0xad,0xde,0xfe] + xorb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $254, 69 +// CHECK: encoding: [0x80,0x35,0x45,0x00,0x00,0x00,0xfe] + xorb $0xfe,0x45 + +// CHECK: xorb $254, 32493 +// CHECK: encoding: [0x80,0x35,0xed,0x7e,0x00,0x00,0xfe] + xorb $0xfe,0x7eed + +// CHECK: xorb $254, 3133065982 +// CHECK: encoding: [0x80,0x35,0xfe,0xca,0xbe,0xba,0xfe] + xorb $0xfe,0xbabecafe + +// CHECK: xorb $254, 305419896 +// CHECK: encoding: [0x80,0x35,0x78,0x56,0x34,0x12,0xfe] + xorb $0xfe,0x12345678 + +// CHECK: xorb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0xb4,0xcb,0xef,0xbe,0xad,0xde,0x7f] + xorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorb $127, 69 +// CHECK: encoding: [0x80,0x35,0x45,0x00,0x00,0x00,0x7f] + xorb $0x7f,0x45 + +// CHECK: xorb $127, 32493 +// CHECK: encoding: [0x80,0x35,0xed,0x7e,0x00,0x00,0x7f] + xorb $0x7f,0x7eed + +// CHECK: xorb $127, 3133065982 +// CHECK: encoding: [0x80,0x35,0xfe,0xca,0xbe,0xba,0x7f] + xorb $0x7f,0xbabecafe + +// CHECK: xorb $127, 305419896 +// CHECK: encoding: [0x80,0x35,0x78,0x56,0x34,0x12,0x7f] + xorb $0x7f,0x12345678 + +// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0xb4,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x35,0x45,0x00,0x00,0x00,0xce,0x7a] + xorw $0x7ace,0x45 + +// CHECK: xorw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x35,0xed,0x7e,0x00,0x00,0xce,0x7a] + xorw $0x7ace,0x7eed + +// CHECK: xorw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x35,0xfe,0xca,0xbe,0xba,0xce,0x7a] + xorw $0x7ace,0xbabecafe + +// CHECK: xorw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x35,0x78,0x56,0x34,0x12,0xce,0x7a] + xorw $0x7ace,0x12345678 + +// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xb4,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $2063514302, 69 +// CHECK: encoding: [0x81,0x35,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + xorl $0x7afebabe,0x45 + +// CHECK: xorl $2063514302, 32493 +// CHECK: encoding: [0x81,0x35,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + xorl $0x7afebabe,0x7eed + +// CHECK: xorl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x35,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + xorl $0x7afebabe,0xbabecafe + +// CHECK: xorl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x35,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + xorl $0x7afebabe,0x12345678 + +// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0xb4,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: xorl $324478056, 69 +// CHECK: encoding: [0x81,0x35,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + xorl $0x13572468,0x45 + +// CHECK: xorl $324478056, 32493 +// CHECK: encoding: [0x81,0x35,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + xorl $0x13572468,0x7eed + +// CHECK: xorl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x35,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + xorl $0x13572468,0xbabecafe + +// CHECK: xorl $324478056, 305419896 +// CHECK: encoding: [0x81,0x35,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + xorl $0x13572468,0x12345678 + +// CHECK: adcb $254, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x94,0xcb,0xef,0xbe,0xad,0xde,0xfe] + adcb $0xfe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $254, 69 +// CHECK: encoding: [0x80,0x15,0x45,0x00,0x00,0x00,0xfe] + adcb $0xfe,0x45 + +// CHECK: adcb $254, 32493 +// CHECK: encoding: [0x80,0x15,0xed,0x7e,0x00,0x00,0xfe] + adcb $0xfe,0x7eed + +// CHECK: adcb $254, 3133065982 +// CHECK: encoding: [0x80,0x15,0xfe,0xca,0xbe,0xba,0xfe] + adcb $0xfe,0xbabecafe + +// CHECK: adcb $254, 305419896 +// CHECK: encoding: [0x80,0x15,0x78,0x56,0x34,0x12,0xfe] + adcb $0xfe,0x12345678 + +// CHECK: adcb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x80,0x94,0xcb,0xef,0xbe,0xad,0xde,0x7f] + adcb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcb $127, 69 +// CHECK: encoding: [0x80,0x15,0x45,0x00,0x00,0x00,0x7f] + adcb $0x7f,0x45 + +// CHECK: adcb $127, 32493 +// CHECK: encoding: [0x80,0x15,0xed,0x7e,0x00,0x00,0x7f] + adcb $0x7f,0x7eed + +// CHECK: adcb $127, 3133065982 +// CHECK: encoding: [0x80,0x15,0xfe,0xca,0xbe,0xba,0x7f] + adcb $0x7f,0xbabecafe + +// CHECK: adcb $127, 305419896 +// CHECK: encoding: [0x80,0x15,0x78,0x56,0x34,0x12,0x7f] + adcb $0x7f,0x12345678 + +// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x81,0x94,0xcb,0xef,0xbe,0xad,0xde,0xce,0x7a] + adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcw $31438, 69 +// CHECK: encoding: [0x66,0x81,0x15,0x45,0x00,0x00,0x00,0xce,0x7a] + adcw $0x7ace,0x45 + +// CHECK: adcw $31438, 32493 +// CHECK: encoding: [0x66,0x81,0x15,0xed,0x7e,0x00,0x00,0xce,0x7a] + adcw $0x7ace,0x7eed + +// CHECK: adcw $31438, 3133065982 +// CHECK: encoding: [0x66,0x81,0x15,0xfe,0xca,0xbe,0xba,0xce,0x7a] + adcw $0x7ace,0xbabecafe + +// CHECK: adcw $31438, 305419896 +// CHECK: encoding: [0x66,0x81,0x15,0x78,0x56,0x34,0x12,0xce,0x7a] + adcw $0x7ace,0x12345678 + +// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x94,0xcb,0xef,0xbe,0xad,0xde,0xbe,0xba,0xfe,0x7a] + adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $2063514302, 69 +// CHECK: encoding: [0x81,0x15,0x45,0x00,0x00,0x00,0xbe,0xba,0xfe,0x7a] + adcl $0x7afebabe,0x45 + +// CHECK: adcl $2063514302, 32493 +// CHECK: encoding: [0x81,0x15,0xed,0x7e,0x00,0x00,0xbe,0xba,0xfe,0x7a] + adcl $0x7afebabe,0x7eed + +// CHECK: adcl $2063514302, 3133065982 +// CHECK: encoding: [0x81,0x15,0xfe,0xca,0xbe,0xba,0xbe,0xba,0xfe,0x7a] + adcl $0x7afebabe,0xbabecafe + +// CHECK: adcl $2063514302, 305419896 +// CHECK: encoding: [0x81,0x15,0x78,0x56,0x34,0x12,0xbe,0xba,0xfe,0x7a] + adcl $0x7afebabe,0x12345678 + +// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x81,0x94,0xcb,0xef,0xbe,0xad,0xde,0x68,0x24,0x57,0x13] + adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: adcl $324478056, 69 +// CHECK: encoding: [0x81,0x15,0x45,0x00,0x00,0x00,0x68,0x24,0x57,0x13] + adcl $0x13572468,0x45 + +// CHECK: adcl $324478056, 32493 +// CHECK: encoding: [0x81,0x15,0xed,0x7e,0x00,0x00,0x68,0x24,0x57,0x13] + adcl $0x13572468,0x7eed + +// CHECK: adcl $324478056, 3133065982 +// CHECK: encoding: [0x81,0x15,0xfe,0xca,0xbe,0xba,0x68,0x24,0x57,0x13] + adcl $0x13572468,0xbabecafe + +// CHECK: adcl $324478056, 305419896 +// CHECK: encoding: [0x81,0x15,0x78,0x56,0x34,0x12,0x68,0x24,0x57,0x13] + adcl $0x13572468,0x12345678 + +// CHECK: negl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0x9c,0xcb,0xef,0xbe,0xad,0xde] + negl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: negw 32493 +// CHECK: encoding: [0x66,0xf7,0x1d,0xed,0x7e,0x00,0x00] + negw 0x7eed + +// CHECK: negl 3133065982 +// CHECK: encoding: [0xf7,0x1d,0xfe,0xca,0xbe,0xba] + negl 0xbabecafe + +// CHECK: negl 305419896 +// CHECK: encoding: [0xf7,0x1d,0x78,0x56,0x34,0x12] + negl 0x12345678 + +// CHECK: notl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0x94,0xcb,0xef,0xbe,0xad,0xde] + notl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: notw 32493 +// CHECK: encoding: [0x66,0xf7,0x15,0xed,0x7e,0x00,0x00] + notw 0x7eed + +// CHECK: notl 3133065982 +// CHECK: encoding: [0xf7,0x15,0xfe,0xca,0xbe,0xba] + notl 0xbabecafe + +// CHECK: notl 305419896 +// CHECK: encoding: [0xf7,0x15,0x78,0x56,0x34,0x12] + notl 0x12345678 + +// CHECK: cbtw +// CHECK: encoding: [0x66,0x98] + cbtw + +// CHECK: cwtl +// CHECK: encoding: [0x98] + cwtl + +// CHECK: cwtd +// CHECK: encoding: [0x66,0x99] + cwtd + +// CHECK: cltd +// CHECK: encoding: [0x99] + cltd + +// CHECK: mull 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0xa4,0xcb,0xef,0xbe,0xad,0xde] + mull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: mulw 32493 +// CHECK: encoding: [0x66,0xf7,0x25,0xed,0x7e,0x00,0x00] + mulw 0x7eed + +// CHECK: mull 3133065982 +// CHECK: encoding: [0xf7,0x25,0xfe,0xca,0xbe,0xba] + mull 0xbabecafe + +// CHECK: mull 305419896 +// CHECK: encoding: [0xf7,0x25,0x78,0x56,0x34,0x12] + mull 0x12345678 + +// CHECK: imull 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0xac,0xcb,0xef,0xbe,0xad,0xde] + imull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: imulw 32493 +// CHECK: encoding: [0x66,0xf7,0x2d,0xed,0x7e,0x00,0x00] + imulw 0x7eed + +// CHECK: imull 3133065982 +// CHECK: encoding: [0xf7,0x2d,0xfe,0xca,0xbe,0xba] + imull 0xbabecafe + +// CHECK: imull 305419896 +// CHECK: encoding: [0xf7,0x2d,0x78,0x56,0x34,0x12] + imull 0x12345678 + +// CHECK: divl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0xb4,0xcb,0xef,0xbe,0xad,0xde] + divl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: divw 32493 +// CHECK: encoding: [0x66,0xf7,0x35,0xed,0x7e,0x00,0x00] + divw 0x7eed + +// CHECK: divl 3133065982 +// CHECK: encoding: [0xf7,0x35,0xfe,0xca,0xbe,0xba] + divl 0xbabecafe + +// CHECK: divl 305419896 +// CHECK: encoding: [0xf7,0x35,0x78,0x56,0x34,0x12] + divl 0x12345678 + +// CHECK: idivl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf7,0xbc,0xcb,0xef,0xbe,0xad,0xde] + idivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: idivw 32493 +// CHECK: encoding: [0x66,0xf7,0x3d,0xed,0x7e,0x00,0x00] + idivw 0x7eed + +// CHECK: idivl 3133065982 +// CHECK: encoding: [0xf7,0x3d,0xfe,0xca,0xbe,0xba] + idivl 0xbabecafe + +// CHECK: idivl 305419896 +// CHECK: encoding: [0xf7,0x3d,0x78,0x56,0x34,0x12] + idivl 0x12345678 + +// CHECK: roll $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0x84,0xcb,0xef,0xbe,0xad,0xde,0x00] + roll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: roll $0, 69 +// CHECK: encoding: [0xc1,0x05,0x45,0x00,0x00,0x00,0x00] + roll $0,0x45 + +// CHECK: roll $0, 32493 +// CHECK: encoding: [0xc1,0x05,0xed,0x7e,0x00,0x00,0x00] + roll $0,0x7eed + +// CHECK: roll $0, 3133065982 +// CHECK: encoding: [0xc1,0x05,0xfe,0xca,0xbe,0xba,0x00] + roll $0,0xbabecafe + +// CHECK: roll $0, 305419896 +// CHECK: encoding: [0xc1,0x05,0x78,0x56,0x34,0x12,0x00] + roll $0,0x12345678 + +// CHECK: rolb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0x84,0xcb,0xef,0xbe,0xad,0xde,0x7f] + rolb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rolb $127, 69 +// CHECK: encoding: [0xc0,0x05,0x45,0x00,0x00,0x00,0x7f] + rolb $0x7f,0x45 + +// CHECK: rolb $127, 32493 +// CHECK: encoding: [0xc0,0x05,0xed,0x7e,0x00,0x00,0x7f] + rolb $0x7f,0x7eed + +// CHECK: rolb $127, 3133065982 +// CHECK: encoding: [0xc0,0x05,0xfe,0xca,0xbe,0xba,0x7f] + rolb $0x7f,0xbabecafe + +// CHECK: rolb $127, 305419896 +// CHECK: encoding: [0xc0,0x05,0x78,0x56,0x34,0x12,0x7f] + rolb $0x7f,0x12345678 + +// CHECK: roll 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0x84,0xcb,0xef,0xbe,0xad,0xde] + roll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rolw 32493 +// CHECK: encoding: [0x66,0xd1,0x05,0xed,0x7e,0x00,0x00] + rolw 0x7eed + +// CHECK: roll 3133065982 +// CHECK: encoding: [0xd1,0x05,0xfe,0xca,0xbe,0xba] + roll 0xbabecafe + +// CHECK: roll 305419896 +// CHECK: encoding: [0xd1,0x05,0x78,0x56,0x34,0x12] + roll 0x12345678 + +// CHECK: rorl $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0x8c,0xcb,0xef,0xbe,0xad,0xde,0x00] + rorl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorl $0, 69 +// CHECK: encoding: [0xc1,0x0d,0x45,0x00,0x00,0x00,0x00] + rorl $0,0x45 + +// CHECK: rorl $0, 32493 +// CHECK: encoding: [0xc1,0x0d,0xed,0x7e,0x00,0x00,0x00] + rorl $0,0x7eed + +// CHECK: rorl $0, 3133065982 +// CHECK: encoding: [0xc1,0x0d,0xfe,0xca,0xbe,0xba,0x00] + rorl $0,0xbabecafe + +// CHECK: rorl $0, 305419896 +// CHECK: encoding: [0xc1,0x0d,0x78,0x56,0x34,0x12,0x00] + rorl $0,0x12345678 + +// CHECK: rorb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0x8c,0xcb,0xef,0xbe,0xad,0xde,0x7f] + rorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorb $127, 69 +// CHECK: encoding: [0xc0,0x0d,0x45,0x00,0x00,0x00,0x7f] + rorb $0x7f,0x45 + +// CHECK: rorb $127, 32493 +// CHECK: encoding: [0xc0,0x0d,0xed,0x7e,0x00,0x00,0x7f] + rorb $0x7f,0x7eed + +// CHECK: rorb $127, 3133065982 +// CHECK: encoding: [0xc0,0x0d,0xfe,0xca,0xbe,0xba,0x7f] + rorb $0x7f,0xbabecafe + +// CHECK: rorb $127, 305419896 +// CHECK: encoding: [0xc0,0x0d,0x78,0x56,0x34,0x12,0x7f] + rorb $0x7f,0x12345678 + +// CHECK: rorl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0x8c,0xcb,0xef,0xbe,0xad,0xde] + rorl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: rorw 32493 +// CHECK: encoding: [0x66,0xd1,0x0d,0xed,0x7e,0x00,0x00] + rorw 0x7eed + +// CHECK: rorl 3133065982 +// CHECK: encoding: [0xd1,0x0d,0xfe,0xca,0xbe,0xba] + rorl 0xbabecafe + +// CHECK: rorl 305419896 +// CHECK: encoding: [0xd1,0x0d,0x78,0x56,0x34,0x12] + rorl 0x12345678 + +// CHECK: shll $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x00] + sall $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll $0, 69 +// CHECK: encoding: [0xc1,0x25,0x45,0x00,0x00,0x00,0x00] + sall $0,0x45 + +// CHECK: shll $0, 32493 +// CHECK: encoding: [0xc1,0x25,0xed,0x7e,0x00,0x00,0x00] + sall $0,0x7eed + +// CHECK: shll $0, 3133065982 +// CHECK: encoding: [0xc1,0x25,0xfe,0xca,0xbe,0xba,0x00] + sall $0,0xbabecafe + +// CHECK: shll $0, 305419896 +// CHECK: encoding: [0xc1,0x25,0x78,0x56,0x34,0x12,0x00] + sall $0,0x12345678 + +// CHECK: shlb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x7f] + salb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlb $127, 69 +// CHECK: encoding: [0xc0,0x25,0x45,0x00,0x00,0x00,0x7f] + salb $0x7f,0x45 + +// CHECK: shlb $127, 32493 +// CHECK: encoding: [0xc0,0x25,0xed,0x7e,0x00,0x00,0x7f] + salb $0x7f,0x7eed + +// CHECK: shlb $127, 3133065982 +// CHECK: encoding: [0xc0,0x25,0xfe,0xca,0xbe,0xba,0x7f] + salb $0x7f,0xbabecafe + +// CHECK: shlb $127, 305419896 +// CHECK: encoding: [0xc0,0x25,0x78,0x56,0x34,0x12,0x7f] + salb $0x7f,0x12345678 + +// CHECK: shll 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0xa4,0xcb,0xef,0xbe,0xad,0xde] + sall 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlw 32493 +// CHECK: encoding: [0x66,0xd1,0x25,0xed,0x7e,0x00,0x00] + salw 0x7eed + +// CHECK: shll 3133065982 +// CHECK: encoding: [0xd1,0x25,0xfe,0xca,0xbe,0xba] + sall 0xbabecafe + +// CHECK: shll 305419896 +// CHECK: encoding: [0xd1,0x25,0x78,0x56,0x34,0x12] + sall 0x12345678 + +// CHECK: shll $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x00] + shll $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shll $0, 69 +// CHECK: encoding: [0xc1,0x25,0x45,0x00,0x00,0x00,0x00] + shll $0,0x45 + +// CHECK: shll $0, 32493 +// CHECK: encoding: [0xc1,0x25,0xed,0x7e,0x00,0x00,0x00] + shll $0,0x7eed + +// CHECK: shll $0, 3133065982 +// CHECK: encoding: [0xc1,0x25,0xfe,0xca,0xbe,0xba,0x00] + shll $0,0xbabecafe + +// CHECK: shll $0, 305419896 +// CHECK: encoding: [0xc1,0x25,0x78,0x56,0x34,0x12,0x00] + shll $0,0x12345678 + +// CHECK: shlb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0xa4,0xcb,0xef,0xbe,0xad,0xde,0x7f] + shlb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlb $127, 69 +// CHECK: encoding: [0xc0,0x25,0x45,0x00,0x00,0x00,0x7f] + shlb $0x7f,0x45 + +// CHECK: shlb $127, 32493 +// CHECK: encoding: [0xc0,0x25,0xed,0x7e,0x00,0x00,0x7f] + shlb $0x7f,0x7eed + +// CHECK: shlb $127, 3133065982 +// CHECK: encoding: [0xc0,0x25,0xfe,0xca,0xbe,0xba,0x7f] + shlb $0x7f,0xbabecafe + +// CHECK: shlb $127, 305419896 +// CHECK: encoding: [0xc0,0x25,0x78,0x56,0x34,0x12,0x7f] + shlb $0x7f,0x12345678 + +// CHECK: shll 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0xa4,0xcb,0xef,0xbe,0xad,0xde] + shll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shlw 32493 +// CHECK: encoding: [0x66,0xd1,0x25,0xed,0x7e,0x00,0x00] + shlw 0x7eed + +// CHECK: shll 3133065982 +// CHECK: encoding: [0xd1,0x25,0xfe,0xca,0xbe,0xba] + shll 0xbabecafe + +// CHECK: shll 305419896 +// CHECK: encoding: [0xd1,0x25,0x78,0x56,0x34,0x12] + shll 0x12345678 + +// CHECK: shrl $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0xac,0xcb,0xef,0xbe,0xad,0xde,0x00] + shrl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrl $0, 69 +// CHECK: encoding: [0xc1,0x2d,0x45,0x00,0x00,0x00,0x00] + shrl $0,0x45 + +// CHECK: shrl $0, 32493 +// CHECK: encoding: [0xc1,0x2d,0xed,0x7e,0x00,0x00,0x00] + shrl $0,0x7eed + +// CHECK: shrl $0, 3133065982 +// CHECK: encoding: [0xc1,0x2d,0xfe,0xca,0xbe,0xba,0x00] + shrl $0,0xbabecafe + +// CHECK: shrl $0, 305419896 +// CHECK: encoding: [0xc1,0x2d,0x78,0x56,0x34,0x12,0x00] + shrl $0,0x12345678 + +// CHECK: shrb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0xac,0xcb,0xef,0xbe,0xad,0xde,0x7f] + shrb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrb $127, 69 +// CHECK: encoding: [0xc0,0x2d,0x45,0x00,0x00,0x00,0x7f] + shrb $0x7f,0x45 + +// CHECK: shrb $127, 32493 +// CHECK: encoding: [0xc0,0x2d,0xed,0x7e,0x00,0x00,0x7f] + shrb $0x7f,0x7eed + +// CHECK: shrb $127, 3133065982 +// CHECK: encoding: [0xc0,0x2d,0xfe,0xca,0xbe,0xba,0x7f] + shrb $0x7f,0xbabecafe + +// CHECK: shrb $127, 305419896 +// CHECK: encoding: [0xc0,0x2d,0x78,0x56,0x34,0x12,0x7f] + shrb $0x7f,0x12345678 + +// CHECK: shrl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0xac,0xcb,0xef,0xbe,0xad,0xde] + shrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: shrw 32493 +// CHECK: encoding: [0x66,0xd1,0x2d,0xed,0x7e,0x00,0x00] + shrw 0x7eed + +// CHECK: shrl 3133065982 +// CHECK: encoding: [0xd1,0x2d,0xfe,0xca,0xbe,0xba] + shrl 0xbabecafe + +// CHECK: shrl 305419896 +// CHECK: encoding: [0xd1,0x2d,0x78,0x56,0x34,0x12] + shrl 0x12345678 + +// CHECK: sarl $0, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc1,0xbc,0xcb,0xef,0xbe,0xad,0xde,0x00] + sarl $0,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarl $0, 69 +// CHECK: encoding: [0xc1,0x3d,0x45,0x00,0x00,0x00,0x00] + sarl $0,0x45 + +// CHECK: sarl $0, 32493 +// CHECK: encoding: [0xc1,0x3d,0xed,0x7e,0x00,0x00,0x00] + sarl $0,0x7eed + +// CHECK: sarl $0, 3133065982 +// CHECK: encoding: [0xc1,0x3d,0xfe,0xca,0xbe,0xba,0x00] + sarl $0,0xbabecafe + +// CHECK: sarl $0, 305419896 +// CHECK: encoding: [0xc1,0x3d,0x78,0x56,0x34,0x12,0x00] + sarl $0,0x12345678 + +// CHECK: sarb $127, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xc0,0xbc,0xcb,0xef,0xbe,0xad,0xde,0x7f] + sarb $0x7f,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarb $127, 69 +// CHECK: encoding: [0xc0,0x3d,0x45,0x00,0x00,0x00,0x7f] + sarb $0x7f,0x45 + +// CHECK: sarb $127, 32493 +// CHECK: encoding: [0xc0,0x3d,0xed,0x7e,0x00,0x00,0x7f] + sarb $0x7f,0x7eed + +// CHECK: sarb $127, 3133065982 +// CHECK: encoding: [0xc0,0x3d,0xfe,0xca,0xbe,0xba,0x7f] + sarb $0x7f,0xbabecafe + +// CHECK: sarb $127, 305419896 +// CHECK: encoding: [0xc0,0x3d,0x78,0x56,0x34,0x12,0x7f] + sarb $0x7f,0x12345678 + +// CHECK: sarl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd1,0xbc,0xcb,0xef,0xbe,0xad,0xde] + sarl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sarw 32493 +// CHECK: encoding: [0x66,0xd1,0x3d,0xed,0x7e,0x00,0x00] + sarw 0x7eed + +// CHECK: sarl 3133065982 +// CHECK: encoding: [0xd1,0x3d,0xfe,0xca,0xbe,0xba] + sarl 0xbabecafe + +// CHECK: sarl 305419896 +// CHECK: encoding: [0xd1,0x3d,0x78,0x56,0x34,0x12] + sarl 0x12345678 + +// CHECK: call *%ecx +// CHECK: encoding: [0xff,0xd1] + call *%ecx + +// CHECK: call *3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0x94,0xcb,0xef,0xbe,0xad,0xde] + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call *3135175374 +// CHECK: encoding: [0xff,0x15,0xce,0xfa,0xde,0xba] + call *0xbadeface + +// CHECK: call *3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0x94,0xcb,0xef,0xbe,0xad,0xde] + call *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: call *3135175374 +// CHECK: encoding: [0xff,0x15,0xce,0xfa,0xde,0xba] + call *0xbadeface + +// CHECK: lcallw *32493 +// CHECK: encoding: [0x66,0xff,0x1d,0xed,0x7e,0x00,0x00] + lcallw *0x7eed + +// CHECK: jmp *3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0xa4,0xcb,0xef,0xbe,0xad,0xde] + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp *3135175374 +// CHECK: encoding: [0xff,0x25,0xce,0xfa,0xde,0xba] + jmp *0xbadeface + +// CHECK: jmp *3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0xa4,0xcb,0xef,0xbe,0xad,0xde] + jmp *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: jmp *3135175374 +// CHECK: encoding: [0xff,0x25,0xce,0xfa,0xde,0xba] + jmp *0xbadeface + +// CHECK: ljmpl *3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xff,0xac,0xcb,0xef,0xbe,0xad,0xde] + ljmpl *0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ljmpw *32493 +// CHECK: encoding: [0x66,0xff,0x2d,0xed,0x7e,0x00,0x00] + ljmpw *0x7eed + +// CHECK: ljmpl *3133065982 +// CHECK: encoding: [0xff,0x2d,0xfe,0xca,0xbe,0xba] + ljmpl *0xbabecafe + +// CHECK: ljmpl *305419896 +// CHECK: encoding: [0xff,0x2d,0x78,0x56,0x34,0x12] + ljmpl *0x12345678 + +// CHECK: ret +// CHECK: encoding: [0xc3] + ret + +// CHECK: lret +// CHECK: encoding: [0xcb] + lret + +// CHECK: leave +// CHECK: encoding: [0xc9] + leave + +// CHECK: seto %bl +// CHECK: encoding: [0x0f,0x90,0xc3] + seto %bl + +// CHECK: seto 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x90,0x84,0xcb,0xef,0xbe,0xad,0xde] + seto 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: seto 32493 +// CHECK: encoding: [0x0f,0x90,0x05,0xed,0x7e,0x00,0x00] + seto 0x7eed + +// CHECK: seto 3133065982 +// CHECK: encoding: [0x0f,0x90,0x05,0xfe,0xca,0xbe,0xba] + seto 0xbabecafe + +// CHECK: seto 305419896 +// CHECK: encoding: [0x0f,0x90,0x05,0x78,0x56,0x34,0x12] + seto 0x12345678 + +// CHECK: setno %bl +// CHECK: encoding: [0x0f,0x91,0xc3] + setno %bl + +// CHECK: setno 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x91,0x84,0xcb,0xef,0xbe,0xad,0xde] + setno 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setno 32493 +// CHECK: encoding: [0x0f,0x91,0x05,0xed,0x7e,0x00,0x00] + setno 0x7eed + +// CHECK: setno 3133065982 +// CHECK: encoding: [0x0f,0x91,0x05,0xfe,0xca,0xbe,0xba] + setno 0xbabecafe + +// CHECK: setno 305419896 +// CHECK: encoding: [0x0f,0x91,0x05,0x78,0x56,0x34,0x12] + setno 0x12345678 + +// CHECK: setb %bl +// CHECK: encoding: [0x0f,0x92,0xc3] + setb %bl + +// CHECK: setb 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x92,0x84,0xcb,0xef,0xbe,0xad,0xde] + setb 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setb 32493 +// CHECK: encoding: [0x0f,0x92,0x05,0xed,0x7e,0x00,0x00] + setb 0x7eed + +// CHECK: setb 3133065982 +// CHECK: encoding: [0x0f,0x92,0x05,0xfe,0xca,0xbe,0xba] + setb 0xbabecafe + +// CHECK: setb 305419896 +// CHECK: encoding: [0x0f,0x92,0x05,0x78,0x56,0x34,0x12] + setb 0x12345678 + +// CHECK: setae %bl +// CHECK: encoding: [0x0f,0x93,0xc3] + setae %bl + +// CHECK: setae 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x93,0x84,0xcb,0xef,0xbe,0xad,0xde] + setae 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setae 32493 +// CHECK: encoding: [0x0f,0x93,0x05,0xed,0x7e,0x00,0x00] + setae 0x7eed + +// CHECK: setae 3133065982 +// CHECK: encoding: [0x0f,0x93,0x05,0xfe,0xca,0xbe,0xba] + setae 0xbabecafe + +// CHECK: setae 305419896 +// CHECK: encoding: [0x0f,0x93,0x05,0x78,0x56,0x34,0x12] + setae 0x12345678 + +// CHECK: sete %bl +// CHECK: encoding: [0x0f,0x94,0xc3] + sete %bl + +// CHECK: sete 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x94,0x84,0xcb,0xef,0xbe,0xad,0xde] + sete 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sete 32493 +// CHECK: encoding: [0x0f,0x94,0x05,0xed,0x7e,0x00,0x00] + sete 0x7eed + +// CHECK: sete 3133065982 +// CHECK: encoding: [0x0f,0x94,0x05,0xfe,0xca,0xbe,0xba] + sete 0xbabecafe + +// CHECK: sete 305419896 +// CHECK: encoding: [0x0f,0x94,0x05,0x78,0x56,0x34,0x12] + sete 0x12345678 + +// CHECK: setne %bl +// CHECK: encoding: [0x0f,0x95,0xc3] + setne %bl + +// CHECK: setne 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x95,0x84,0xcb,0xef,0xbe,0xad,0xde] + setne 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setne 32493 +// CHECK: encoding: [0x0f,0x95,0x05,0xed,0x7e,0x00,0x00] + setne 0x7eed + +// CHECK: setne 3133065982 +// CHECK: encoding: [0x0f,0x95,0x05,0xfe,0xca,0xbe,0xba] + setne 0xbabecafe + +// CHECK: setne 305419896 +// CHECK: encoding: [0x0f,0x95,0x05,0x78,0x56,0x34,0x12] + setne 0x12345678 + +// CHECK: setbe %bl +// CHECK: encoding: [0x0f,0x96,0xc3] + setbe %bl + +// CHECK: setbe 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x96,0x84,0xcb,0xef,0xbe,0xad,0xde] + setbe 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setbe 32493 +// CHECK: encoding: [0x0f,0x96,0x05,0xed,0x7e,0x00,0x00] + setbe 0x7eed + +// CHECK: setbe 3133065982 +// CHECK: encoding: [0x0f,0x96,0x05,0xfe,0xca,0xbe,0xba] + setbe 0xbabecafe + +// CHECK: setbe 305419896 +// CHECK: encoding: [0x0f,0x96,0x05,0x78,0x56,0x34,0x12] + setbe 0x12345678 + +// CHECK: seta %bl +// CHECK: encoding: [0x0f,0x97,0xc3] + seta %bl + +// CHECK: seta 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x97,0x84,0xcb,0xef,0xbe,0xad,0xde] + seta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: seta 32493 +// CHECK: encoding: [0x0f,0x97,0x05,0xed,0x7e,0x00,0x00] + seta 0x7eed + +// CHECK: seta 3133065982 +// CHECK: encoding: [0x0f,0x97,0x05,0xfe,0xca,0xbe,0xba] + seta 0xbabecafe + +// CHECK: seta 305419896 +// CHECK: encoding: [0x0f,0x97,0x05,0x78,0x56,0x34,0x12] + seta 0x12345678 + +// CHECK: sets %bl +// CHECK: encoding: [0x0f,0x98,0xc3] + sets %bl + +// CHECK: sets 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x98,0x84,0xcb,0xef,0xbe,0xad,0xde] + sets 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: sets 32493 +// CHECK: encoding: [0x0f,0x98,0x05,0xed,0x7e,0x00,0x00] + sets 0x7eed + +// CHECK: sets 3133065982 +// CHECK: encoding: [0x0f,0x98,0x05,0xfe,0xca,0xbe,0xba] + sets 0xbabecafe + +// CHECK: sets 305419896 +// CHECK: encoding: [0x0f,0x98,0x05,0x78,0x56,0x34,0x12] + sets 0x12345678 + +// CHECK: setns %bl +// CHECK: encoding: [0x0f,0x99,0xc3] + setns %bl + +// CHECK: setns 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x99,0x84,0xcb,0xef,0xbe,0xad,0xde] + setns 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setns 32493 +// CHECK: encoding: [0x0f,0x99,0x05,0xed,0x7e,0x00,0x00] + setns 0x7eed + +// CHECK: setns 3133065982 +// CHECK: encoding: [0x0f,0x99,0x05,0xfe,0xca,0xbe,0xba] + setns 0xbabecafe + +// CHECK: setns 305419896 +// CHECK: encoding: [0x0f,0x99,0x05,0x78,0x56,0x34,0x12] + setns 0x12345678 + +// CHECK: setp %bl +// CHECK: encoding: [0x0f,0x9a,0xc3] + setp %bl + +// CHECK: setp 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9a,0x84,0xcb,0xef,0xbe,0xad,0xde] + setp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setp 32493 +// CHECK: encoding: [0x0f,0x9a,0x05,0xed,0x7e,0x00,0x00] + setp 0x7eed + +// CHECK: setp 3133065982 +// CHECK: encoding: [0x0f,0x9a,0x05,0xfe,0xca,0xbe,0xba] + setp 0xbabecafe + +// CHECK: setp 305419896 +// CHECK: encoding: [0x0f,0x9a,0x05,0x78,0x56,0x34,0x12] + setp 0x12345678 + +// CHECK: setnp %bl +// CHECK: encoding: [0x0f,0x9b,0xc3] + setnp %bl + +// CHECK: setnp 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9b,0x84,0xcb,0xef,0xbe,0xad,0xde] + setnp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setnp 32493 +// CHECK: encoding: [0x0f,0x9b,0x05,0xed,0x7e,0x00,0x00] + setnp 0x7eed + +// CHECK: setnp 3133065982 +// CHECK: encoding: [0x0f,0x9b,0x05,0xfe,0xca,0xbe,0xba] + setnp 0xbabecafe + +// CHECK: setnp 305419896 +// CHECK: encoding: [0x0f,0x9b,0x05,0x78,0x56,0x34,0x12] + setnp 0x12345678 + +// CHECK: setl %bl +// CHECK: encoding: [0x0f,0x9c,0xc3] + setl %bl + +// CHECK: setl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9c,0x84,0xcb,0xef,0xbe,0xad,0xde] + setl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setl 32493 +// CHECK: encoding: [0x0f,0x9c,0x05,0xed,0x7e,0x00,0x00] + setl 0x7eed + +// CHECK: setl 3133065982 +// CHECK: encoding: [0x0f,0x9c,0x05,0xfe,0xca,0xbe,0xba] + setl 0xbabecafe + +// CHECK: setl 305419896 +// CHECK: encoding: [0x0f,0x9c,0x05,0x78,0x56,0x34,0x12] + setl 0x12345678 + +// CHECK: setge %bl +// CHECK: encoding: [0x0f,0x9d,0xc3] + setge %bl + +// CHECK: setge 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9d,0x84,0xcb,0xef,0xbe,0xad,0xde] + setge 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setge 32493 +// CHECK: encoding: [0x0f,0x9d,0x05,0xed,0x7e,0x00,0x00] + setge 0x7eed + +// CHECK: setge 3133065982 +// CHECK: encoding: [0x0f,0x9d,0x05,0xfe,0xca,0xbe,0xba] + setge 0xbabecafe + +// CHECK: setge 305419896 +// CHECK: encoding: [0x0f,0x9d,0x05,0x78,0x56,0x34,0x12] + setge 0x12345678 + +// CHECK: setle %bl +// CHECK: encoding: [0x0f,0x9e,0xc3] + setle %bl + +// CHECK: setle 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9e,0x84,0xcb,0xef,0xbe,0xad,0xde] + setle 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setle 32493 +// CHECK: encoding: [0x0f,0x9e,0x05,0xed,0x7e,0x00,0x00] + setle 0x7eed + +// CHECK: setle 3133065982 +// CHECK: encoding: [0x0f,0x9e,0x05,0xfe,0xca,0xbe,0xba] + setle 0xbabecafe + +// CHECK: setle 305419896 +// CHECK: encoding: [0x0f,0x9e,0x05,0x78,0x56,0x34,0x12] + setle 0x12345678 + +// CHECK: setg %bl +// CHECK: encoding: [0x0f,0x9f,0xc3] + setg %bl + +// CHECK: setg 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x9f,0x84,0xcb,0xef,0xbe,0xad,0xde] + setg 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: setg 32493 +// CHECK: encoding: [0x0f,0x9f,0x05,0xed,0x7e,0x00,0x00] + setg 0x7eed + +// CHECK: setg 3133065982 +// CHECK: encoding: [0x0f,0x9f,0x05,0xfe,0xca,0xbe,0xba] + setg 0xbabecafe + +// CHECK: setg 305419896 +// CHECK: encoding: [0x0f,0x9f,0x05,0x78,0x56,0x34,0x12] + setg 0x12345678 + +// CHECK: rsm +// CHECK: encoding: [0x0f,0xaa] + rsm + +// CHECK: hlt +// CHECK: encoding: [0xf4] + hlt + +// CHECK: nopl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde] + nopl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: nopw 32493 +// CHECK: encoding: [0x66,0x0f,0x1f,0x05,0xed,0x7e,0x00,0x00] + nopw 0x7eed + +// CHECK: nopl 3133065982 +// CHECK: encoding: [0x0f,0x1f,0x05,0xfe,0xca,0xbe,0xba] + nopl 0xbabecafe + +// CHECK: nopl 305419896 +// CHECK: encoding: [0x0f,0x1f,0x05,0x78,0x56,0x34,0x12] + nopl 0x12345678 + +// CHECK: nop +// CHECK: encoding: [0x90] + nop + +// CHECK: lldtw 32493 +// CHECK: encoding: [0x0f,0x00,0x15,0xed,0x7e,0x00,0x00] + lldtw 0x7eed + +// CHECK: lmsww 32493 +// CHECK: encoding: [0x0f,0x01,0x35,0xed,0x7e,0x00,0x00] + lmsww 0x7eed + +// CHECK: ltrw 32493 +// CHECK: encoding: [0x0f,0x00,0x1d,0xed,0x7e,0x00,0x00] + ltrw 0x7eed + +// CHECK: sldtw 32493 +// CHECK: encoding: [0x0f,0x00,0x05,0xed,0x7e,0x00,0x00] + sldtw 0x7eed + +// CHECK: smsww 32493 +// CHECK: encoding: [0x0f,0x01,0x25,0xed,0x7e,0x00,0x00] + smsww 0x7eed + +// CHECK: strw 32493 +// CHECK: encoding: [0x0f,0x00,0x0d,0xed,0x7e,0x00,0x00] + strw 0x7eed + +// CHECK: verr %bx +// CHECK: encoding: [0x0f,0x00,0xe3] + verr %bx + +// CHECK: verr 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x00,0xa4,0xcb,0xef,0xbe,0xad,0xde] + verr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: verr 3133065982 +// CHECK: encoding: [0x0f,0x00,0x25,0xfe,0xca,0xbe,0xba] + verr 0xbabecafe + +// CHECK: verr 305419896 +// CHECK: encoding: [0x0f,0x00,0x25,0x78,0x56,0x34,0x12] + verr 0x12345678 + +// CHECK: verw %bx +// CHECK: encoding: [0x0f,0x00,0xeb] + verw %bx + +// CHECK: verw 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x00,0xac,0xcb,0xef,0xbe,0xad,0xde] + verw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: verw 3133065982 +// CHECK: encoding: [0x0f,0x00,0x2d,0xfe,0xca,0xbe,0xba] + verw 0xbabecafe + +// CHECK: verw 305419896 +// CHECK: encoding: [0x0f,0x00,0x2d,0x78,0x56,0x34,0x12] + verw 0x12345678 + +// CHECK: fld %st(2) +// CHECK: encoding: [0xd9,0xc2] + fld %st(2) + +// CHECK: fldl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdd,0x84,0xcb,0xef,0xbe,0xad,0xde] + fldl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldl 3133065982 +// CHECK: encoding: [0xdd,0x05,0xfe,0xca,0xbe,0xba] + fldl 0xbabecafe + +// CHECK: fldl 305419896 +// CHECK: encoding: [0xdd,0x05,0x78,0x56,0x34,0x12] + fldl 0x12345678 + +// CHECK: fld %st(2) +// CHECK: encoding: [0xd9,0xc2] + fld %st(2) + +// CHECK: fildl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0x84,0xcb,0xef,0xbe,0xad,0xde] + fildl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildl 3133065982 +// CHECK: encoding: [0xdb,0x05,0xfe,0xca,0xbe,0xba] + fildl 0xbabecafe + +// CHECK: fildl 305419896 +// CHECK: encoding: [0xdb,0x05,0x78,0x56,0x34,0x12] + fildl 0x12345678 + +// CHECK: fildll 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdf,0xac,0xcb,0xef,0xbe,0xad,0xde] + fildll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fildll 32493 +// CHECK: encoding: [0xdf,0x2d,0xed,0x7e,0x00,0x00] + fildll 0x7eed + +// CHECK: fildll 3133065982 +// CHECK: encoding: [0xdf,0x2d,0xfe,0xca,0xbe,0xba] + fildll 0xbabecafe + +// CHECK: fildll 305419896 +// CHECK: encoding: [0xdf,0x2d,0x78,0x56,0x34,0x12] + fildll 0x12345678 + +// CHECK: fldt 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0xac,0xcb,0xef,0xbe,0xad,0xde] + fldt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldt 32493 +// CHECK: encoding: [0xdb,0x2d,0xed,0x7e,0x00,0x00] + fldt 0x7eed + +// CHECK: fldt 3133065982 +// CHECK: encoding: [0xdb,0x2d,0xfe,0xca,0xbe,0xba] + fldt 0xbabecafe + +// CHECK: fldt 305419896 +// CHECK: encoding: [0xdb,0x2d,0x78,0x56,0x34,0x12] + fldt 0x12345678 + +// CHECK: fbld 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdf,0xa4,0xcb,0xef,0xbe,0xad,0xde] + fbld 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbld 32493 +// CHECK: encoding: [0xdf,0x25,0xed,0x7e,0x00,0x00] + fbld 0x7eed + +// CHECK: fbld 3133065982 +// CHECK: encoding: [0xdf,0x25,0xfe,0xca,0xbe,0xba] + fbld 0xbabecafe + +// CHECK: fbld 305419896 +// CHECK: encoding: [0xdf,0x25,0x78,0x56,0x34,0x12] + fbld 0x12345678 + +// CHECK: fst %st(2) +// CHECK: encoding: [0xdd,0xd2] + fst %st(2) + +// CHECK: fstl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdd,0x94,0xcb,0xef,0xbe,0xad,0xde] + fstl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstl 3133065982 +// CHECK: encoding: [0xdd,0x15,0xfe,0xca,0xbe,0xba] + fstl 0xbabecafe + +// CHECK: fstl 305419896 +// CHECK: encoding: [0xdd,0x15,0x78,0x56,0x34,0x12] + fstl 0x12345678 + +// CHECK: fst %st(2) +// CHECK: encoding: [0xdd,0xd2] + fst %st(2) + +// CHECK: fistl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0x94,0xcb,0xef,0xbe,0xad,0xde] + fistl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistl 3133065982 +// CHECK: encoding: [0xdb,0x15,0xfe,0xca,0xbe,0xba] + fistl 0xbabecafe + +// CHECK: fistl 305419896 +// CHECK: encoding: [0xdb,0x15,0x78,0x56,0x34,0x12] + fistl 0x12345678 + +// CHECK: fstp %st(2) +// CHECK: encoding: [0xdd,0xda] + fstp %st(2) + +// CHECK: fstpl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdd,0x9c,0xcb,0xef,0xbe,0xad,0xde] + fstpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpl 3133065982 +// CHECK: encoding: [0xdd,0x1d,0xfe,0xca,0xbe,0xba] + fstpl 0xbabecafe + +// CHECK: fstpl 305419896 +// CHECK: encoding: [0xdd,0x1d,0x78,0x56,0x34,0x12] + fstpl 0x12345678 + +// CHECK: fstp %st(2) +// CHECK: encoding: [0xdd,0xda] + fstp %st(2) + +// CHECK: fistpl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0x9c,0xcb,0xef,0xbe,0xad,0xde] + fistpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpl 3133065982 +// CHECK: encoding: [0xdb,0x1d,0xfe,0xca,0xbe,0xba] + fistpl 0xbabecafe + +// CHECK: fistpl 305419896 +// CHECK: encoding: [0xdb,0x1d,0x78,0x56,0x34,0x12] + fistpl 0x12345678 + +// CHECK: fistpll 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdf,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fistpll 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fistpll 32493 +// CHECK: encoding: [0xdf,0x3d,0xed,0x7e,0x00,0x00] + fistpll 0x7eed + +// CHECK: fistpll 3133065982 +// CHECK: encoding: [0xdf,0x3d,0xfe,0xca,0xbe,0xba] + fistpll 0xbabecafe + +// CHECK: fistpll 305419896 +// CHECK: encoding: [0xdf,0x3d,0x78,0x56,0x34,0x12] + fistpll 0x12345678 + +// CHECK: fstpt 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fstpt 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fstpt 32493 +// CHECK: encoding: [0xdb,0x3d,0xed,0x7e,0x00,0x00] + fstpt 0x7eed + +// CHECK: fstpt 3133065982 +// CHECK: encoding: [0xdb,0x3d,0xfe,0xca,0xbe,0xba] + fstpt 0xbabecafe + +// CHECK: fstpt 305419896 +// CHECK: encoding: [0xdb,0x3d,0x78,0x56,0x34,0x12] + fstpt 0x12345678 + +// CHECK: fbstp 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdf,0xb4,0xcb,0xef,0xbe,0xad,0xde] + fbstp 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fbstp 32493 +// CHECK: encoding: [0xdf,0x35,0xed,0x7e,0x00,0x00] + fbstp 0x7eed + +// CHECK: fbstp 3133065982 +// CHECK: encoding: [0xdf,0x35,0xfe,0xca,0xbe,0xba] + fbstp 0xbabecafe + +// CHECK: fbstp 305419896 +// CHECK: encoding: [0xdf,0x35,0x78,0x56,0x34,0x12] + fbstp 0x12345678 + +// CHECK: fxch %st(2) +// CHECK: encoding: [0xd9,0xca] + fxch %st(2) + +// CHECK: fcom %st(2) +// CHECK: encoding: [0xd8,0xd2] + fcom %st(2) + +// CHECK: fcom %st(2) +// CHECK: encoding: [0xd8,0xd2] + fcom %st(2) + +// CHECK: ficoml 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0x94,0xcb,0xef,0xbe,0xad,0xde] + ficoml 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficoml 3133065982 +// CHECK: encoding: [0xda,0x15,0xfe,0xca,0xbe,0xba] + ficoml 0xbabecafe + +// CHECK: ficoml 305419896 +// CHECK: encoding: [0xda,0x15,0x78,0x56,0x34,0x12] + ficoml 0x12345678 + +// CHECK: fcomp %st(2) +// CHECK: encoding: [0xd8,0xda] + fcomp %st(2) + +// CHECK: fcomp %st(2) +// CHECK: encoding: [0xd8,0xda] + fcomp %st(2) + +// CHECK: ficompl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0x9c,0xcb,0xef,0xbe,0xad,0xde] + ficompl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ficompl 3133065982 +// CHECK: encoding: [0xda,0x1d,0xfe,0xca,0xbe,0xba] + ficompl 0xbabecafe + +// CHECK: ficompl 305419896 +// CHECK: encoding: [0xda,0x1d,0x78,0x56,0x34,0x12] + ficompl 0x12345678 + +// CHECK: fcompp +// CHECK: encoding: [0xde,0xd9] + fcompp + +// CHECK: fucom %st(2) +// CHECK: encoding: [0xdd,0xe2] + fucom %st(2) + +// CHECK: fucomp %st(2) +// CHECK: encoding: [0xdd,0xea] + fucomp %st(2) + +// CHECK: fucompp +// CHECK: encoding: [0xda,0xe9] + fucompp + +// CHECK: ftst +// CHECK: encoding: [0xd9,0xe4] + ftst + +// CHECK: fxam +// CHECK: encoding: [0xd9,0xe5] + fxam + +// CHECK: fld1 +// CHECK: encoding: [0xd9,0xe8] + fld1 + +// CHECK: fldl2t +// CHECK: encoding: [0xd9,0xe9] + fldl2t + +// CHECK: fldl2e +// CHECK: encoding: [0xd9,0xea] + fldl2e + +// CHECK: fldpi +// CHECK: encoding: [0xd9,0xeb] + fldpi + +// CHECK: fldlg2 +// CHECK: encoding: [0xd9,0xec] + fldlg2 + +// CHECK: fldln2 +// CHECK: encoding: [0xd9,0xed] + fldln2 + +// CHECK: fldz +// CHECK: encoding: [0xd9,0xee] + fldz + +// CHECK: fadd %st(2) +// CHECK: encoding: [0xd8,0xc2] + fadd %st(2) + +// CHECK: faddl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0x84,0xcb,0xef,0xbe,0xad,0xde] + faddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: faddl 3133065982 +// CHECK: encoding: [0xdc,0x05,0xfe,0xca,0xbe,0xba] + faddl 0xbabecafe + +// CHECK: faddl 305419896 +// CHECK: encoding: [0xdc,0x05,0x78,0x56,0x34,0x12] + faddl 0x12345678 + +// CHECK: fiaddl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0x84,0xcb,0xef,0xbe,0xad,0xde] + fiaddl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fiaddl 3133065982 +// CHECK: encoding: [0xda,0x05,0xfe,0xca,0xbe,0xba] + fiaddl 0xbabecafe + +// CHECK: fiaddl 305419896 +// CHECK: encoding: [0xda,0x05,0x78,0x56,0x34,0x12] + fiaddl 0x12345678 + +// CHECK: faddp %st(2) +// CHECK: encoding: [0xde,0xc2] + faddp %st(2) + +// CHECK: fsub %st(2) +// CHECK: encoding: [0xd8,0xe2] + fsub %st(2) + +// CHECK: fsubl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0xa4,0xcb,0xef,0xbe,0xad,0xde] + fsubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubl 3133065982 +// CHECK: encoding: [0xdc,0x25,0xfe,0xca,0xbe,0xba] + fsubl 0xbabecafe + +// CHECK: fsubl 305419896 +// CHECK: encoding: [0xdc,0x25,0x78,0x56,0x34,0x12] + fsubl 0x12345678 + +// CHECK: fisubl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0xa4,0xcb,0xef,0xbe,0xad,0xde] + fisubl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubl 3133065982 +// CHECK: encoding: [0xda,0x25,0xfe,0xca,0xbe,0xba] + fisubl 0xbabecafe + +// CHECK: fisubl 305419896 +// CHECK: encoding: [0xda,0x25,0x78,0x56,0x34,0x12] + fisubl 0x12345678 + +// CHECK: fsubp %st(2) +// CHECK: encoding: [0xde,0xe2] + fsubp %st(2) + +// CHECK: fsubr %st(2) +// CHECK: encoding: [0xd8,0xea] + fsubr %st(2) + +// CHECK: fsubrl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0xac,0xcb,0xef,0xbe,0xad,0xde] + fsubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fsubrl 3133065982 +// CHECK: encoding: [0xdc,0x2d,0xfe,0xca,0xbe,0xba] + fsubrl 0xbabecafe + +// CHECK: fsubrl 305419896 +// CHECK: encoding: [0xdc,0x2d,0x78,0x56,0x34,0x12] + fsubrl 0x12345678 + +// CHECK: fisubrl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0xac,0xcb,0xef,0xbe,0xad,0xde] + fisubrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisubrl 3133065982 +// CHECK: encoding: [0xda,0x2d,0xfe,0xca,0xbe,0xba] + fisubrl 0xbabecafe + +// CHECK: fisubrl 305419896 +// CHECK: encoding: [0xda,0x2d,0x78,0x56,0x34,0x12] + fisubrl 0x12345678 + +// CHECK: fsubrp %st(2) +// CHECK: encoding: [0xde,0xea] + fsubrp %st(2) + +// CHECK: fmul %st(2) +// CHECK: encoding: [0xd8,0xca] + fmul %st(2) + +// CHECK: fmull 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0x8c,0xcb,0xef,0xbe,0xad,0xde] + fmull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fmull 3133065982 +// CHECK: encoding: [0xdc,0x0d,0xfe,0xca,0xbe,0xba] + fmull 0xbabecafe + +// CHECK: fmull 305419896 +// CHECK: encoding: [0xdc,0x0d,0x78,0x56,0x34,0x12] + fmull 0x12345678 + +// CHECK: fimull 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0x8c,0xcb,0xef,0xbe,0xad,0xde] + fimull 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fimull 3133065982 +// CHECK: encoding: [0xda,0x0d,0xfe,0xca,0xbe,0xba] + fimull 0xbabecafe + +// CHECK: fimull 305419896 +// CHECK: encoding: [0xda,0x0d,0x78,0x56,0x34,0x12] + fimull 0x12345678 + +// CHECK: fmulp %st(2) +// CHECK: encoding: [0xde,0xca] + fmulp %st(2) + +// CHECK: fdiv %st(2) +// CHECK: encoding: [0xd8,0xf2] + fdiv %st(2) + +// CHECK: fdivl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0xb4,0xcb,0xef,0xbe,0xad,0xde] + fdivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivl 3133065982 +// CHECK: encoding: [0xdc,0x35,0xfe,0xca,0xbe,0xba] + fdivl 0xbabecafe + +// CHECK: fdivl 305419896 +// CHECK: encoding: [0xdc,0x35,0x78,0x56,0x34,0x12] + fdivl 0x12345678 + +// CHECK: fidivl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0xb4,0xcb,0xef,0xbe,0xad,0xde] + fidivl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivl 3133065982 +// CHECK: encoding: [0xda,0x35,0xfe,0xca,0xbe,0xba] + fidivl 0xbabecafe + +// CHECK: fidivl 305419896 +// CHECK: encoding: [0xda,0x35,0x78,0x56,0x34,0x12] + fidivl 0x12345678 + +// CHECK: fdivp %st(2) +// CHECK: encoding: [0xde,0xf2] + fdivp %st(2) + +// CHECK: fdivr %st(2) +// CHECK: encoding: [0xd8,0xfa] + fdivr %st(2) + +// CHECK: fdivrl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdc,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fdivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fdivrl 3133065982 +// CHECK: encoding: [0xdc,0x3d,0xfe,0xca,0xbe,0xba] + fdivrl 0xbabecafe + +// CHECK: fdivrl 305419896 +// CHECK: encoding: [0xdc,0x3d,0x78,0x56,0x34,0x12] + fdivrl 0x12345678 + +// CHECK: fidivrl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xda,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fidivrl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fidivrl 3133065982 +// CHECK: encoding: [0xda,0x3d,0xfe,0xca,0xbe,0xba] + fidivrl 0xbabecafe + +// CHECK: fidivrl 305419896 +// CHECK: encoding: [0xda,0x3d,0x78,0x56,0x34,0x12] + fidivrl 0x12345678 + +// CHECK: fdivrp %st(2) +// CHECK: encoding: [0xde,0xfa] + fdivrp %st(2) + +// CHECK: f2xm1 +// CHECK: encoding: [0xd9,0xf0] + f2xm1 + +// CHECK: fyl2x +// CHECK: encoding: [0xd9,0xf1] + fyl2x + +// CHECK: fptan +// CHECK: encoding: [0xd9,0xf2] + fptan + +// CHECK: fpatan +// CHECK: encoding: [0xd9,0xf3] + fpatan + +// CHECK: fxtract +// CHECK: encoding: [0xd9,0xf4] + fxtract + +// CHECK: fprem1 +// CHECK: encoding: [0xd9,0xf5] + fprem1 + +// CHECK: fdecstp +// CHECK: encoding: [0xd9,0xf6] + fdecstp + +// CHECK: fincstp +// CHECK: encoding: [0xd9,0xf7] + fincstp + +// CHECK: fprem +// CHECK: encoding: [0xd9,0xf8] + fprem + +// CHECK: fyl2xp1 +// CHECK: encoding: [0xd9,0xf9] + fyl2xp1 + +// CHECK: fsqrt +// CHECK: encoding: [0xd9,0xfa] + fsqrt + +// CHECK: fsincos +// CHECK: encoding: [0xd9,0xfb] + fsincos + +// CHECK: frndint +// CHECK: encoding: [0xd9,0xfc] + frndint + +// CHECK: fscale +// CHECK: encoding: [0xd9,0xfd] + fscale + +// CHECK: fsin +// CHECK: encoding: [0xd9,0xfe] + fsin + +// CHECK: fcos +// CHECK: encoding: [0xd9,0xff] + fcos + +// CHECK: fchs +// CHECK: encoding: [0xd9,0xe0] + fchs + +// CHECK: fabs +// CHECK: encoding: [0xd9,0xe1] + fabs + +// CHECK: fninit +// CHECK: encoding: [0xdb,0xe3] + fninit + +// CHECK: fldcw 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd9,0xac,0xcb,0xef,0xbe,0xad,0xde] + fldcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fldcw 3133065982 +// CHECK: encoding: [0xd9,0x2d,0xfe,0xca,0xbe,0xba] + fldcw 0xbabecafe + +// CHECK: fldcw 305419896 +// CHECK: encoding: [0xd9,0x2d,0x78,0x56,0x34,0x12] + fldcw 0x12345678 + +// CHECK: fnstcw 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xd9,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fnstcw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fnstcw 3133065982 +// CHECK: encoding: [0xd9,0x3d,0xfe,0xca,0xbe,0xba] + fnstcw 0xbabecafe + +// CHECK: fnstcw 305419896 +// CHECK: encoding: [0xd9,0x3d,0x78,0x56,0x34,0x12] + fnstcw 0x12345678 + +// CHECK: fnstsw 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdd,0xbc,0xcb,0xef,0xbe,0xad,0xde] + fnstsw 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fnstsw 3133065982 +// CHECK: encoding: [0xdd,0x3d,0xfe,0xca,0xbe,0xba] + fnstsw 0xbabecafe + +// CHECK: fnstsw 305419896 +// CHECK: encoding: [0xdd,0x3d,0x78,0x56,0x34,0x12] + fnstsw 0x12345678 + +// CHECK: fnclex +// CHECK: encoding: [0xdb,0xe2] + fnclex + +// CHECK: fnstenv 32493 +// CHECK: encoding: [0xd9,0x35,0xed,0x7e,0x00,0x00] + fnstenv 0x7eed + +// CHECK: fldenv 32493 +// CHECK: encoding: [0xd9,0x25,0xed,0x7e,0x00,0x00] + fldenv 0x7eed + +// CHECK: fnsave 32493 +// CHECK: encoding: [0xdd,0x35,0xed,0x7e,0x00,0x00] + fnsave 0x7eed + +// CHECK: frstor 32493 +// CHECK: encoding: [0xdd,0x25,0xed,0x7e,0x00,0x00] + frstor 0x7eed + +// CHECK: ffree %st(2) +// CHECK: encoding: [0xdd,0xc2] + ffree %st(2) + +// CHECK: fnop +// CHECK: encoding: [0xd9,0xd0] + fnop + +// CHECK: invd +// CHECK: encoding: [0x0f,0x08] + invd + +// CHECK: wbinvd +// CHECK: encoding: [0x0f,0x09] + wbinvd + +// CHECK: cpuid +// CHECK: encoding: [0x0f,0xa2] + cpuid + +// CHECK: wrmsr +// CHECK: encoding: [0x0f,0x30] + wrmsr + +// CHECK: rdtsc +// CHECK: encoding: [0x0f,0x31] + rdtsc + +// CHECK: rdmsr +// CHECK: encoding: [0x0f,0x32] + rdmsr + +// CHECK: cmpxchg8b 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xc7,0x8c,0xcb,0xef,0xbe,0xad,0xde] + cmpxchg8b 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: cmpxchg8b 32493 +// CHECK: encoding: [0x0f,0xc7,0x0d,0xed,0x7e,0x00,0x00] + cmpxchg8b 0x7eed + +// CHECK: cmpxchg8b 3133065982 +// CHECK: encoding: [0x0f,0xc7,0x0d,0xfe,0xca,0xbe,0xba] + cmpxchg8b 0xbabecafe + +// CHECK: cmpxchg8b 305419896 +// CHECK: encoding: [0x0f,0xc7,0x0d,0x78,0x56,0x34,0x12] + cmpxchg8b 0x12345678 + +// CHECK: sysenter +// CHECK: encoding: [0x0f,0x34] + sysenter + +// CHECK: sysexit +// CHECK: encoding: [0x0f,0x35] + sysexit + +// CHECK: fxsave 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xae,0x84,0xcb,0xef,0xbe,0xad,0xde] + fxsave 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fxsave 32493 +// CHECK: encoding: [0x0f,0xae,0x05,0xed,0x7e,0x00,0x00] + fxsave 0x7eed + +// CHECK: fxsave 3133065982 +// CHECK: encoding: [0x0f,0xae,0x05,0xfe,0xca,0xbe,0xba] + fxsave 0xbabecafe + +// CHECK: fxsave 305419896 +// CHECK: encoding: [0x0f,0xae,0x05,0x78,0x56,0x34,0x12] + fxsave 0x12345678 + +// CHECK: fxrstor 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xae,0x8c,0xcb,0xef,0xbe,0xad,0xde] + fxrstor 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fxrstor 32493 +// CHECK: encoding: [0x0f,0xae,0x0d,0xed,0x7e,0x00,0x00] + fxrstor 0x7eed + +// CHECK: fxrstor 3133065982 +// CHECK: encoding: [0x0f,0xae,0x0d,0xfe,0xca,0xbe,0xba] + fxrstor 0xbabecafe + +// CHECK: fxrstor 305419896 +// CHECK: encoding: [0x0f,0xae,0x0d,0x78,0x56,0x34,0x12] + fxrstor 0x12345678 + +// CHECK: rdpmc +// CHECK: encoding: [0x0f,0x33] + rdpmc + +// CHECK: ud2 +// CHECK: encoding: [0x0f,0x0b] + ud2 + +// CHECK: fcmovb %st(2), %st(0) +// CHECK: encoding: [0xda,0xc2] + fcmovb %st(2),%st + +// CHECK: fcmove %st(2), %st(0) +// CHECK: encoding: [0xda,0xca] + fcmove %st(2),%st + +// CHECK: fcmovbe %st(2), %st(0) +// CHECK: encoding: [0xda,0xd2] + fcmovbe %st(2),%st + +// CHECK: fcmovu %st(2), %st(0) +// CHECK: encoding: [0xda,0xda] + fcmovu %st(2),%st + +// CHECK: fcmovnb %st(2), %st(0) +// CHECK: encoding: [0xdb,0xc2] + fcmovnb %st(2),%st + +// CHECK: fcmovne %st(2), %st(0) +// CHECK: encoding: [0xdb,0xca] + fcmovne %st(2),%st + +// CHECK: fcmovnbe %st(2), %st(0) +// CHECK: encoding: [0xdb,0xd2] + fcmovnbe %st(2),%st + +// CHECK: fcmovnu %st(2), %st(0) +// CHECK: encoding: [0xdb,0xda] + fcmovnu %st(2),%st + +// CHECK: fcomi %st(2), %st(0) +// CHECK: encoding: [0xdb,0xf2] + fcomi %st(2),%st + +// CHECK: fucomi %st(2), %st(0) +// CHECK: encoding: [0xdb,0xea] + fucomi %st(2),%st + +// CHECK: fcomip %st(2), %st(0) +// CHECK: encoding: [0xdf,0xf2] + fcomip %st(2),%st + +// CHECK: fucomip %st(2), %st(0) +// CHECK: encoding: [0xdf,0xea] + fucomip %st(2),%st + +// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xc3,0x8c,0xcb,0xef,0xbe,0xad,0xde] + movnti %ecx,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movnti %ecx, 69 +// CHECK: encoding: [0x0f,0xc3,0x0d,0x45,0x00,0x00,0x00] + movnti %ecx,0x45 + +// CHECK: movnti %ecx, 32493 +// CHECK: encoding: [0x0f,0xc3,0x0d,0xed,0x7e,0x00,0x00] + movnti %ecx,0x7eed + +// CHECK: movnti %ecx, 3133065982 +// CHECK: encoding: [0x0f,0xc3,0x0d,0xfe,0xca,0xbe,0xba] + movnti %ecx,0xbabecafe + +// CHECK: movnti %ecx, 305419896 +// CHECK: encoding: [0x0f,0xc3,0x0d,0x78,0x56,0x34,0x12] + movnti %ecx,0x12345678 + +// CHECK: clflush 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xae,0xbc,0xcb,0xef,0xbe,0xad,0xde] + clflush 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: clflush 32493 +// CHECK: encoding: [0x0f,0xae,0x3d,0xed,0x7e,0x00,0x00] + clflush 0x7eed + +// CHECK: clflush 3133065982 +// CHECK: encoding: [0x0f,0xae,0x3d,0xfe,0xca,0xbe,0xba] + clflush 0xbabecafe + +// CHECK: clflush 305419896 +// CHECK: encoding: [0x0f,0xae,0x3d,0x78,0x56,0x34,0x12] + clflush 0x12345678 + +// CHECK: emms +// CHECK: encoding: [0x0f,0x77] + emms + +// CHECK: movd %ecx, %mm3 +// CHECK: encoding: [0x0f,0x6e,0xd9] + movd %ecx,%mm3 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x6e,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movd 69, %mm3 +// CHECK: encoding: [0x0f,0x6e,0x1d,0x45,0x00,0x00,0x00] + movd 0x45,%mm3 + +// CHECK: movd 32493, %mm3 +// CHECK: encoding: [0x0f,0x6e,0x1d,0xed,0x7e,0x00,0x00] + movd 0x7eed,%mm3 + +// CHECK: movd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x6e,0x1d,0xfe,0xca,0xbe,0xba] + movd 0xbabecafe,%mm3 + +// CHECK: movd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x6e,0x1d,0x78,0x56,0x34,0x12] + movd 0x12345678,%mm3 + +// CHECK: movd %mm3, %ecx +// CHECK: encoding: [0x0f,0x7e,0xd9] + movd %mm3,%ecx + +// CHECK: movd %mm3, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x7e,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movd %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movd %mm3, 69 +// CHECK: encoding: [0x0f,0x7e,0x1d,0x45,0x00,0x00,0x00] + movd %mm3,0x45 + +// CHECK: movd %mm3, 32493 +// CHECK: encoding: [0x0f,0x7e,0x1d,0xed,0x7e,0x00,0x00] + movd %mm3,0x7eed + +// CHECK: movd %mm3, 3133065982 +// CHECK: encoding: [0x0f,0x7e,0x1d,0xfe,0xca,0xbe,0xba] + movd %mm3,0xbabecafe + +// CHECK: movd %mm3, 305419896 +// CHECK: encoding: [0x0f,0x7e,0x1d,0x78,0x56,0x34,0x12] + movd %mm3,0x12345678 + +// CHECK: movd %ecx, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0xe9] + movd %ecx,%xmm5 + +// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0xac,0xcb,0xef,0xbe,0xad,0xde] + movd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0x2d,0x45,0x00,0x00,0x00] + movd 0x45,%xmm5 + +// CHECK: movd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0x2d,0xed,0x7e,0x00,0x00] + movd 0x7eed,%xmm5 + +// CHECK: movd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0x2d,0xfe,0xca,0xbe,0xba] + movd 0xbabecafe,%xmm5 + +// CHECK: movd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6e,0x2d,0x78,0x56,0x34,0x12] + movd 0x12345678,%xmm5 + +// CHECK: movd %xmm5, %ecx +// CHECK: encoding: [0x66,0x0f,0x7e,0xe9] + movd %xmm5,%ecx + +// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x7e,0xac,0xcb,0xef,0xbe,0xad,0xde] + movd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x7e,0x2d,0x45,0x00,0x00,0x00] + movd %xmm5,0x45 + +// CHECK: movd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x7e,0x2d,0xed,0x7e,0x00,0x00] + movd %xmm5,0x7eed + +// CHECK: movd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x7e,0x2d,0xfe,0xca,0xbe,0xba] + movd %xmm5,0xbabecafe + +// CHECK: movd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x7e,0x2d,0x78,0x56,0x34,0x12] + movd %xmm5,0x12345678 + +// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x6f,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: movq 69, %mm3 +// CHECK: encoding: [0x0f,0x6f,0x1d,0x45,0x00,0x00,0x00] + movq 0x45,%mm3 + +// CHECK: movq 32493, %mm3 +// CHECK: encoding: [0x0f,0x6f,0x1d,0xed,0x7e,0x00,0x00] + movq 0x7eed,%mm3 + +// CHECK: movq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x6f,0x1d,0xfe,0xca,0xbe,0xba] + movq 0xbabecafe,%mm3 + +// CHECK: movq 305419896, %mm3 +// CHECK: encoding: [0x0f,0x6f,0x1d,0x78,0x56,0x34,0x12] + movq 0x12345678,%mm3 + +// CHECK: movq %mm3, %mm3 +// CHECK: encoding: [0x0f,0x6f,0xdb] + movq %mm3,%mm3 + +// CHECK: movq %mm3, %mm3 +// CHECK: encoding: [0x0f,0x6f,0xdb] + movq %mm3,%mm3 + +// CHECK: movq %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x7e,0xed] + movq %xmm5,%xmm5 + +// CHECK: movq %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0xd6,0xac,0xcb,0xef,0xbe,0xad,0xde] + movq %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movq %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0xd6,0x2d,0x45,0x00,0x00,0x00] + movq %xmm5,0x45 + +// CHECK: movq %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0xd6,0x2d,0xed,0x7e,0x00,0x00] + movq %xmm5,0x7eed + +// CHECK: movq %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0xd6,0x2d,0xfe,0xca,0xbe,0xba] + movq %xmm5,0xbabecafe + +// CHECK: movq %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0xd6,0x2d,0x78,0x56,0x34,0x12] + movq %xmm5,0x12345678 + +// CHECK: movq %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x7e,0xed] + movq %xmm5,%xmm5 + +// CHECK: packssdw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x6b,0x9c,0xcb,0xef,0xbe,0xad,0xde] + packssdw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packssdw 69, %mm3 +// CHECK: encoding: [0x0f,0x6b,0x1d,0x45,0x00,0x00,0x00] + packssdw 0x45,%mm3 + +// CHECK: packssdw 32493, %mm3 +// CHECK: encoding: [0x0f,0x6b,0x1d,0xed,0x7e,0x00,0x00] + packssdw 0x7eed,%mm3 + +// CHECK: packssdw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x6b,0x1d,0xfe,0xca,0xbe,0xba] + packssdw 0xbabecafe,%mm3 + +// CHECK: packssdw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x6b,0x1d,0x78,0x56,0x34,0x12] + packssdw 0x12345678,%mm3 + +// CHECK: packssdw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x6b,0xdb] + packssdw %mm3,%mm3 + +// CHECK: packssdw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0xac,0xcb,0xef,0xbe,0xad,0xde] + packssdw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packssdw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0x2d,0x45,0x00,0x00,0x00] + packssdw 0x45,%xmm5 + +// CHECK: packssdw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0x2d,0xed,0x7e,0x00,0x00] + packssdw 0x7eed,%xmm5 + +// CHECK: packssdw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0x2d,0xfe,0xca,0xbe,0xba] + packssdw 0xbabecafe,%xmm5 + +// CHECK: packssdw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0x2d,0x78,0x56,0x34,0x12] + packssdw 0x12345678,%xmm5 + +// CHECK: packssdw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6b,0xed] + packssdw %xmm5,%xmm5 + +// CHECK: packsswb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x63,0x9c,0xcb,0xef,0xbe,0xad,0xde] + packsswb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packsswb 69, %mm3 +// CHECK: encoding: [0x0f,0x63,0x1d,0x45,0x00,0x00,0x00] + packsswb 0x45,%mm3 + +// CHECK: packsswb 32493, %mm3 +// CHECK: encoding: [0x0f,0x63,0x1d,0xed,0x7e,0x00,0x00] + packsswb 0x7eed,%mm3 + +// CHECK: packsswb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x63,0x1d,0xfe,0xca,0xbe,0xba] + packsswb 0xbabecafe,%mm3 + +// CHECK: packsswb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x63,0x1d,0x78,0x56,0x34,0x12] + packsswb 0x12345678,%mm3 + +// CHECK: packsswb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x63,0xdb] + packsswb %mm3,%mm3 + +// CHECK: packsswb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0xac,0xcb,0xef,0xbe,0xad,0xde] + packsswb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packsswb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0x2d,0x45,0x00,0x00,0x00] + packsswb 0x45,%xmm5 + +// CHECK: packsswb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0x2d,0xed,0x7e,0x00,0x00] + packsswb 0x7eed,%xmm5 + +// CHECK: packsswb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0x2d,0xfe,0xca,0xbe,0xba] + packsswb 0xbabecafe,%xmm5 + +// CHECK: packsswb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0x2d,0x78,0x56,0x34,0x12] + packsswb 0x12345678,%xmm5 + +// CHECK: packsswb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x63,0xed] + packsswb %xmm5,%xmm5 + +// CHECK: packuswb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x67,0x9c,0xcb,0xef,0xbe,0xad,0xde] + packuswb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: packuswb 69, %mm3 +// CHECK: encoding: [0x0f,0x67,0x1d,0x45,0x00,0x00,0x00] + packuswb 0x45,%mm3 + +// CHECK: packuswb 32493, %mm3 +// CHECK: encoding: [0x0f,0x67,0x1d,0xed,0x7e,0x00,0x00] + packuswb 0x7eed,%mm3 + +// CHECK: packuswb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x67,0x1d,0xfe,0xca,0xbe,0xba] + packuswb 0xbabecafe,%mm3 + +// CHECK: packuswb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x67,0x1d,0x78,0x56,0x34,0x12] + packuswb 0x12345678,%mm3 + +// CHECK: packuswb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x67,0xdb] + packuswb %mm3,%mm3 + +// CHECK: packuswb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0xac,0xcb,0xef,0xbe,0xad,0xde] + packuswb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packuswb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0x2d,0x45,0x00,0x00,0x00] + packuswb 0x45,%xmm5 + +// CHECK: packuswb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0x2d,0xed,0x7e,0x00,0x00] + packuswb 0x7eed,%xmm5 + +// CHECK: packuswb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0x2d,0xfe,0xca,0xbe,0xba] + packuswb 0xbabecafe,%xmm5 + +// CHECK: packuswb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0x2d,0x78,0x56,0x34,0x12] + packuswb 0x12345678,%xmm5 + +// CHECK: packuswb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x67,0xed] + packuswb %xmm5,%xmm5 + +// CHECK: paddb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xfc,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddb 69, %mm3 +// CHECK: encoding: [0x0f,0xfc,0x1d,0x45,0x00,0x00,0x00] + paddb 0x45,%mm3 + +// CHECK: paddb 32493, %mm3 +// CHECK: encoding: [0x0f,0xfc,0x1d,0xed,0x7e,0x00,0x00] + paddb 0x7eed,%mm3 + +// CHECK: paddb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xfc,0x1d,0xfe,0xca,0xbe,0xba] + paddb 0xbabecafe,%mm3 + +// CHECK: paddb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xfc,0x1d,0x78,0x56,0x34,0x12] + paddb 0x12345678,%mm3 + +// CHECK: paddb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xfc,0xdb] + paddb %mm3,%mm3 + +// CHECK: paddb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0x2d,0x45,0x00,0x00,0x00] + paddb 0x45,%xmm5 + +// CHECK: paddb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0x2d,0xed,0x7e,0x00,0x00] + paddb 0x7eed,%xmm5 + +// CHECK: paddb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0x2d,0xfe,0xca,0xbe,0xba] + paddb 0xbabecafe,%xmm5 + +// CHECK: paddb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0x2d,0x78,0x56,0x34,0x12] + paddb 0x12345678,%xmm5 + +// CHECK: paddb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfc,0xed] + paddb %xmm5,%xmm5 + +// CHECK: paddw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xfd,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddw 69, %mm3 +// CHECK: encoding: [0x0f,0xfd,0x1d,0x45,0x00,0x00,0x00] + paddw 0x45,%mm3 + +// CHECK: paddw 32493, %mm3 +// CHECK: encoding: [0x0f,0xfd,0x1d,0xed,0x7e,0x00,0x00] + paddw 0x7eed,%mm3 + +// CHECK: paddw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xfd,0x1d,0xfe,0xca,0xbe,0xba] + paddw 0xbabecafe,%mm3 + +// CHECK: paddw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xfd,0x1d,0x78,0x56,0x34,0x12] + paddw 0x12345678,%mm3 + +// CHECK: paddw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xfd,0xdb] + paddw %mm3,%mm3 + +// CHECK: paddw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0x2d,0x45,0x00,0x00,0x00] + paddw 0x45,%xmm5 + +// CHECK: paddw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0x2d,0xed,0x7e,0x00,0x00] + paddw 0x7eed,%xmm5 + +// CHECK: paddw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0x2d,0xfe,0xca,0xbe,0xba] + paddw 0xbabecafe,%xmm5 + +// CHECK: paddw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0x2d,0x78,0x56,0x34,0x12] + paddw 0x12345678,%xmm5 + +// CHECK: paddw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfd,0xed] + paddw %xmm5,%xmm5 + +// CHECK: paddd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xfe,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddd 69, %mm3 +// CHECK: encoding: [0x0f,0xfe,0x1d,0x45,0x00,0x00,0x00] + paddd 0x45,%mm3 + +// CHECK: paddd 32493, %mm3 +// CHECK: encoding: [0x0f,0xfe,0x1d,0xed,0x7e,0x00,0x00] + paddd 0x7eed,%mm3 + +// CHECK: paddd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xfe,0x1d,0xfe,0xca,0xbe,0xba] + paddd 0xbabecafe,%mm3 + +// CHECK: paddd 305419896, %mm3 +// CHECK: encoding: [0x0f,0xfe,0x1d,0x78,0x56,0x34,0x12] + paddd 0x12345678,%mm3 + +// CHECK: paddd %mm3, %mm3 +// CHECK: encoding: [0x0f,0xfe,0xdb] + paddd %mm3,%mm3 + +// CHECK: paddd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0x2d,0x45,0x00,0x00,0x00] + paddd 0x45,%xmm5 + +// CHECK: paddd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0x2d,0xed,0x7e,0x00,0x00] + paddd 0x7eed,%xmm5 + +// CHECK: paddd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0x2d,0xfe,0xca,0xbe,0xba] + paddd 0xbabecafe,%xmm5 + +// CHECK: paddd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0x2d,0x78,0x56,0x34,0x12] + paddd 0x12345678,%xmm5 + +// CHECK: paddd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfe,0xed] + paddd %xmm5,%xmm5 + +// CHECK: paddq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd4,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddq 69, %mm3 +// CHECK: encoding: [0x0f,0xd4,0x1d,0x45,0x00,0x00,0x00] + paddq 0x45,%mm3 + +// CHECK: paddq 32493, %mm3 +// CHECK: encoding: [0x0f,0xd4,0x1d,0xed,0x7e,0x00,0x00] + paddq 0x7eed,%mm3 + +// CHECK: paddq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd4,0x1d,0xfe,0xca,0xbe,0xba] + paddq 0xbabecafe,%mm3 + +// CHECK: paddq 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd4,0x1d,0x78,0x56,0x34,0x12] + paddq 0x12345678,%mm3 + +// CHECK: paddq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd4,0xdb] + paddq %mm3,%mm3 + +// CHECK: paddq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0x2d,0x45,0x00,0x00,0x00] + paddq 0x45,%xmm5 + +// CHECK: paddq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0x2d,0xed,0x7e,0x00,0x00] + paddq 0x7eed,%xmm5 + +// CHECK: paddq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0x2d,0xfe,0xca,0xbe,0xba] + paddq 0xbabecafe,%xmm5 + +// CHECK: paddq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0x2d,0x78,0x56,0x34,0x12] + paddq 0x12345678,%xmm5 + +// CHECK: paddq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd4,0xed] + paddq %xmm5,%xmm5 + +// CHECK: paddsb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xec,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddsb 69, %mm3 +// CHECK: encoding: [0x0f,0xec,0x1d,0x45,0x00,0x00,0x00] + paddsb 0x45,%mm3 + +// CHECK: paddsb 32493, %mm3 +// CHECK: encoding: [0x0f,0xec,0x1d,0xed,0x7e,0x00,0x00] + paddsb 0x7eed,%mm3 + +// CHECK: paddsb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xec,0x1d,0xfe,0xca,0xbe,0xba] + paddsb 0xbabecafe,%mm3 + +// CHECK: paddsb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xec,0x1d,0x78,0x56,0x34,0x12] + paddsb 0x12345678,%mm3 + +// CHECK: paddsb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xec,0xdb] + paddsb %mm3,%mm3 + +// CHECK: paddsb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddsb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0x2d,0x45,0x00,0x00,0x00] + paddsb 0x45,%xmm5 + +// CHECK: paddsb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0x2d,0xed,0x7e,0x00,0x00] + paddsb 0x7eed,%xmm5 + +// CHECK: paddsb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0x2d,0xfe,0xca,0xbe,0xba] + paddsb 0xbabecafe,%xmm5 + +// CHECK: paddsb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0x2d,0x78,0x56,0x34,0x12] + paddsb 0x12345678,%xmm5 + +// CHECK: paddsb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xec,0xed] + paddsb %xmm5,%xmm5 + +// CHECK: paddsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xed,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddsw 69, %mm3 +// CHECK: encoding: [0x0f,0xed,0x1d,0x45,0x00,0x00,0x00] + paddsw 0x45,%mm3 + +// CHECK: paddsw 32493, %mm3 +// CHECK: encoding: [0x0f,0xed,0x1d,0xed,0x7e,0x00,0x00] + paddsw 0x7eed,%mm3 + +// CHECK: paddsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xed,0x1d,0xfe,0xca,0xbe,0xba] + paddsw 0xbabecafe,%mm3 + +// CHECK: paddsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xed,0x1d,0x78,0x56,0x34,0x12] + paddsw 0x12345678,%mm3 + +// CHECK: paddsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xed,0xdb] + paddsw %mm3,%mm3 + +// CHECK: paddsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0x2d,0x45,0x00,0x00,0x00] + paddsw 0x45,%xmm5 + +// CHECK: paddsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0x2d,0xed,0x7e,0x00,0x00] + paddsw 0x7eed,%xmm5 + +// CHECK: paddsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0x2d,0xfe,0xca,0xbe,0xba] + paddsw 0xbabecafe,%xmm5 + +// CHECK: paddsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0x2d,0x78,0x56,0x34,0x12] + paddsw 0x12345678,%xmm5 + +// CHECK: paddsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xed,0xed] + paddsw %xmm5,%xmm5 + +// CHECK: paddusb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xdc,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddusb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddusb 69, %mm3 +// CHECK: encoding: [0x0f,0xdc,0x1d,0x45,0x00,0x00,0x00] + paddusb 0x45,%mm3 + +// CHECK: paddusb 32493, %mm3 +// CHECK: encoding: [0x0f,0xdc,0x1d,0xed,0x7e,0x00,0x00] + paddusb 0x7eed,%mm3 + +// CHECK: paddusb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xdc,0x1d,0xfe,0xca,0xbe,0xba] + paddusb 0xbabecafe,%mm3 + +// CHECK: paddusb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xdc,0x1d,0x78,0x56,0x34,0x12] + paddusb 0x12345678,%mm3 + +// CHECK: paddusb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xdc,0xdb] + paddusb %mm3,%mm3 + +// CHECK: paddusb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddusb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddusb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0x2d,0x45,0x00,0x00,0x00] + paddusb 0x45,%xmm5 + +// CHECK: paddusb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0x2d,0xed,0x7e,0x00,0x00] + paddusb 0x7eed,%xmm5 + +// CHECK: paddusb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0x2d,0xfe,0xca,0xbe,0xba] + paddusb 0xbabecafe,%xmm5 + +// CHECK: paddusb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0x2d,0x78,0x56,0x34,0x12] + paddusb 0x12345678,%xmm5 + +// CHECK: paddusb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdc,0xed] + paddusb %xmm5,%xmm5 + +// CHECK: paddusw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xdd,0x9c,0xcb,0xef,0xbe,0xad,0xde] + paddusw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: paddusw 69, %mm3 +// CHECK: encoding: [0x0f,0xdd,0x1d,0x45,0x00,0x00,0x00] + paddusw 0x45,%mm3 + +// CHECK: paddusw 32493, %mm3 +// CHECK: encoding: [0x0f,0xdd,0x1d,0xed,0x7e,0x00,0x00] + paddusw 0x7eed,%mm3 + +// CHECK: paddusw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xdd,0x1d,0xfe,0xca,0xbe,0xba] + paddusw 0xbabecafe,%mm3 + +// CHECK: paddusw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xdd,0x1d,0x78,0x56,0x34,0x12] + paddusw 0x12345678,%mm3 + +// CHECK: paddusw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xdd,0xdb] + paddusw %mm3,%mm3 + +// CHECK: paddusw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0xac,0xcb,0xef,0xbe,0xad,0xde] + paddusw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: paddusw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0x2d,0x45,0x00,0x00,0x00] + paddusw 0x45,%xmm5 + +// CHECK: paddusw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0x2d,0xed,0x7e,0x00,0x00] + paddusw 0x7eed,%xmm5 + +// CHECK: paddusw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0x2d,0xfe,0xca,0xbe,0xba] + paddusw 0xbabecafe,%xmm5 + +// CHECK: paddusw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0x2d,0x78,0x56,0x34,0x12] + paddusw 0x12345678,%xmm5 + +// CHECK: paddusw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdd,0xed] + paddusw %xmm5,%xmm5 + +// CHECK: pand 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xdb,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pand 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pand 69, %mm3 +// CHECK: encoding: [0x0f,0xdb,0x1d,0x45,0x00,0x00,0x00] + pand 0x45,%mm3 + +// CHECK: pand 32493, %mm3 +// CHECK: encoding: [0x0f,0xdb,0x1d,0xed,0x7e,0x00,0x00] + pand 0x7eed,%mm3 + +// CHECK: pand 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xdb,0x1d,0xfe,0xca,0xbe,0xba] + pand 0xbabecafe,%mm3 + +// CHECK: pand 305419896, %mm3 +// CHECK: encoding: [0x0f,0xdb,0x1d,0x78,0x56,0x34,0x12] + pand 0x12345678,%mm3 + +// CHECK: pand %mm3, %mm3 +// CHECK: encoding: [0x0f,0xdb,0xdb] + pand %mm3,%mm3 + +// CHECK: pand 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0xac,0xcb,0xef,0xbe,0xad,0xde] + pand 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pand 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0x2d,0x45,0x00,0x00,0x00] + pand 0x45,%xmm5 + +// CHECK: pand 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0x2d,0xed,0x7e,0x00,0x00] + pand 0x7eed,%xmm5 + +// CHECK: pand 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0x2d,0xfe,0xca,0xbe,0xba] + pand 0xbabecafe,%xmm5 + +// CHECK: pand 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0x2d,0x78,0x56,0x34,0x12] + pand 0x12345678,%xmm5 + +// CHECK: pand %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdb,0xed] + pand %xmm5,%xmm5 + +// CHECK: pandn 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xdf,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pandn 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pandn 69, %mm3 +// CHECK: encoding: [0x0f,0xdf,0x1d,0x45,0x00,0x00,0x00] + pandn 0x45,%mm3 + +// CHECK: pandn 32493, %mm3 +// CHECK: encoding: [0x0f,0xdf,0x1d,0xed,0x7e,0x00,0x00] + pandn 0x7eed,%mm3 + +// CHECK: pandn 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xdf,0x1d,0xfe,0xca,0xbe,0xba] + pandn 0xbabecafe,%mm3 + +// CHECK: pandn 305419896, %mm3 +// CHECK: encoding: [0x0f,0xdf,0x1d,0x78,0x56,0x34,0x12] + pandn 0x12345678,%mm3 + +// CHECK: pandn %mm3, %mm3 +// CHECK: encoding: [0x0f,0xdf,0xdb] + pandn %mm3,%mm3 + +// CHECK: pandn 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0xac,0xcb,0xef,0xbe,0xad,0xde] + pandn 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pandn 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0x2d,0x45,0x00,0x00,0x00] + pandn 0x45,%xmm5 + +// CHECK: pandn 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0x2d,0xed,0x7e,0x00,0x00] + pandn 0x7eed,%xmm5 + +// CHECK: pandn 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0x2d,0xfe,0xca,0xbe,0xba] + pandn 0xbabecafe,%xmm5 + +// CHECK: pandn 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0x2d,0x78,0x56,0x34,0x12] + pandn 0x12345678,%xmm5 + +// CHECK: pandn %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xdf,0xed] + pandn %xmm5,%xmm5 + +// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x74,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqb 69, %mm3 +// CHECK: encoding: [0x0f,0x74,0x1d,0x45,0x00,0x00,0x00] + pcmpeqb 0x45,%mm3 + +// CHECK: pcmpeqb 32493, %mm3 +// CHECK: encoding: [0x0f,0x74,0x1d,0xed,0x7e,0x00,0x00] + pcmpeqb 0x7eed,%mm3 + +// CHECK: pcmpeqb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x74,0x1d,0xfe,0xca,0xbe,0xba] + pcmpeqb 0xbabecafe,%mm3 + +// CHECK: pcmpeqb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x74,0x1d,0x78,0x56,0x34,0x12] + pcmpeqb 0x12345678,%mm3 + +// CHECK: pcmpeqb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x74,0xdb] + pcmpeqb %mm3,%mm3 + +// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0x2d,0x45,0x00,0x00,0x00] + pcmpeqb 0x45,%xmm5 + +// CHECK: pcmpeqb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0x2d,0xed,0x7e,0x00,0x00] + pcmpeqb 0x7eed,%xmm5 + +// CHECK: pcmpeqb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0x2d,0xfe,0xca,0xbe,0xba] + pcmpeqb 0xbabecafe,%xmm5 + +// CHECK: pcmpeqb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0x2d,0x78,0x56,0x34,0x12] + pcmpeqb 0x12345678,%xmm5 + +// CHECK: pcmpeqb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x74,0xed] + pcmpeqb %xmm5,%xmm5 + +// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x75,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqw 69, %mm3 +// CHECK: encoding: [0x0f,0x75,0x1d,0x45,0x00,0x00,0x00] + pcmpeqw 0x45,%mm3 + +// CHECK: pcmpeqw 32493, %mm3 +// CHECK: encoding: [0x0f,0x75,0x1d,0xed,0x7e,0x00,0x00] + pcmpeqw 0x7eed,%mm3 + +// CHECK: pcmpeqw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x75,0x1d,0xfe,0xca,0xbe,0xba] + pcmpeqw 0xbabecafe,%mm3 + +// CHECK: pcmpeqw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x75,0x1d,0x78,0x56,0x34,0x12] + pcmpeqw 0x12345678,%mm3 + +// CHECK: pcmpeqw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x75,0xdb] + pcmpeqw %mm3,%mm3 + +// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0x2d,0x45,0x00,0x00,0x00] + pcmpeqw 0x45,%xmm5 + +// CHECK: pcmpeqw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0x2d,0xed,0x7e,0x00,0x00] + pcmpeqw 0x7eed,%xmm5 + +// CHECK: pcmpeqw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0x2d,0xfe,0xca,0xbe,0xba] + pcmpeqw 0xbabecafe,%xmm5 + +// CHECK: pcmpeqw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0x2d,0x78,0x56,0x34,0x12] + pcmpeqw 0x12345678,%xmm5 + +// CHECK: pcmpeqw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x75,0xed] + pcmpeqw %xmm5,%xmm5 + +// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x76,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpeqd 69, %mm3 +// CHECK: encoding: [0x0f,0x76,0x1d,0x45,0x00,0x00,0x00] + pcmpeqd 0x45,%mm3 + +// CHECK: pcmpeqd 32493, %mm3 +// CHECK: encoding: [0x0f,0x76,0x1d,0xed,0x7e,0x00,0x00] + pcmpeqd 0x7eed,%mm3 + +// CHECK: pcmpeqd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x76,0x1d,0xfe,0xca,0xbe,0xba] + pcmpeqd 0xbabecafe,%mm3 + +// CHECK: pcmpeqd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x76,0x1d,0x78,0x56,0x34,0x12] + pcmpeqd 0x12345678,%mm3 + +// CHECK: pcmpeqd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x76,0xdb] + pcmpeqd %mm3,%mm3 + +// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0x2d,0x45,0x00,0x00,0x00] + pcmpeqd 0x45,%xmm5 + +// CHECK: pcmpeqd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0x2d,0xed,0x7e,0x00,0x00] + pcmpeqd 0x7eed,%xmm5 + +// CHECK: pcmpeqd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0x2d,0xfe,0xca,0xbe,0xba] + pcmpeqd 0xbabecafe,%xmm5 + +// CHECK: pcmpeqd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0x2d,0x78,0x56,0x34,0x12] + pcmpeqd 0x12345678,%xmm5 + +// CHECK: pcmpeqd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x76,0xed] + pcmpeqd %xmm5,%xmm5 + +// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x64,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtb 69, %mm3 +// CHECK: encoding: [0x0f,0x64,0x1d,0x45,0x00,0x00,0x00] + pcmpgtb 0x45,%mm3 + +// CHECK: pcmpgtb 32493, %mm3 +// CHECK: encoding: [0x0f,0x64,0x1d,0xed,0x7e,0x00,0x00] + pcmpgtb 0x7eed,%mm3 + +// CHECK: pcmpgtb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x64,0x1d,0xfe,0xca,0xbe,0xba] + pcmpgtb 0xbabecafe,%mm3 + +// CHECK: pcmpgtb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x64,0x1d,0x78,0x56,0x34,0x12] + pcmpgtb 0x12345678,%mm3 + +// CHECK: pcmpgtb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x64,0xdb] + pcmpgtb %mm3,%mm3 + +// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0x2d,0x45,0x00,0x00,0x00] + pcmpgtb 0x45,%xmm5 + +// CHECK: pcmpgtb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0x2d,0xed,0x7e,0x00,0x00] + pcmpgtb 0x7eed,%xmm5 + +// CHECK: pcmpgtb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0x2d,0xfe,0xca,0xbe,0xba] + pcmpgtb 0xbabecafe,%xmm5 + +// CHECK: pcmpgtb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0x2d,0x78,0x56,0x34,0x12] + pcmpgtb 0x12345678,%xmm5 + +// CHECK: pcmpgtb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x64,0xed] + pcmpgtb %xmm5,%xmm5 + +// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x65,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtw 69, %mm3 +// CHECK: encoding: [0x0f,0x65,0x1d,0x45,0x00,0x00,0x00] + pcmpgtw 0x45,%mm3 + +// CHECK: pcmpgtw 32493, %mm3 +// CHECK: encoding: [0x0f,0x65,0x1d,0xed,0x7e,0x00,0x00] + pcmpgtw 0x7eed,%mm3 + +// CHECK: pcmpgtw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x65,0x1d,0xfe,0xca,0xbe,0xba] + pcmpgtw 0xbabecafe,%mm3 + +// CHECK: pcmpgtw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x65,0x1d,0x78,0x56,0x34,0x12] + pcmpgtw 0x12345678,%mm3 + +// CHECK: pcmpgtw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x65,0xdb] + pcmpgtw %mm3,%mm3 + +// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0x2d,0x45,0x00,0x00,0x00] + pcmpgtw 0x45,%xmm5 + +// CHECK: pcmpgtw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0x2d,0xed,0x7e,0x00,0x00] + pcmpgtw 0x7eed,%xmm5 + +// CHECK: pcmpgtw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0x2d,0xfe,0xca,0xbe,0xba] + pcmpgtw 0xbabecafe,%xmm5 + +// CHECK: pcmpgtw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0x2d,0x78,0x56,0x34,0x12] + pcmpgtw 0x12345678,%xmm5 + +// CHECK: pcmpgtw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x65,0xed] + pcmpgtw %xmm5,%xmm5 + +// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x66,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pcmpgtd 69, %mm3 +// CHECK: encoding: [0x0f,0x66,0x1d,0x45,0x00,0x00,0x00] + pcmpgtd 0x45,%mm3 + +// CHECK: pcmpgtd 32493, %mm3 +// CHECK: encoding: [0x0f,0x66,0x1d,0xed,0x7e,0x00,0x00] + pcmpgtd 0x7eed,%mm3 + +// CHECK: pcmpgtd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x66,0x1d,0xfe,0xca,0xbe,0xba] + pcmpgtd 0xbabecafe,%mm3 + +// CHECK: pcmpgtd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x66,0x1d,0x78,0x56,0x34,0x12] + pcmpgtd 0x12345678,%mm3 + +// CHECK: pcmpgtd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x66,0xdb] + pcmpgtd %mm3,%mm3 + +// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0x2d,0x45,0x00,0x00,0x00] + pcmpgtd 0x45,%xmm5 + +// CHECK: pcmpgtd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0x2d,0xed,0x7e,0x00,0x00] + pcmpgtd 0x7eed,%xmm5 + +// CHECK: pcmpgtd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0x2d,0xfe,0xca,0xbe,0xba] + pcmpgtd 0xbabecafe,%xmm5 + +// CHECK: pcmpgtd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0x2d,0x78,0x56,0x34,0x12] + pcmpgtd 0x12345678,%xmm5 + +// CHECK: pcmpgtd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x66,0xed] + pcmpgtd %xmm5,%xmm5 + +// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf5,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmaddwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaddwd 69, %mm3 +// CHECK: encoding: [0x0f,0xf5,0x1d,0x45,0x00,0x00,0x00] + pmaddwd 0x45,%mm3 + +// CHECK: pmaddwd 32493, %mm3 +// CHECK: encoding: [0x0f,0xf5,0x1d,0xed,0x7e,0x00,0x00] + pmaddwd 0x7eed,%mm3 + +// CHECK: pmaddwd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf5,0x1d,0xfe,0xca,0xbe,0xba] + pmaddwd 0xbabecafe,%mm3 + +// CHECK: pmaddwd 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf5,0x1d,0x78,0x56,0x34,0x12] + pmaddwd 0x12345678,%mm3 + +// CHECK: pmaddwd %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf5,0xdb] + pmaddwd %mm3,%mm3 + +// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaddwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaddwd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0x2d,0x45,0x00,0x00,0x00] + pmaddwd 0x45,%xmm5 + +// CHECK: pmaddwd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0x2d,0xed,0x7e,0x00,0x00] + pmaddwd 0x7eed,%xmm5 + +// CHECK: pmaddwd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0x2d,0xfe,0xca,0xbe,0xba] + pmaddwd 0xbabecafe,%xmm5 + +// CHECK: pmaddwd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0x2d,0x78,0x56,0x34,0x12] + pmaddwd 0x12345678,%xmm5 + +// CHECK: pmaddwd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf5,0xed] + pmaddwd %xmm5,%xmm5 + +// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe5,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmulhw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhw 69, %mm3 +// CHECK: encoding: [0x0f,0xe5,0x1d,0x45,0x00,0x00,0x00] + pmulhw 0x45,%mm3 + +// CHECK: pmulhw 32493, %mm3 +// CHECK: encoding: [0x0f,0xe5,0x1d,0xed,0x7e,0x00,0x00] + pmulhw 0x7eed,%mm3 + +// CHECK: pmulhw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe5,0x1d,0xfe,0xca,0xbe,0xba] + pmulhw 0xbabecafe,%mm3 + +// CHECK: pmulhw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe5,0x1d,0x78,0x56,0x34,0x12] + pmulhw 0x12345678,%mm3 + +// CHECK: pmulhw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe5,0xdb] + pmulhw %mm3,%mm3 + +// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmulhw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0x2d,0x45,0x00,0x00,0x00] + pmulhw 0x45,%xmm5 + +// CHECK: pmulhw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0x2d,0xed,0x7e,0x00,0x00] + pmulhw 0x7eed,%xmm5 + +// CHECK: pmulhw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0x2d,0xfe,0xca,0xbe,0xba] + pmulhw 0xbabecafe,%xmm5 + +// CHECK: pmulhw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0x2d,0x78,0x56,0x34,0x12] + pmulhw 0x12345678,%xmm5 + +// CHECK: pmulhw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe5,0xed] + pmulhw %xmm5,%xmm5 + +// CHECK: pmullw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd5,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmullw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmullw 69, %mm3 +// CHECK: encoding: [0x0f,0xd5,0x1d,0x45,0x00,0x00,0x00] + pmullw 0x45,%mm3 + +// CHECK: pmullw 32493, %mm3 +// CHECK: encoding: [0x0f,0xd5,0x1d,0xed,0x7e,0x00,0x00] + pmullw 0x7eed,%mm3 + +// CHECK: pmullw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd5,0x1d,0xfe,0xca,0xbe,0xba] + pmullw 0xbabecafe,%mm3 + +// CHECK: pmullw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd5,0x1d,0x78,0x56,0x34,0x12] + pmullw 0x12345678,%mm3 + +// CHECK: pmullw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd5,0xdb] + pmullw %mm3,%mm3 + +// CHECK: pmullw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmullw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmullw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0x2d,0x45,0x00,0x00,0x00] + pmullw 0x45,%xmm5 + +// CHECK: pmullw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0x2d,0xed,0x7e,0x00,0x00] + pmullw 0x7eed,%xmm5 + +// CHECK: pmullw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0x2d,0xfe,0xca,0xbe,0xba] + pmullw 0xbabecafe,%xmm5 + +// CHECK: pmullw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0x2d,0x78,0x56,0x34,0x12] + pmullw 0x12345678,%xmm5 + +// CHECK: pmullw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd5,0xed] + pmullw %xmm5,%xmm5 + +// CHECK: por 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xeb,0x9c,0xcb,0xef,0xbe,0xad,0xde] + por 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: por 69, %mm3 +// CHECK: encoding: [0x0f,0xeb,0x1d,0x45,0x00,0x00,0x00] + por 0x45,%mm3 + +// CHECK: por 32493, %mm3 +// CHECK: encoding: [0x0f,0xeb,0x1d,0xed,0x7e,0x00,0x00] + por 0x7eed,%mm3 + +// CHECK: por 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xeb,0x1d,0xfe,0xca,0xbe,0xba] + por 0xbabecafe,%mm3 + +// CHECK: por 305419896, %mm3 +// CHECK: encoding: [0x0f,0xeb,0x1d,0x78,0x56,0x34,0x12] + por 0x12345678,%mm3 + +// CHECK: por %mm3, %mm3 +// CHECK: encoding: [0x0f,0xeb,0xdb] + por %mm3,%mm3 + +// CHECK: por 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0xac,0xcb,0xef,0xbe,0xad,0xde] + por 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: por 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0x2d,0x45,0x00,0x00,0x00] + por 0x45,%xmm5 + +// CHECK: por 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0x2d,0xed,0x7e,0x00,0x00] + por 0x7eed,%xmm5 + +// CHECK: por 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0x2d,0xfe,0xca,0xbe,0xba] + por 0xbabecafe,%xmm5 + +// CHECK: por 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0x2d,0x78,0x56,0x34,0x12] + por 0x12345678,%xmm5 + +// CHECK: por %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xeb,0xed] + por %xmm5,%xmm5 + +// CHECK: psllw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf1,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psllw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psllw 69, %mm3 +// CHECK: encoding: [0x0f,0xf1,0x1d,0x45,0x00,0x00,0x00] + psllw 0x45,%mm3 + +// CHECK: psllw 32493, %mm3 +// CHECK: encoding: [0x0f,0xf1,0x1d,0xed,0x7e,0x00,0x00] + psllw 0x7eed,%mm3 + +// CHECK: psllw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf1,0x1d,0xfe,0xca,0xbe,0xba] + psllw 0xbabecafe,%mm3 + +// CHECK: psllw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf1,0x1d,0x78,0x56,0x34,0x12] + psllw 0x12345678,%mm3 + +// CHECK: psllw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf1,0xdb] + psllw %mm3,%mm3 + +// CHECK: psllw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0xac,0xcb,0xef,0xbe,0xad,0xde] + psllw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psllw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0x2d,0x45,0x00,0x00,0x00] + psllw 0x45,%xmm5 + +// CHECK: psllw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0x2d,0xed,0x7e,0x00,0x00] + psllw 0x7eed,%xmm5 + +// CHECK: psllw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0x2d,0xfe,0xca,0xbe,0xba] + psllw 0xbabecafe,%xmm5 + +// CHECK: psllw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0x2d,0x78,0x56,0x34,0x12] + psllw 0x12345678,%xmm5 + +// CHECK: psllw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf1,0xed] + psllw %xmm5,%xmm5 + +// CHECK: psllw $127, %mm3 +// CHECK: encoding: [0x0f,0x71,0xf3,0x7f] + psllw $0x7f,%mm3 + +// CHECK: psllw $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x71,0xf5,0x7f] + psllw $0x7f,%xmm5 + +// CHECK: pslld 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf2,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pslld 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pslld 69, %mm3 +// CHECK: encoding: [0x0f,0xf2,0x1d,0x45,0x00,0x00,0x00] + pslld 0x45,%mm3 + +// CHECK: pslld 32493, %mm3 +// CHECK: encoding: [0x0f,0xf2,0x1d,0xed,0x7e,0x00,0x00] + pslld 0x7eed,%mm3 + +// CHECK: pslld 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf2,0x1d,0xfe,0xca,0xbe,0xba] + pslld 0xbabecafe,%mm3 + +// CHECK: pslld 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf2,0x1d,0x78,0x56,0x34,0x12] + pslld 0x12345678,%mm3 + +// CHECK: pslld %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf2,0xdb] + pslld %mm3,%mm3 + +// CHECK: pslld 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0xac,0xcb,0xef,0xbe,0xad,0xde] + pslld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pslld 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0x2d,0x45,0x00,0x00,0x00] + pslld 0x45,%xmm5 + +// CHECK: pslld 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0x2d,0xed,0x7e,0x00,0x00] + pslld 0x7eed,%xmm5 + +// CHECK: pslld 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0x2d,0xfe,0xca,0xbe,0xba] + pslld 0xbabecafe,%xmm5 + +// CHECK: pslld 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0x2d,0x78,0x56,0x34,0x12] + pslld 0x12345678,%xmm5 + +// CHECK: pslld %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf2,0xed] + pslld %xmm5,%xmm5 + +// CHECK: pslld $127, %mm3 +// CHECK: encoding: [0x0f,0x72,0xf3,0x7f] + pslld $0x7f,%mm3 + +// CHECK: pslld $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x72,0xf5,0x7f] + pslld $0x7f,%xmm5 + +// CHECK: psllq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf3,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psllq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psllq 69, %mm3 +// CHECK: encoding: [0x0f,0xf3,0x1d,0x45,0x00,0x00,0x00] + psllq 0x45,%mm3 + +// CHECK: psllq 32493, %mm3 +// CHECK: encoding: [0x0f,0xf3,0x1d,0xed,0x7e,0x00,0x00] + psllq 0x7eed,%mm3 + +// CHECK: psllq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf3,0x1d,0xfe,0xca,0xbe,0xba] + psllq 0xbabecafe,%mm3 + +// CHECK: psllq 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf3,0x1d,0x78,0x56,0x34,0x12] + psllq 0x12345678,%mm3 + +// CHECK: psllq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf3,0xdb] + psllq %mm3,%mm3 + +// CHECK: psllq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0xac,0xcb,0xef,0xbe,0xad,0xde] + psllq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psllq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0x2d,0x45,0x00,0x00,0x00] + psllq 0x45,%xmm5 + +// CHECK: psllq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0x2d,0xed,0x7e,0x00,0x00] + psllq 0x7eed,%xmm5 + +// CHECK: psllq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0x2d,0xfe,0xca,0xbe,0xba] + psllq 0xbabecafe,%xmm5 + +// CHECK: psllq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0x2d,0x78,0x56,0x34,0x12] + psllq 0x12345678,%xmm5 + +// CHECK: psllq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf3,0xed] + psllq %xmm5,%xmm5 + +// CHECK: psllq $127, %mm3 +// CHECK: encoding: [0x0f,0x73,0xf3,0x7f] + psllq $0x7f,%mm3 + +// CHECK: psllq $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x73,0xf5,0x7f] + psllq $0x7f,%xmm5 + +// CHECK: psraw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe1,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psraw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psraw 69, %mm3 +// CHECK: encoding: [0x0f,0xe1,0x1d,0x45,0x00,0x00,0x00] + psraw 0x45,%mm3 + +// CHECK: psraw 32493, %mm3 +// CHECK: encoding: [0x0f,0xe1,0x1d,0xed,0x7e,0x00,0x00] + psraw 0x7eed,%mm3 + +// CHECK: psraw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe1,0x1d,0xfe,0xca,0xbe,0xba] + psraw 0xbabecafe,%mm3 + +// CHECK: psraw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe1,0x1d,0x78,0x56,0x34,0x12] + psraw 0x12345678,%mm3 + +// CHECK: psraw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe1,0xdb] + psraw %mm3,%mm3 + +// CHECK: psraw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0xac,0xcb,0xef,0xbe,0xad,0xde] + psraw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psraw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0x2d,0x45,0x00,0x00,0x00] + psraw 0x45,%xmm5 + +// CHECK: psraw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0x2d,0xed,0x7e,0x00,0x00] + psraw 0x7eed,%xmm5 + +// CHECK: psraw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0x2d,0xfe,0xca,0xbe,0xba] + psraw 0xbabecafe,%xmm5 + +// CHECK: psraw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0x2d,0x78,0x56,0x34,0x12] + psraw 0x12345678,%xmm5 + +// CHECK: psraw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe1,0xed] + psraw %xmm5,%xmm5 + +// CHECK: psraw $127, %mm3 +// CHECK: encoding: [0x0f,0x71,0xe3,0x7f] + psraw $0x7f,%mm3 + +// CHECK: psraw $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x71,0xe5,0x7f] + psraw $0x7f,%xmm5 + +// CHECK: psrad 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe2,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psrad 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrad 69, %mm3 +// CHECK: encoding: [0x0f,0xe2,0x1d,0x45,0x00,0x00,0x00] + psrad 0x45,%mm3 + +// CHECK: psrad 32493, %mm3 +// CHECK: encoding: [0x0f,0xe2,0x1d,0xed,0x7e,0x00,0x00] + psrad 0x7eed,%mm3 + +// CHECK: psrad 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe2,0x1d,0xfe,0xca,0xbe,0xba] + psrad 0xbabecafe,%mm3 + +// CHECK: psrad 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe2,0x1d,0x78,0x56,0x34,0x12] + psrad 0x12345678,%mm3 + +// CHECK: psrad %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe2,0xdb] + psrad %mm3,%mm3 + +// CHECK: psrad 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0xac,0xcb,0xef,0xbe,0xad,0xde] + psrad 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrad 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0x2d,0x45,0x00,0x00,0x00] + psrad 0x45,%xmm5 + +// CHECK: psrad 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0x2d,0xed,0x7e,0x00,0x00] + psrad 0x7eed,%xmm5 + +// CHECK: psrad 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0x2d,0xfe,0xca,0xbe,0xba] + psrad 0xbabecafe,%xmm5 + +// CHECK: psrad 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0x2d,0x78,0x56,0x34,0x12] + psrad 0x12345678,%xmm5 + +// CHECK: psrad %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe2,0xed] + psrad %xmm5,%xmm5 + +// CHECK: psrad $127, %mm3 +// CHECK: encoding: [0x0f,0x72,0xe3,0x7f] + psrad $0x7f,%mm3 + +// CHECK: psrad $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x72,0xe5,0x7f] + psrad $0x7f,%xmm5 + +// CHECK: psrlw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd1,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psrlw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrlw 69, %mm3 +// CHECK: encoding: [0x0f,0xd1,0x1d,0x45,0x00,0x00,0x00] + psrlw 0x45,%mm3 + +// CHECK: psrlw 32493, %mm3 +// CHECK: encoding: [0x0f,0xd1,0x1d,0xed,0x7e,0x00,0x00] + psrlw 0x7eed,%mm3 + +// CHECK: psrlw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd1,0x1d,0xfe,0xca,0xbe,0xba] + psrlw 0xbabecafe,%mm3 + +// CHECK: psrlw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd1,0x1d,0x78,0x56,0x34,0x12] + psrlw 0x12345678,%mm3 + +// CHECK: psrlw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd1,0xdb] + psrlw %mm3,%mm3 + +// CHECK: psrlw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0xac,0xcb,0xef,0xbe,0xad,0xde] + psrlw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrlw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0x2d,0x45,0x00,0x00,0x00] + psrlw 0x45,%xmm5 + +// CHECK: psrlw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0x2d,0xed,0x7e,0x00,0x00] + psrlw 0x7eed,%xmm5 + +// CHECK: psrlw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0x2d,0xfe,0xca,0xbe,0xba] + psrlw 0xbabecafe,%xmm5 + +// CHECK: psrlw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0x2d,0x78,0x56,0x34,0x12] + psrlw 0x12345678,%xmm5 + +// CHECK: psrlw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd1,0xed] + psrlw %xmm5,%xmm5 + +// CHECK: psrlw $127, %mm3 +// CHECK: encoding: [0x0f,0x71,0xd3,0x7f] + psrlw $0x7f,%mm3 + +// CHECK: psrlw $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x71,0xd5,0x7f] + psrlw $0x7f,%xmm5 + +// CHECK: psrld 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd2,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psrld 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrld 69, %mm3 +// CHECK: encoding: [0x0f,0xd2,0x1d,0x45,0x00,0x00,0x00] + psrld 0x45,%mm3 + +// CHECK: psrld 32493, %mm3 +// CHECK: encoding: [0x0f,0xd2,0x1d,0xed,0x7e,0x00,0x00] + psrld 0x7eed,%mm3 + +// CHECK: psrld 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd2,0x1d,0xfe,0xca,0xbe,0xba] + psrld 0xbabecafe,%mm3 + +// CHECK: psrld 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd2,0x1d,0x78,0x56,0x34,0x12] + psrld 0x12345678,%mm3 + +// CHECK: psrld %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd2,0xdb] + psrld %mm3,%mm3 + +// CHECK: psrld 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0xac,0xcb,0xef,0xbe,0xad,0xde] + psrld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrld 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0x2d,0x45,0x00,0x00,0x00] + psrld 0x45,%xmm5 + +// CHECK: psrld 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0x2d,0xed,0x7e,0x00,0x00] + psrld 0x7eed,%xmm5 + +// CHECK: psrld 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0x2d,0xfe,0xca,0xbe,0xba] + psrld 0xbabecafe,%xmm5 + +// CHECK: psrld 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0x2d,0x78,0x56,0x34,0x12] + psrld 0x12345678,%xmm5 + +// CHECK: psrld %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd2,0xed] + psrld %xmm5,%xmm5 + +// CHECK: psrld $127, %mm3 +// CHECK: encoding: [0x0f,0x72,0xd3,0x7f] + psrld $0x7f,%mm3 + +// CHECK: psrld $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x72,0xd5,0x7f] + psrld $0x7f,%xmm5 + +// CHECK: psrlq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd3,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psrlq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psrlq 69, %mm3 +// CHECK: encoding: [0x0f,0xd3,0x1d,0x45,0x00,0x00,0x00] + psrlq 0x45,%mm3 + +// CHECK: psrlq 32493, %mm3 +// CHECK: encoding: [0x0f,0xd3,0x1d,0xed,0x7e,0x00,0x00] + psrlq 0x7eed,%mm3 + +// CHECK: psrlq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd3,0x1d,0xfe,0xca,0xbe,0xba] + psrlq 0xbabecafe,%mm3 + +// CHECK: psrlq 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd3,0x1d,0x78,0x56,0x34,0x12] + psrlq 0x12345678,%mm3 + +// CHECK: psrlq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd3,0xdb] + psrlq %mm3,%mm3 + +// CHECK: psrlq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0xac,0xcb,0xef,0xbe,0xad,0xde] + psrlq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psrlq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0x2d,0x45,0x00,0x00,0x00] + psrlq 0x45,%xmm5 + +// CHECK: psrlq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0x2d,0xed,0x7e,0x00,0x00] + psrlq 0x7eed,%xmm5 + +// CHECK: psrlq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0x2d,0xfe,0xca,0xbe,0xba] + psrlq 0xbabecafe,%xmm5 + +// CHECK: psrlq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0x2d,0x78,0x56,0x34,0x12] + psrlq 0x12345678,%xmm5 + +// CHECK: psrlq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd3,0xed] + psrlq %xmm5,%xmm5 + +// CHECK: psrlq $127, %mm3 +// CHECK: encoding: [0x0f,0x73,0xd3,0x7f] + psrlq $0x7f,%mm3 + +// CHECK: psrlq $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x73,0xd5,0x7f] + psrlq $0x7f,%xmm5 + +// CHECK: psubb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf8,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubb 69, %mm3 +// CHECK: encoding: [0x0f,0xf8,0x1d,0x45,0x00,0x00,0x00] + psubb 0x45,%mm3 + +// CHECK: psubb 32493, %mm3 +// CHECK: encoding: [0x0f,0xf8,0x1d,0xed,0x7e,0x00,0x00] + psubb 0x7eed,%mm3 + +// CHECK: psubb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf8,0x1d,0xfe,0xca,0xbe,0xba] + psubb 0xbabecafe,%mm3 + +// CHECK: psubb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf8,0x1d,0x78,0x56,0x34,0x12] + psubb 0x12345678,%mm3 + +// CHECK: psubb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf8,0xdb] + psubb %mm3,%mm3 + +// CHECK: psubb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0x2d,0x45,0x00,0x00,0x00] + psubb 0x45,%xmm5 + +// CHECK: psubb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0x2d,0xed,0x7e,0x00,0x00] + psubb 0x7eed,%xmm5 + +// CHECK: psubb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0x2d,0xfe,0xca,0xbe,0xba] + psubb 0xbabecafe,%xmm5 + +// CHECK: psubb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0x2d,0x78,0x56,0x34,0x12] + psubb 0x12345678,%xmm5 + +// CHECK: psubb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf8,0xed] + psubb %xmm5,%xmm5 + +// CHECK: psubw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf9,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubw 69, %mm3 +// CHECK: encoding: [0x0f,0xf9,0x1d,0x45,0x00,0x00,0x00] + psubw 0x45,%mm3 + +// CHECK: psubw 32493, %mm3 +// CHECK: encoding: [0x0f,0xf9,0x1d,0xed,0x7e,0x00,0x00] + psubw 0x7eed,%mm3 + +// CHECK: psubw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf9,0x1d,0xfe,0xca,0xbe,0xba] + psubw 0xbabecafe,%mm3 + +// CHECK: psubw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf9,0x1d,0x78,0x56,0x34,0x12] + psubw 0x12345678,%mm3 + +// CHECK: psubw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf9,0xdb] + psubw %mm3,%mm3 + +// CHECK: psubw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0x2d,0x45,0x00,0x00,0x00] + psubw 0x45,%xmm5 + +// CHECK: psubw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0x2d,0xed,0x7e,0x00,0x00] + psubw 0x7eed,%xmm5 + +// CHECK: psubw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0x2d,0xfe,0xca,0xbe,0xba] + psubw 0xbabecafe,%xmm5 + +// CHECK: psubw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0x2d,0x78,0x56,0x34,0x12] + psubw 0x12345678,%xmm5 + +// CHECK: psubw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf9,0xed] + psubw %xmm5,%xmm5 + +// CHECK: psubd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xfa,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubd 69, %mm3 +// CHECK: encoding: [0x0f,0xfa,0x1d,0x45,0x00,0x00,0x00] + psubd 0x45,%mm3 + +// CHECK: psubd 32493, %mm3 +// CHECK: encoding: [0x0f,0xfa,0x1d,0xed,0x7e,0x00,0x00] + psubd 0x7eed,%mm3 + +// CHECK: psubd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xfa,0x1d,0xfe,0xca,0xbe,0xba] + psubd 0xbabecafe,%mm3 + +// CHECK: psubd 305419896, %mm3 +// CHECK: encoding: [0x0f,0xfa,0x1d,0x78,0x56,0x34,0x12] + psubd 0x12345678,%mm3 + +// CHECK: psubd %mm3, %mm3 +// CHECK: encoding: [0x0f,0xfa,0xdb] + psubd %mm3,%mm3 + +// CHECK: psubd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0x2d,0x45,0x00,0x00,0x00] + psubd 0x45,%xmm5 + +// CHECK: psubd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0x2d,0xed,0x7e,0x00,0x00] + psubd 0x7eed,%xmm5 + +// CHECK: psubd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0x2d,0xfe,0xca,0xbe,0xba] + psubd 0xbabecafe,%xmm5 + +// CHECK: psubd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0x2d,0x78,0x56,0x34,0x12] + psubd 0x12345678,%xmm5 + +// CHECK: psubd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfa,0xed] + psubd %xmm5,%xmm5 + +// CHECK: psubq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xfb,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubq 69, %mm3 +// CHECK: encoding: [0x0f,0xfb,0x1d,0x45,0x00,0x00,0x00] + psubq 0x45,%mm3 + +// CHECK: psubq 32493, %mm3 +// CHECK: encoding: [0x0f,0xfb,0x1d,0xed,0x7e,0x00,0x00] + psubq 0x7eed,%mm3 + +// CHECK: psubq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xfb,0x1d,0xfe,0xca,0xbe,0xba] + psubq 0xbabecafe,%mm3 + +// CHECK: psubq 305419896, %mm3 +// CHECK: encoding: [0x0f,0xfb,0x1d,0x78,0x56,0x34,0x12] + psubq 0x12345678,%mm3 + +// CHECK: psubq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xfb,0xdb] + psubq %mm3,%mm3 + +// CHECK: psubq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0x2d,0x45,0x00,0x00,0x00] + psubq 0x45,%xmm5 + +// CHECK: psubq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0x2d,0xed,0x7e,0x00,0x00] + psubq 0x7eed,%xmm5 + +// CHECK: psubq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0x2d,0xfe,0xca,0xbe,0xba] + psubq 0xbabecafe,%xmm5 + +// CHECK: psubq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0x2d,0x78,0x56,0x34,0x12] + psubq 0x12345678,%xmm5 + +// CHECK: psubq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xfb,0xed] + psubq %xmm5,%xmm5 + +// CHECK: psubsb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe8,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubsb 69, %mm3 +// CHECK: encoding: [0x0f,0xe8,0x1d,0x45,0x00,0x00,0x00] + psubsb 0x45,%mm3 + +// CHECK: psubsb 32493, %mm3 +// CHECK: encoding: [0x0f,0xe8,0x1d,0xed,0x7e,0x00,0x00] + psubsb 0x7eed,%mm3 + +// CHECK: psubsb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe8,0x1d,0xfe,0xca,0xbe,0xba] + psubsb 0xbabecafe,%mm3 + +// CHECK: psubsb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe8,0x1d,0x78,0x56,0x34,0x12] + psubsb 0x12345678,%mm3 + +// CHECK: psubsb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe8,0xdb] + psubsb %mm3,%mm3 + +// CHECK: psubsb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubsb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0x2d,0x45,0x00,0x00,0x00] + psubsb 0x45,%xmm5 + +// CHECK: psubsb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0x2d,0xed,0x7e,0x00,0x00] + psubsb 0x7eed,%xmm5 + +// CHECK: psubsb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0x2d,0xfe,0xca,0xbe,0xba] + psubsb 0xbabecafe,%xmm5 + +// CHECK: psubsb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0x2d,0x78,0x56,0x34,0x12] + psubsb 0x12345678,%xmm5 + +// CHECK: psubsb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe8,0xed] + psubsb %xmm5,%xmm5 + +// CHECK: psubsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe9,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubsw 69, %mm3 +// CHECK: encoding: [0x0f,0xe9,0x1d,0x45,0x00,0x00,0x00] + psubsw 0x45,%mm3 + +// CHECK: psubsw 32493, %mm3 +// CHECK: encoding: [0x0f,0xe9,0x1d,0xed,0x7e,0x00,0x00] + psubsw 0x7eed,%mm3 + +// CHECK: psubsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe9,0x1d,0xfe,0xca,0xbe,0xba] + psubsw 0xbabecafe,%mm3 + +// CHECK: psubsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe9,0x1d,0x78,0x56,0x34,0x12] + psubsw 0x12345678,%mm3 + +// CHECK: psubsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe9,0xdb] + psubsw %mm3,%mm3 + +// CHECK: psubsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0x2d,0x45,0x00,0x00,0x00] + psubsw 0x45,%xmm5 + +// CHECK: psubsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0x2d,0xed,0x7e,0x00,0x00] + psubsw 0x7eed,%xmm5 + +// CHECK: psubsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0x2d,0xfe,0xca,0xbe,0xba] + psubsw 0xbabecafe,%xmm5 + +// CHECK: psubsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0x2d,0x78,0x56,0x34,0x12] + psubsw 0x12345678,%xmm5 + +// CHECK: psubsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe9,0xed] + psubsw %xmm5,%xmm5 + +// CHECK: psubusb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd8,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubusb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubusb 69, %mm3 +// CHECK: encoding: [0x0f,0xd8,0x1d,0x45,0x00,0x00,0x00] + psubusb 0x45,%mm3 + +// CHECK: psubusb 32493, %mm3 +// CHECK: encoding: [0x0f,0xd8,0x1d,0xed,0x7e,0x00,0x00] + psubusb 0x7eed,%mm3 + +// CHECK: psubusb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd8,0x1d,0xfe,0xca,0xbe,0xba] + psubusb 0xbabecafe,%mm3 + +// CHECK: psubusb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd8,0x1d,0x78,0x56,0x34,0x12] + psubusb 0x12345678,%mm3 + +// CHECK: psubusb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd8,0xdb] + psubusb %mm3,%mm3 + +// CHECK: psubusb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubusb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubusb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0x2d,0x45,0x00,0x00,0x00] + psubusb 0x45,%xmm5 + +// CHECK: psubusb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0x2d,0xed,0x7e,0x00,0x00] + psubusb 0x7eed,%xmm5 + +// CHECK: psubusb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0x2d,0xfe,0xca,0xbe,0xba] + psubusb 0xbabecafe,%xmm5 + +// CHECK: psubusb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0x2d,0x78,0x56,0x34,0x12] + psubusb 0x12345678,%xmm5 + +// CHECK: psubusb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd8,0xed] + psubusb %xmm5,%xmm5 + +// CHECK: psubusw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xd9,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psubusw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psubusw 69, %mm3 +// CHECK: encoding: [0x0f,0xd9,0x1d,0x45,0x00,0x00,0x00] + psubusw 0x45,%mm3 + +// CHECK: psubusw 32493, %mm3 +// CHECK: encoding: [0x0f,0xd9,0x1d,0xed,0x7e,0x00,0x00] + psubusw 0x7eed,%mm3 + +// CHECK: psubusw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xd9,0x1d,0xfe,0xca,0xbe,0xba] + psubusw 0xbabecafe,%mm3 + +// CHECK: psubusw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xd9,0x1d,0x78,0x56,0x34,0x12] + psubusw 0x12345678,%mm3 + +// CHECK: psubusw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xd9,0xdb] + psubusw %mm3,%mm3 + +// CHECK: psubusw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0xac,0xcb,0xef,0xbe,0xad,0xde] + psubusw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psubusw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0x2d,0x45,0x00,0x00,0x00] + psubusw 0x45,%xmm5 + +// CHECK: psubusw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0x2d,0xed,0x7e,0x00,0x00] + psubusw 0x7eed,%xmm5 + +// CHECK: psubusw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0x2d,0xfe,0xca,0xbe,0xba] + psubusw 0xbabecafe,%xmm5 + +// CHECK: psubusw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0x2d,0x78,0x56,0x34,0x12] + psubusw 0x12345678,%xmm5 + +// CHECK: psubusw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd9,0xed] + psubusw %xmm5,%xmm5 + +// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x68,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpckhbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhbw 69, %mm3 +// CHECK: encoding: [0x0f,0x68,0x1d,0x45,0x00,0x00,0x00] + punpckhbw 0x45,%mm3 + +// CHECK: punpckhbw 32493, %mm3 +// CHECK: encoding: [0x0f,0x68,0x1d,0xed,0x7e,0x00,0x00] + punpckhbw 0x7eed,%mm3 + +// CHECK: punpckhbw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x68,0x1d,0xfe,0xca,0xbe,0xba] + punpckhbw 0xbabecafe,%mm3 + +// CHECK: punpckhbw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x68,0x1d,0x78,0x56,0x34,0x12] + punpckhbw 0x12345678,%mm3 + +// CHECK: punpckhbw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x68,0xdb] + punpckhbw %mm3,%mm3 + +// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpckhbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhbw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0x2d,0x45,0x00,0x00,0x00] + punpckhbw 0x45,%xmm5 + +// CHECK: punpckhbw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0x2d,0xed,0x7e,0x00,0x00] + punpckhbw 0x7eed,%xmm5 + +// CHECK: punpckhbw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0x2d,0xfe,0xca,0xbe,0xba] + punpckhbw 0xbabecafe,%xmm5 + +// CHECK: punpckhbw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0x2d,0x78,0x56,0x34,0x12] + punpckhbw 0x12345678,%xmm5 + +// CHECK: punpckhbw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x68,0xed] + punpckhbw %xmm5,%xmm5 + +// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x69,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpckhwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhwd 69, %mm3 +// CHECK: encoding: [0x0f,0x69,0x1d,0x45,0x00,0x00,0x00] + punpckhwd 0x45,%mm3 + +// CHECK: punpckhwd 32493, %mm3 +// CHECK: encoding: [0x0f,0x69,0x1d,0xed,0x7e,0x00,0x00] + punpckhwd 0x7eed,%mm3 + +// CHECK: punpckhwd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x69,0x1d,0xfe,0xca,0xbe,0xba] + punpckhwd 0xbabecafe,%mm3 + +// CHECK: punpckhwd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x69,0x1d,0x78,0x56,0x34,0x12] + punpckhwd 0x12345678,%mm3 + +// CHECK: punpckhwd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x69,0xdb] + punpckhwd %mm3,%mm3 + +// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpckhwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhwd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0x2d,0x45,0x00,0x00,0x00] + punpckhwd 0x45,%xmm5 + +// CHECK: punpckhwd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0x2d,0xed,0x7e,0x00,0x00] + punpckhwd 0x7eed,%xmm5 + +// CHECK: punpckhwd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0x2d,0xfe,0xca,0xbe,0xba] + punpckhwd 0xbabecafe,%xmm5 + +// CHECK: punpckhwd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0x2d,0x78,0x56,0x34,0x12] + punpckhwd 0x12345678,%xmm5 + +// CHECK: punpckhwd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x69,0xed] + punpckhwd %xmm5,%xmm5 + +// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x6a,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpckhdq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckhdq 69, %mm3 +// CHECK: encoding: [0x0f,0x6a,0x1d,0x45,0x00,0x00,0x00] + punpckhdq 0x45,%mm3 + +// CHECK: punpckhdq 32493, %mm3 +// CHECK: encoding: [0x0f,0x6a,0x1d,0xed,0x7e,0x00,0x00] + punpckhdq 0x7eed,%mm3 + +// CHECK: punpckhdq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x6a,0x1d,0xfe,0xca,0xbe,0xba] + punpckhdq 0xbabecafe,%mm3 + +// CHECK: punpckhdq 305419896, %mm3 +// CHECK: encoding: [0x0f,0x6a,0x1d,0x78,0x56,0x34,0x12] + punpckhdq 0x12345678,%mm3 + +// CHECK: punpckhdq %mm3, %mm3 +// CHECK: encoding: [0x0f,0x6a,0xdb] + punpckhdq %mm3,%mm3 + +// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpckhdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhdq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0x2d,0x45,0x00,0x00,0x00] + punpckhdq 0x45,%xmm5 + +// CHECK: punpckhdq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0x2d,0xed,0x7e,0x00,0x00] + punpckhdq 0x7eed,%xmm5 + +// CHECK: punpckhdq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0x2d,0xfe,0xca,0xbe,0xba] + punpckhdq 0xbabecafe,%xmm5 + +// CHECK: punpckhdq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0x2d,0x78,0x56,0x34,0x12] + punpckhdq 0x12345678,%xmm5 + +// CHECK: punpckhdq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6a,0xed] + punpckhdq %xmm5,%xmm5 + +// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x60,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpcklbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpcklbw 69, %mm3 +// CHECK: encoding: [0x0f,0x60,0x1d,0x45,0x00,0x00,0x00] + punpcklbw 0x45,%mm3 + +// CHECK: punpcklbw 32493, %mm3 +// CHECK: encoding: [0x0f,0x60,0x1d,0xed,0x7e,0x00,0x00] + punpcklbw 0x7eed,%mm3 + +// CHECK: punpcklbw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x60,0x1d,0xfe,0xca,0xbe,0xba] + punpcklbw 0xbabecafe,%mm3 + +// CHECK: punpcklbw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x60,0x1d,0x78,0x56,0x34,0x12] + punpcklbw 0x12345678,%mm3 + +// CHECK: punpcklbw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x60,0xdb] + punpcklbw %mm3,%mm3 + +// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpcklbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklbw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0x2d,0x45,0x00,0x00,0x00] + punpcklbw 0x45,%xmm5 + +// CHECK: punpcklbw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0x2d,0xed,0x7e,0x00,0x00] + punpcklbw 0x7eed,%xmm5 + +// CHECK: punpcklbw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0x2d,0xfe,0xca,0xbe,0xba] + punpcklbw 0xbabecafe,%xmm5 + +// CHECK: punpcklbw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0x2d,0x78,0x56,0x34,0x12] + punpcklbw 0x12345678,%xmm5 + +// CHECK: punpcklbw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x60,0xed] + punpcklbw %xmm5,%xmm5 + +// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x61,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpcklwd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpcklwd 69, %mm3 +// CHECK: encoding: [0x0f,0x61,0x1d,0x45,0x00,0x00,0x00] + punpcklwd 0x45,%mm3 + +// CHECK: punpcklwd 32493, %mm3 +// CHECK: encoding: [0x0f,0x61,0x1d,0xed,0x7e,0x00,0x00] + punpcklwd 0x7eed,%mm3 + +// CHECK: punpcklwd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x61,0x1d,0xfe,0xca,0xbe,0xba] + punpcklwd 0xbabecafe,%mm3 + +// CHECK: punpcklwd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x61,0x1d,0x78,0x56,0x34,0x12] + punpcklwd 0x12345678,%mm3 + +// CHECK: punpcklwd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x61,0xdb] + punpcklwd %mm3,%mm3 + +// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpcklwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklwd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0x2d,0x45,0x00,0x00,0x00] + punpcklwd 0x45,%xmm5 + +// CHECK: punpcklwd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0x2d,0xed,0x7e,0x00,0x00] + punpcklwd 0x7eed,%xmm5 + +// CHECK: punpcklwd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0x2d,0xfe,0xca,0xbe,0xba] + punpcklwd 0xbabecafe,%xmm5 + +// CHECK: punpcklwd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0x2d,0x78,0x56,0x34,0x12] + punpcklwd 0x12345678,%xmm5 + +// CHECK: punpcklwd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x61,0xed] + punpcklwd %xmm5,%xmm5 + +// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x62,0x9c,0xcb,0xef,0xbe,0xad,0xde] + punpckldq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: punpckldq 69, %mm3 +// CHECK: encoding: [0x0f,0x62,0x1d,0x45,0x00,0x00,0x00] + punpckldq 0x45,%mm3 + +// CHECK: punpckldq 32493, %mm3 +// CHECK: encoding: [0x0f,0x62,0x1d,0xed,0x7e,0x00,0x00] + punpckldq 0x7eed,%mm3 + +// CHECK: punpckldq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x62,0x1d,0xfe,0xca,0xbe,0xba] + punpckldq 0xbabecafe,%mm3 + +// CHECK: punpckldq 305419896, %mm3 +// CHECK: encoding: [0x0f,0x62,0x1d,0x78,0x56,0x34,0x12] + punpckldq 0x12345678,%mm3 + +// CHECK: punpckldq %mm3, %mm3 +// CHECK: encoding: [0x0f,0x62,0xdb] + punpckldq %mm3,%mm3 + +// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpckldq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckldq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0x2d,0x45,0x00,0x00,0x00] + punpckldq 0x45,%xmm5 + +// CHECK: punpckldq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0x2d,0xed,0x7e,0x00,0x00] + punpckldq 0x7eed,%xmm5 + +// CHECK: punpckldq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0x2d,0xfe,0xca,0xbe,0xba] + punpckldq 0xbabecafe,%xmm5 + +// CHECK: punpckldq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0x2d,0x78,0x56,0x34,0x12] + punpckldq 0x12345678,%xmm5 + +// CHECK: punpckldq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x62,0xed] + punpckldq %xmm5,%xmm5 + +// CHECK: pxor 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xef,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pxor 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pxor 69, %mm3 +// CHECK: encoding: [0x0f,0xef,0x1d,0x45,0x00,0x00,0x00] + pxor 0x45,%mm3 + +// CHECK: pxor 32493, %mm3 +// CHECK: encoding: [0x0f,0xef,0x1d,0xed,0x7e,0x00,0x00] + pxor 0x7eed,%mm3 + +// CHECK: pxor 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xef,0x1d,0xfe,0xca,0xbe,0xba] + pxor 0xbabecafe,%mm3 + +// CHECK: pxor 305419896, %mm3 +// CHECK: encoding: [0x0f,0xef,0x1d,0x78,0x56,0x34,0x12] + pxor 0x12345678,%mm3 + +// CHECK: pxor %mm3, %mm3 +// CHECK: encoding: [0x0f,0xef,0xdb] + pxor %mm3,%mm3 + +// CHECK: pxor 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0xac,0xcb,0xef,0xbe,0xad,0xde] + pxor 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pxor 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0x2d,0x45,0x00,0x00,0x00] + pxor 0x45,%xmm5 + +// CHECK: pxor 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0x2d,0xed,0x7e,0x00,0x00] + pxor 0x7eed,%xmm5 + +// CHECK: pxor 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0x2d,0xfe,0xca,0xbe,0xba] + pxor 0xbabecafe,%xmm5 + +// CHECK: pxor 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0x2d,0x78,0x56,0x34,0x12] + pxor 0x12345678,%xmm5 + +// CHECK: pxor %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xef,0xed] + pxor %xmm5,%xmm5 + +// CHECK: addps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde] + addps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addps 69, %xmm5 +// CHECK: encoding: [0x0f,0x58,0x2d,0x45,0x00,0x00,0x00] + addps 0x45,%xmm5 + +// CHECK: addps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x58,0x2d,0xed,0x7e,0x00,0x00] + addps 0x7eed,%xmm5 + +// CHECK: addps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x58,0x2d,0xfe,0xca,0xbe,0xba] + addps 0xbabecafe,%xmm5 + +// CHECK: addps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x58,0x2d,0x78,0x56,0x34,0x12] + addps 0x12345678,%xmm5 + +// CHECK: addps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x58,0xed] + addps %xmm5,%xmm5 + +// CHECK: addss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde] + addss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0x2d,0x45,0x00,0x00,0x00] + addss 0x45,%xmm5 + +// CHECK: addss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0x2d,0xed,0x7e,0x00,0x00] + addss 0x7eed,%xmm5 + +// CHECK: addss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0x2d,0xfe,0xca,0xbe,0xba] + addss 0xbabecafe,%xmm5 + +// CHECK: addss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0x2d,0x78,0x56,0x34,0x12] + addss 0x12345678,%xmm5 + +// CHECK: addss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x58,0xed] + addss %xmm5,%xmm5 + +// CHECK: andnps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x55,0xac,0xcb,0xef,0xbe,0xad,0xde] + andnps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andnps 69, %xmm5 +// CHECK: encoding: [0x0f,0x55,0x2d,0x45,0x00,0x00,0x00] + andnps 0x45,%xmm5 + +// CHECK: andnps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x55,0x2d,0xed,0x7e,0x00,0x00] + andnps 0x7eed,%xmm5 + +// CHECK: andnps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x55,0x2d,0xfe,0xca,0xbe,0xba] + andnps 0xbabecafe,%xmm5 + +// CHECK: andnps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x55,0x2d,0x78,0x56,0x34,0x12] + andnps 0x12345678,%xmm5 + +// CHECK: andnps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x55,0xed] + andnps %xmm5,%xmm5 + +// CHECK: andps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x54,0xac,0xcb,0xef,0xbe,0xad,0xde] + andps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andps 69, %xmm5 +// CHECK: encoding: [0x0f,0x54,0x2d,0x45,0x00,0x00,0x00] + andps 0x45,%xmm5 + +// CHECK: andps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x54,0x2d,0xed,0x7e,0x00,0x00] + andps 0x7eed,%xmm5 + +// CHECK: andps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x54,0x2d,0xfe,0xca,0xbe,0xba] + andps 0xbabecafe,%xmm5 + +// CHECK: andps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x54,0x2d,0x78,0x56,0x34,0x12] + andps 0x12345678,%xmm5 + +// CHECK: andps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x54,0xed] + andps %xmm5,%xmm5 + +// CHECK: comiss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x2f,0xac,0xcb,0xef,0xbe,0xad,0xde] + comiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: comiss 69, %xmm5 +// CHECK: encoding: [0x0f,0x2f,0x2d,0x45,0x00,0x00,0x00] + comiss 0x45,%xmm5 + +// CHECK: comiss 32493, %xmm5 +// CHECK: encoding: [0x0f,0x2f,0x2d,0xed,0x7e,0x00,0x00] + comiss 0x7eed,%xmm5 + +// CHECK: comiss 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x2f,0x2d,0xfe,0xca,0xbe,0xba] + comiss 0xbabecafe,%xmm5 + +// CHECK: comiss 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x2f,0x2d,0x78,0x56,0x34,0x12] + comiss 0x12345678,%xmm5 + +// CHECK: comiss %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x2f,0xed] + comiss %xmm5,%xmm5 + +// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2ps 69, %xmm5 +// CHECK: encoding: [0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00] + cvtpi2ps 0x45,%xmm5 + +// CHECK: cvtpi2ps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00] + cvtpi2ps 0x7eed,%xmm5 + +// CHECK: cvtpi2ps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba] + cvtpi2ps 0xbabecafe,%xmm5 + +// CHECK: cvtpi2ps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12] + cvtpi2ps 0x12345678,%xmm5 + +// CHECK: cvtpi2ps %mm3, %xmm5 +// CHECK: encoding: [0x0f,0x2a,0xeb] + cvtpi2ps %mm3,%xmm5 + +// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x2d,0x9c,0xcb,0xef,0xbe,0xad,0xde] + cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtps2pi 69, %mm3 +// CHECK: encoding: [0x0f,0x2d,0x1d,0x45,0x00,0x00,0x00] + cvtps2pi 0x45,%mm3 + +// CHECK: cvtps2pi 32493, %mm3 +// CHECK: encoding: [0x0f,0x2d,0x1d,0xed,0x7e,0x00,0x00] + cvtps2pi 0x7eed,%mm3 + +// CHECK: cvtps2pi 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x2d,0x1d,0xfe,0xca,0xbe,0xba] + cvtps2pi 0xbabecafe,%mm3 + +// CHECK: cvtps2pi 305419896, %mm3 +// CHECK: encoding: [0x0f,0x2d,0x1d,0x78,0x56,0x34,0x12] + cvtps2pi 0x12345678,%mm3 + +// CHECK: cvtps2pi %xmm5, %mm3 +// CHECK: encoding: [0x0f,0x2d,0xdd] + cvtps2pi %xmm5,%mm3 + +// CHECK: cvtsi2ss %ecx, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0xe9] + cvtsi2ss %ecx,%xmm5 + +// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsi2ss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00] + cvtsi2ss 0x45,%xmm5 + +// CHECK: cvtsi2ss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00] + cvtsi2ss 0x7eed,%xmm5 + +// CHECK: cvtsi2ss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba] + cvtsi2ss 0xbabecafe,%xmm5 + +// CHECK: cvtsi2ss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12] + cvtsi2ss 0x12345678,%xmm5 + +// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x2c,0x9c,0xcb,0xef,0xbe,0xad,0xde] + cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttps2pi 69, %mm3 +// CHECK: encoding: [0x0f,0x2c,0x1d,0x45,0x00,0x00,0x00] + cvttps2pi 0x45,%mm3 + +// CHECK: cvttps2pi 32493, %mm3 +// CHECK: encoding: [0x0f,0x2c,0x1d,0xed,0x7e,0x00,0x00] + cvttps2pi 0x7eed,%mm3 + +// CHECK: cvttps2pi 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x2c,0x1d,0xfe,0xca,0xbe,0xba] + cvttps2pi 0xbabecafe,%mm3 + +// CHECK: cvttps2pi 305419896, %mm3 +// CHECK: encoding: [0x0f,0x2c,0x1d,0x78,0x56,0x34,0x12] + cvttps2pi 0x12345678,%mm3 + +// CHECK: cvttps2pi %xmm5, %mm3 +// CHECK: encoding: [0x0f,0x2c,0xdd] + cvttps2pi %xmm5,%mm3 + +// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0x8c,0xcb,0xef,0xbe,0xad,0xde] + cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttss2si 69, %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0x0d,0x45,0x00,0x00,0x00] + cvttss2si 0x45,%ecx + +// CHECK: cvttss2si 32493, %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0x0d,0xed,0x7e,0x00,0x00] + cvttss2si 0x7eed,%ecx + +// CHECK: cvttss2si 3133065982, %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0x0d,0xfe,0xca,0xbe,0xba] + cvttss2si 0xbabecafe,%ecx + +// CHECK: cvttss2si 305419896, %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0x0d,0x78,0x56,0x34,0x12] + cvttss2si 0x12345678,%ecx + +// CHECK: cvttss2si %xmm5, %ecx +// CHECK: encoding: [0xf3,0x0f,0x2c,0xcd] + cvttss2si %xmm5,%ecx + +// CHECK: divps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde] + divps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divps 69, %xmm5 +// CHECK: encoding: [0x0f,0x5e,0x2d,0x45,0x00,0x00,0x00] + divps 0x45,%xmm5 + +// CHECK: divps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5e,0x2d,0xed,0x7e,0x00,0x00] + divps 0x7eed,%xmm5 + +// CHECK: divps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5e,0x2d,0xfe,0xca,0xbe,0xba] + divps 0xbabecafe,%xmm5 + +// CHECK: divps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5e,0x2d,0x78,0x56,0x34,0x12] + divps 0x12345678,%xmm5 + +// CHECK: divps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5e,0xed] + divps %xmm5,%xmm5 + +// CHECK: divss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde] + divss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0x2d,0x45,0x00,0x00,0x00] + divss 0x45,%xmm5 + +// CHECK: divss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0x2d,0xed,0x7e,0x00,0x00] + divss 0x7eed,%xmm5 + +// CHECK: divss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0x2d,0xfe,0xca,0xbe,0xba] + divss 0xbabecafe,%xmm5 + +// CHECK: divss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0x2d,0x78,0x56,0x34,0x12] + divss 0x12345678,%xmm5 + +// CHECK: divss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5e,0xed] + divss %xmm5,%xmm5 + +// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xae,0x94,0xcb,0xef,0xbe,0xad,0xde] + ldmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: ldmxcsr 32493 +// CHECK: encoding: [0x0f,0xae,0x15,0xed,0x7e,0x00,0x00] + ldmxcsr 0x7eed + +// CHECK: ldmxcsr 3133065982 +// CHECK: encoding: [0x0f,0xae,0x15,0xfe,0xca,0xbe,0xba] + ldmxcsr 0xbabecafe + +// CHECK: ldmxcsr 305419896 +// CHECK: encoding: [0x0f,0xae,0x15,0x78,0x56,0x34,0x12] + ldmxcsr 0x12345678 + +// CHECK: maskmovq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf7,0xdb] + maskmovq %mm3,%mm3 + +// CHECK: maxps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5f,0xac,0xcb,0xef,0xbe,0xad,0xde] + maxps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxps 69, %xmm5 +// CHECK: encoding: [0x0f,0x5f,0x2d,0x45,0x00,0x00,0x00] + maxps 0x45,%xmm5 + +// CHECK: maxps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5f,0x2d,0xed,0x7e,0x00,0x00] + maxps 0x7eed,%xmm5 + +// CHECK: maxps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5f,0x2d,0xfe,0xca,0xbe,0xba] + maxps 0xbabecafe,%xmm5 + +// CHECK: maxps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5f,0x2d,0x78,0x56,0x34,0x12] + maxps 0x12345678,%xmm5 + +// CHECK: maxps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5f,0xed] + maxps %xmm5,%xmm5 + +// CHECK: maxss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0xac,0xcb,0xef,0xbe,0xad,0xde] + maxss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0x2d,0x45,0x00,0x00,0x00] + maxss 0x45,%xmm5 + +// CHECK: maxss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0x2d,0xed,0x7e,0x00,0x00] + maxss 0x7eed,%xmm5 + +// CHECK: maxss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0x2d,0xfe,0xca,0xbe,0xba] + maxss 0xbabecafe,%xmm5 + +// CHECK: maxss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0x2d,0x78,0x56,0x34,0x12] + maxss 0x12345678,%xmm5 + +// CHECK: maxss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5f,0xed] + maxss %xmm5,%xmm5 + +// CHECK: minps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5d,0xac,0xcb,0xef,0xbe,0xad,0xde] + minps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minps 69, %xmm5 +// CHECK: encoding: [0x0f,0x5d,0x2d,0x45,0x00,0x00,0x00] + minps 0x45,%xmm5 + +// CHECK: minps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5d,0x2d,0xed,0x7e,0x00,0x00] + minps 0x7eed,%xmm5 + +// CHECK: minps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5d,0x2d,0xfe,0xca,0xbe,0xba] + minps 0xbabecafe,%xmm5 + +// CHECK: minps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5d,0x2d,0x78,0x56,0x34,0x12] + minps 0x12345678,%xmm5 + +// CHECK: minps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5d,0xed] + minps %xmm5,%xmm5 + +// CHECK: minss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0xac,0xcb,0xef,0xbe,0xad,0xde] + minss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0x2d,0x45,0x00,0x00,0x00] + minss 0x45,%xmm5 + +// CHECK: minss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0x2d,0xed,0x7e,0x00,0x00] + minss 0x7eed,%xmm5 + +// CHECK: minss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0x2d,0xfe,0xca,0xbe,0xba] + minss 0xbabecafe,%xmm5 + +// CHECK: minss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0x2d,0x78,0x56,0x34,0x12] + minss 0x12345678,%xmm5 + +// CHECK: minss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5d,0xed] + minss %xmm5,%xmm5 + +// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x28,0xac,0xcb,0xef,0xbe,0xad,0xde] + movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movaps 69, %xmm5 +// CHECK: encoding: [0x0f,0x28,0x2d,0x45,0x00,0x00,0x00] + movaps 0x45,%xmm5 + +// CHECK: movaps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x28,0x2d,0xed,0x7e,0x00,0x00] + movaps 0x7eed,%xmm5 + +// CHECK: movaps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x28,0x2d,0xfe,0xca,0xbe,0xba] + movaps 0xbabecafe,%xmm5 + +// CHECK: movaps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x28,0x2d,0x78,0x56,0x34,0x12] + movaps 0x12345678,%xmm5 + +// CHECK: movaps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x28,0xed] + movaps %xmm5,%xmm5 + +// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x29,0xac,0xcb,0xef,0xbe,0xad,0xde] + movaps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movaps %xmm5, 69 +// CHECK: encoding: [0x0f,0x29,0x2d,0x45,0x00,0x00,0x00] + movaps %xmm5,0x45 + +// CHECK: movaps %xmm5, 32493 +// CHECK: encoding: [0x0f,0x29,0x2d,0xed,0x7e,0x00,0x00] + movaps %xmm5,0x7eed + +// CHECK: movaps %xmm5, 3133065982 +// CHECK: encoding: [0x0f,0x29,0x2d,0xfe,0xca,0xbe,0xba] + movaps %xmm5,0xbabecafe + +// CHECK: movaps %xmm5, 305419896 +// CHECK: encoding: [0x0f,0x29,0x2d,0x78,0x56,0x34,0x12] + movaps %xmm5,0x12345678 + +// CHECK: movaps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x28,0xed] + movaps %xmm5,%xmm5 + +// CHECK: movhlps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x12,0xed] + movhlps %xmm5,%xmm5 + +// CHECK: movhps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x16,0xac,0xcb,0xef,0xbe,0xad,0xde] + movhps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movhps 69, %xmm5 +// CHECK: encoding: [0x0f,0x16,0x2d,0x45,0x00,0x00,0x00] + movhps 0x45,%xmm5 + +// CHECK: movhps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x16,0x2d,0xed,0x7e,0x00,0x00] + movhps 0x7eed,%xmm5 + +// CHECK: movhps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x16,0x2d,0xfe,0xca,0xbe,0xba] + movhps 0xbabecafe,%xmm5 + +// CHECK: movhps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x16,0x2d,0x78,0x56,0x34,0x12] + movhps 0x12345678,%xmm5 + +// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x17,0xac,0xcb,0xef,0xbe,0xad,0xde] + movhps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movhps %xmm5, 69 +// CHECK: encoding: [0x0f,0x17,0x2d,0x45,0x00,0x00,0x00] + movhps %xmm5,0x45 + +// CHECK: movhps %xmm5, 32493 +// CHECK: encoding: [0x0f,0x17,0x2d,0xed,0x7e,0x00,0x00] + movhps %xmm5,0x7eed + +// CHECK: movhps %xmm5, 3133065982 +// CHECK: encoding: [0x0f,0x17,0x2d,0xfe,0xca,0xbe,0xba] + movhps %xmm5,0xbabecafe + +// CHECK: movhps %xmm5, 305419896 +// CHECK: encoding: [0x0f,0x17,0x2d,0x78,0x56,0x34,0x12] + movhps %xmm5,0x12345678 + +// CHECK: movlhps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x16,0xed] + movlhps %xmm5,%xmm5 + +// CHECK: movlps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x12,0xac,0xcb,0xef,0xbe,0xad,0xde] + movlps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movlps 69, %xmm5 +// CHECK: encoding: [0x0f,0x12,0x2d,0x45,0x00,0x00,0x00] + movlps 0x45,%xmm5 + +// CHECK: movlps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x12,0x2d,0xed,0x7e,0x00,0x00] + movlps 0x7eed,%xmm5 + +// CHECK: movlps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x12,0x2d,0xfe,0xca,0xbe,0xba] + movlps 0xbabecafe,%xmm5 + +// CHECK: movlps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x12,0x2d,0x78,0x56,0x34,0x12] + movlps 0x12345678,%xmm5 + +// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x13,0xac,0xcb,0xef,0xbe,0xad,0xde] + movlps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlps %xmm5, 69 +// CHECK: encoding: [0x0f,0x13,0x2d,0x45,0x00,0x00,0x00] + movlps %xmm5,0x45 + +// CHECK: movlps %xmm5, 32493 +// CHECK: encoding: [0x0f,0x13,0x2d,0xed,0x7e,0x00,0x00] + movlps %xmm5,0x7eed + +// CHECK: movlps %xmm5, 3133065982 +// CHECK: encoding: [0x0f,0x13,0x2d,0xfe,0xca,0xbe,0xba] + movlps %xmm5,0xbabecafe + +// CHECK: movlps %xmm5, 305419896 +// CHECK: encoding: [0x0f,0x13,0x2d,0x78,0x56,0x34,0x12] + movlps %xmm5,0x12345678 + +// CHECK: movmskps %xmm5, %ecx +// CHECK: encoding: [0x0f,0x50,0xcd] + movmskps %xmm5,%ecx + +// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x2b,0xac,0xcb,0xef,0xbe,0xad,0xde] + movntps %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntps %xmm5, 69 +// CHECK: encoding: [0x0f,0x2b,0x2d,0x45,0x00,0x00,0x00] + movntps %xmm5,0x45 + +// CHECK: movntps %xmm5, 32493 +// CHECK: encoding: [0x0f,0x2b,0x2d,0xed,0x7e,0x00,0x00] + movntps %xmm5,0x7eed + +// CHECK: movntps %xmm5, 3133065982 +// CHECK: encoding: [0x0f,0x2b,0x2d,0xfe,0xca,0xbe,0xba] + movntps %xmm5,0xbabecafe + +// CHECK: movntps %xmm5, 305419896 +// CHECK: encoding: [0x0f,0x2b,0x2d,0x78,0x56,0x34,0x12] + movntps %xmm5,0x12345678 + +// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xe7,0x9c,0xcb,0xef,0xbe,0xad,0xde] + movntq %mm3,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntq %mm3, 69 +// CHECK: encoding: [0x0f,0xe7,0x1d,0x45,0x00,0x00,0x00] + movntq %mm3,0x45 + +// CHECK: movntq %mm3, 32493 +// CHECK: encoding: [0x0f,0xe7,0x1d,0xed,0x7e,0x00,0x00] + movntq %mm3,0x7eed + +// CHECK: movntq %mm3, 3133065982 +// CHECK: encoding: [0x0f,0xe7,0x1d,0xfe,0xca,0xbe,0xba] + movntq %mm3,0xbabecafe + +// CHECK: movntq %mm3, 305419896 +// CHECK: encoding: [0x0f,0xe7,0x1d,0x78,0x56,0x34,0x12] + movntq %mm3,0x12345678 + +// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0xe7,0xac,0xcb,0xef,0xbe,0xad,0xde] + movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntdq %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0xe7,0x2d,0x45,0x00,0x00,0x00] + movntdq %xmm5,0x45 + +// CHECK: movntdq %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0xe7,0x2d,0xed,0x7e,0x00,0x00] + movntdq %xmm5,0x7eed + +// CHECK: movntdq %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0xe7,0x2d,0xfe,0xca,0xbe,0xba] + movntdq %xmm5,0xbabecafe + +// CHECK: movntdq %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0xe7,0x2d,0x78,0x56,0x34,0x12] + movntdq %xmm5,0x12345678 + +// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0xac,0xcb,0xef,0xbe,0xad,0xde] + movss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0x2d,0x45,0x00,0x00,0x00] + movss 0x45,%xmm5 + +// CHECK: movss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0x2d,0xed,0x7e,0x00,0x00] + movss 0x7eed,%xmm5 + +// CHECK: movss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0x2d,0xfe,0xca,0xbe,0xba] + movss 0xbabecafe,%xmm5 + +// CHECK: movss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0x2d,0x78,0x56,0x34,0x12] + movss 0x12345678,%xmm5 + +// CHECK: movss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0xed] + movss %xmm5,%xmm5 + +// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf3,0x0f,0x11,0xac,0xcb,0xef,0xbe,0xad,0xde] + movss %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movss %xmm5, 69 +// CHECK: encoding: [0xf3,0x0f,0x11,0x2d,0x45,0x00,0x00,0x00] + movss %xmm5,0x45 + +// CHECK: movss %xmm5, 32493 +// CHECK: encoding: [0xf3,0x0f,0x11,0x2d,0xed,0x7e,0x00,0x00] + movss %xmm5,0x7eed + +// CHECK: movss %xmm5, 3133065982 +// CHECK: encoding: [0xf3,0x0f,0x11,0x2d,0xfe,0xca,0xbe,0xba] + movss %xmm5,0xbabecafe + +// CHECK: movss %xmm5, 305419896 +// CHECK: encoding: [0xf3,0x0f,0x11,0x2d,0x78,0x56,0x34,0x12] + movss %xmm5,0x12345678 + +// CHECK: movss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x10,0xed] + movss %xmm5,%xmm5 + +// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x10,0xac,0xcb,0xef,0xbe,0xad,0xde] + movups 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movups 69, %xmm5 +// CHECK: encoding: [0x0f,0x10,0x2d,0x45,0x00,0x00,0x00] + movups 0x45,%xmm5 + +// CHECK: movups 32493, %xmm5 +// CHECK: encoding: [0x0f,0x10,0x2d,0xed,0x7e,0x00,0x00] + movups 0x7eed,%xmm5 + +// CHECK: movups 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x10,0x2d,0xfe,0xca,0xbe,0xba] + movups 0xbabecafe,%xmm5 + +// CHECK: movups 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x10,0x2d,0x78,0x56,0x34,0x12] + movups 0x12345678,%xmm5 + +// CHECK: movups %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x10,0xed] + movups %xmm5,%xmm5 + +// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x11,0xac,0xcb,0xef,0xbe,0xad,0xde] + movups %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movups %xmm5, 69 +// CHECK: encoding: [0x0f,0x11,0x2d,0x45,0x00,0x00,0x00] + movups %xmm5,0x45 + +// CHECK: movups %xmm5, 32493 +// CHECK: encoding: [0x0f,0x11,0x2d,0xed,0x7e,0x00,0x00] + movups %xmm5,0x7eed + +// CHECK: movups %xmm5, 3133065982 +// CHECK: encoding: [0x0f,0x11,0x2d,0xfe,0xca,0xbe,0xba] + movups %xmm5,0xbabecafe + +// CHECK: movups %xmm5, 305419896 +// CHECK: encoding: [0x0f,0x11,0x2d,0x78,0x56,0x34,0x12] + movups %xmm5,0x12345678 + +// CHECK: movups %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x10,0xed] + movups %xmm5,%xmm5 + +// CHECK: mulps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde] + mulps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulps 69, %xmm5 +// CHECK: encoding: [0x0f,0x59,0x2d,0x45,0x00,0x00,0x00] + mulps 0x45,%xmm5 + +// CHECK: mulps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x59,0x2d,0xed,0x7e,0x00,0x00] + mulps 0x7eed,%xmm5 + +// CHECK: mulps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x59,0x2d,0xfe,0xca,0xbe,0xba] + mulps 0xbabecafe,%xmm5 + +// CHECK: mulps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x59,0x2d,0x78,0x56,0x34,0x12] + mulps 0x12345678,%xmm5 + +// CHECK: mulps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x59,0xed] + mulps %xmm5,%xmm5 + +// CHECK: mulss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde] + mulss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0x2d,0x45,0x00,0x00,0x00] + mulss 0x45,%xmm5 + +// CHECK: mulss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0x2d,0xed,0x7e,0x00,0x00] + mulss 0x7eed,%xmm5 + +// CHECK: mulss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0x2d,0xfe,0xca,0xbe,0xba] + mulss 0xbabecafe,%xmm5 + +// CHECK: mulss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0x2d,0x78,0x56,0x34,0x12] + mulss 0x12345678,%xmm5 + +// CHECK: mulss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x59,0xed] + mulss %xmm5,%xmm5 + +// CHECK: orps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x56,0xac,0xcb,0xef,0xbe,0xad,0xde] + orps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: orps 69, %xmm5 +// CHECK: encoding: [0x0f,0x56,0x2d,0x45,0x00,0x00,0x00] + orps 0x45,%xmm5 + +// CHECK: orps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x56,0x2d,0xed,0x7e,0x00,0x00] + orps 0x7eed,%xmm5 + +// CHECK: orps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x56,0x2d,0xfe,0xca,0xbe,0xba] + orps 0xbabecafe,%xmm5 + +// CHECK: orps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x56,0x2d,0x78,0x56,0x34,0x12] + orps 0x12345678,%xmm5 + +// CHECK: orps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x56,0xed] + orps %xmm5,%xmm5 + +// CHECK: pavgb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe0,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pavgb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pavgb 69, %mm3 +// CHECK: encoding: [0x0f,0xe0,0x1d,0x45,0x00,0x00,0x00] + pavgb 0x45,%mm3 + +// CHECK: pavgb 32493, %mm3 +// CHECK: encoding: [0x0f,0xe0,0x1d,0xed,0x7e,0x00,0x00] + pavgb 0x7eed,%mm3 + +// CHECK: pavgb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe0,0x1d,0xfe,0xca,0xbe,0xba] + pavgb 0xbabecafe,%mm3 + +// CHECK: pavgb 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe0,0x1d,0x78,0x56,0x34,0x12] + pavgb 0x12345678,%mm3 + +// CHECK: pavgb %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe0,0xdb] + pavgb %mm3,%mm3 + +// CHECK: pavgb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0xac,0xcb,0xef,0xbe,0xad,0xde] + pavgb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pavgb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0x2d,0x45,0x00,0x00,0x00] + pavgb 0x45,%xmm5 + +// CHECK: pavgb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0x2d,0xed,0x7e,0x00,0x00] + pavgb 0x7eed,%xmm5 + +// CHECK: pavgb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0x2d,0xfe,0xca,0xbe,0xba] + pavgb 0xbabecafe,%xmm5 + +// CHECK: pavgb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0x2d,0x78,0x56,0x34,0x12] + pavgb 0x12345678,%xmm5 + +// CHECK: pavgb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe0,0xed] + pavgb %xmm5,%xmm5 + +// CHECK: pavgw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe3,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pavgw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pavgw 69, %mm3 +// CHECK: encoding: [0x0f,0xe3,0x1d,0x45,0x00,0x00,0x00] + pavgw 0x45,%mm3 + +// CHECK: pavgw 32493, %mm3 +// CHECK: encoding: [0x0f,0xe3,0x1d,0xed,0x7e,0x00,0x00] + pavgw 0x7eed,%mm3 + +// CHECK: pavgw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe3,0x1d,0xfe,0xca,0xbe,0xba] + pavgw 0xbabecafe,%mm3 + +// CHECK: pavgw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe3,0x1d,0x78,0x56,0x34,0x12] + pavgw 0x12345678,%mm3 + +// CHECK: pavgw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe3,0xdb] + pavgw %mm3,%mm3 + +// CHECK: pavgw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0xac,0xcb,0xef,0xbe,0xad,0xde] + pavgw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pavgw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0x2d,0x45,0x00,0x00,0x00] + pavgw 0x45,%xmm5 + +// CHECK: pavgw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0x2d,0xed,0x7e,0x00,0x00] + pavgw 0x7eed,%xmm5 + +// CHECK: pavgw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0x2d,0xfe,0xca,0xbe,0xba] + pavgw 0xbabecafe,%xmm5 + +// CHECK: pavgw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0x2d,0x78,0x56,0x34,0x12] + pavgw 0x12345678,%xmm5 + +// CHECK: pavgw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe3,0xed] + pavgw %xmm5,%xmm5 + +// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xee,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmaxsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaxsw 69, %mm3 +// CHECK: encoding: [0x0f,0xee,0x1d,0x45,0x00,0x00,0x00] + pmaxsw 0x45,%mm3 + +// CHECK: pmaxsw 32493, %mm3 +// CHECK: encoding: [0x0f,0xee,0x1d,0xed,0x7e,0x00,0x00] + pmaxsw 0x7eed,%mm3 + +// CHECK: pmaxsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xee,0x1d,0xfe,0xca,0xbe,0xba] + pmaxsw 0xbabecafe,%mm3 + +// CHECK: pmaxsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xee,0x1d,0x78,0x56,0x34,0x12] + pmaxsw 0x12345678,%mm3 + +// CHECK: pmaxsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xee,0xdb] + pmaxsw %mm3,%mm3 + +// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0x2d,0x45,0x00,0x00,0x00] + pmaxsw 0x45,%xmm5 + +// CHECK: pmaxsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0x2d,0xed,0x7e,0x00,0x00] + pmaxsw 0x7eed,%xmm5 + +// CHECK: pmaxsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0x2d,0xfe,0xca,0xbe,0xba] + pmaxsw 0xbabecafe,%xmm5 + +// CHECK: pmaxsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0x2d,0x78,0x56,0x34,0x12] + pmaxsw 0x12345678,%xmm5 + +// CHECK: pmaxsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xee,0xed] + pmaxsw %xmm5,%xmm5 + +// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xde,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmaxub 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaxub 69, %mm3 +// CHECK: encoding: [0x0f,0xde,0x1d,0x45,0x00,0x00,0x00] + pmaxub 0x45,%mm3 + +// CHECK: pmaxub 32493, %mm3 +// CHECK: encoding: [0x0f,0xde,0x1d,0xed,0x7e,0x00,0x00] + pmaxub 0x7eed,%mm3 + +// CHECK: pmaxub 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xde,0x1d,0xfe,0xca,0xbe,0xba] + pmaxub 0xbabecafe,%mm3 + +// CHECK: pmaxub 305419896, %mm3 +// CHECK: encoding: [0x0f,0xde,0x1d,0x78,0x56,0x34,0x12] + pmaxub 0x12345678,%mm3 + +// CHECK: pmaxub %mm3, %mm3 +// CHECK: encoding: [0x0f,0xde,0xdb] + pmaxub %mm3,%mm3 + +// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxub 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxub 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0x2d,0x45,0x00,0x00,0x00] + pmaxub 0x45,%xmm5 + +// CHECK: pmaxub 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0x2d,0xed,0x7e,0x00,0x00] + pmaxub 0x7eed,%xmm5 + +// CHECK: pmaxub 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0x2d,0xfe,0xca,0xbe,0xba] + pmaxub 0xbabecafe,%xmm5 + +// CHECK: pmaxub 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0x2d,0x78,0x56,0x34,0x12] + pmaxub 0x12345678,%xmm5 + +// CHECK: pmaxub %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xde,0xed] + pmaxub %xmm5,%xmm5 + +// CHECK: pminsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xea,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pminsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pminsw 69, %mm3 +// CHECK: encoding: [0x0f,0xea,0x1d,0x45,0x00,0x00,0x00] + pminsw 0x45,%mm3 + +// CHECK: pminsw 32493, %mm3 +// CHECK: encoding: [0x0f,0xea,0x1d,0xed,0x7e,0x00,0x00] + pminsw 0x7eed,%mm3 + +// CHECK: pminsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xea,0x1d,0xfe,0xca,0xbe,0xba] + pminsw 0xbabecafe,%mm3 + +// CHECK: pminsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xea,0x1d,0x78,0x56,0x34,0x12] + pminsw 0x12345678,%mm3 + +// CHECK: pminsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xea,0xdb] + pminsw %mm3,%mm3 + +// CHECK: pminsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0x2d,0x45,0x00,0x00,0x00] + pminsw 0x45,%xmm5 + +// CHECK: pminsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0x2d,0xed,0x7e,0x00,0x00] + pminsw 0x7eed,%xmm5 + +// CHECK: pminsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0x2d,0xfe,0xca,0xbe,0xba] + pminsw 0xbabecafe,%xmm5 + +// CHECK: pminsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0x2d,0x78,0x56,0x34,0x12] + pminsw 0x12345678,%xmm5 + +// CHECK: pminsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xea,0xed] + pminsw %xmm5,%xmm5 + +// CHECK: pminub 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xda,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pminub 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pminub 69, %mm3 +// CHECK: encoding: [0x0f,0xda,0x1d,0x45,0x00,0x00,0x00] + pminub 0x45,%mm3 + +// CHECK: pminub 32493, %mm3 +// CHECK: encoding: [0x0f,0xda,0x1d,0xed,0x7e,0x00,0x00] + pminub 0x7eed,%mm3 + +// CHECK: pminub 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xda,0x1d,0xfe,0xca,0xbe,0xba] + pminub 0xbabecafe,%mm3 + +// CHECK: pminub 305419896, %mm3 +// CHECK: encoding: [0x0f,0xda,0x1d,0x78,0x56,0x34,0x12] + pminub 0x12345678,%mm3 + +// CHECK: pminub %mm3, %mm3 +// CHECK: encoding: [0x0f,0xda,0xdb] + pminub %mm3,%mm3 + +// CHECK: pminub 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminub 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminub 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0x2d,0x45,0x00,0x00,0x00] + pminub 0x45,%xmm5 + +// CHECK: pminub 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0x2d,0xed,0x7e,0x00,0x00] + pminub 0x7eed,%xmm5 + +// CHECK: pminub 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0x2d,0xfe,0xca,0xbe,0xba] + pminub 0xbabecafe,%xmm5 + +// CHECK: pminub 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0x2d,0x78,0x56,0x34,0x12] + pminub 0x12345678,%xmm5 + +// CHECK: pminub %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xda,0xed] + pminub %xmm5,%xmm5 + +// CHECK: pmovmskb %mm3, %ecx +// CHECK: encoding: [0x0f,0xd7,0xcb] + pmovmskb %mm3,%ecx + +// CHECK: pmovmskb %xmm5, %ecx +// CHECK: encoding: [0x66,0x0f,0xd7,0xcd] + pmovmskb %xmm5,%ecx + +// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xe4,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmulhuw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhuw 69, %mm3 +// CHECK: encoding: [0x0f,0xe4,0x1d,0x45,0x00,0x00,0x00] + pmulhuw 0x45,%mm3 + +// CHECK: pmulhuw 32493, %mm3 +// CHECK: encoding: [0x0f,0xe4,0x1d,0xed,0x7e,0x00,0x00] + pmulhuw 0x7eed,%mm3 + +// CHECK: pmulhuw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xe4,0x1d,0xfe,0xca,0xbe,0xba] + pmulhuw 0xbabecafe,%mm3 + +// CHECK: pmulhuw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xe4,0x1d,0x78,0x56,0x34,0x12] + pmulhuw 0x12345678,%mm3 + +// CHECK: pmulhuw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xe4,0xdb] + pmulhuw %mm3,%mm3 + +// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmulhuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhuw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0x2d,0x45,0x00,0x00,0x00] + pmulhuw 0x45,%xmm5 + +// CHECK: pmulhuw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0x2d,0xed,0x7e,0x00,0x00] + pmulhuw 0x7eed,%xmm5 + +// CHECK: pmulhuw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0x2d,0xfe,0xca,0xbe,0xba] + pmulhuw 0xbabecafe,%xmm5 + +// CHECK: pmulhuw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0x2d,0x78,0x56,0x34,0x12] + pmulhuw 0x12345678,%xmm5 + +// CHECK: pmulhuw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xe4,0xed] + pmulhuw %xmm5,%xmm5 + +// CHECK: prefetchnta 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x18,0x84,0xcb,0xef,0xbe,0xad,0xde] + prefetchnta 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetchnta 32493 +// CHECK: encoding: [0x0f,0x18,0x05,0xed,0x7e,0x00,0x00] + prefetchnta 0x7eed + +// CHECK: prefetchnta 3133065982 +// CHECK: encoding: [0x0f,0x18,0x05,0xfe,0xca,0xbe,0xba] + prefetchnta 0xbabecafe + +// CHECK: prefetchnta 305419896 +// CHECK: encoding: [0x0f,0x18,0x05,0x78,0x56,0x34,0x12] + prefetchnta 0x12345678 + +// CHECK: prefetcht0 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x18,0x8c,0xcb,0xef,0xbe,0xad,0xde] + prefetcht0 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht0 32493 +// CHECK: encoding: [0x0f,0x18,0x0d,0xed,0x7e,0x00,0x00] + prefetcht0 0x7eed + +// CHECK: prefetcht0 3133065982 +// CHECK: encoding: [0x0f,0x18,0x0d,0xfe,0xca,0xbe,0xba] + prefetcht0 0xbabecafe + +// CHECK: prefetcht0 305419896 +// CHECK: encoding: [0x0f,0x18,0x0d,0x78,0x56,0x34,0x12] + prefetcht0 0x12345678 + +// CHECK: prefetcht1 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x18,0x94,0xcb,0xef,0xbe,0xad,0xde] + prefetcht1 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht1 32493 +// CHECK: encoding: [0x0f,0x18,0x15,0xed,0x7e,0x00,0x00] + prefetcht1 0x7eed + +// CHECK: prefetcht1 3133065982 +// CHECK: encoding: [0x0f,0x18,0x15,0xfe,0xca,0xbe,0xba] + prefetcht1 0xbabecafe + +// CHECK: prefetcht1 305419896 +// CHECK: encoding: [0x0f,0x18,0x15,0x78,0x56,0x34,0x12] + prefetcht1 0x12345678 + +// CHECK: prefetcht2 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0x18,0x9c,0xcb,0xef,0xbe,0xad,0xde] + prefetcht2 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: prefetcht2 32493 +// CHECK: encoding: [0x0f,0x18,0x1d,0xed,0x7e,0x00,0x00] + prefetcht2 0x7eed + +// CHECK: prefetcht2 3133065982 +// CHECK: encoding: [0x0f,0x18,0x1d,0xfe,0xca,0xbe,0xba] + prefetcht2 0xbabecafe + +// CHECK: prefetcht2 305419896 +// CHECK: encoding: [0x0f,0x18,0x1d,0x78,0x56,0x34,0x12] + prefetcht2 0x12345678 + +// CHECK: psadbw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf6,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psadbw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psadbw 69, %mm3 +// CHECK: encoding: [0x0f,0xf6,0x1d,0x45,0x00,0x00,0x00] + psadbw 0x45,%mm3 + +// CHECK: psadbw 32493, %mm3 +// CHECK: encoding: [0x0f,0xf6,0x1d,0xed,0x7e,0x00,0x00] + psadbw 0x7eed,%mm3 + +// CHECK: psadbw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf6,0x1d,0xfe,0xca,0xbe,0xba] + psadbw 0xbabecafe,%mm3 + +// CHECK: psadbw 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf6,0x1d,0x78,0x56,0x34,0x12] + psadbw 0x12345678,%mm3 + +// CHECK: psadbw %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf6,0xdb] + psadbw %mm3,%mm3 + +// CHECK: psadbw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0xac,0xcb,0xef,0xbe,0xad,0xde] + psadbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psadbw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0x2d,0x45,0x00,0x00,0x00] + psadbw 0x45,%xmm5 + +// CHECK: psadbw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0x2d,0xed,0x7e,0x00,0x00] + psadbw 0x7eed,%xmm5 + +// CHECK: psadbw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0x2d,0xfe,0xca,0xbe,0xba] + psadbw 0xbabecafe,%xmm5 + +// CHECK: psadbw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0x2d,0x78,0x56,0x34,0x12] + psadbw 0x12345678,%xmm5 + +// CHECK: psadbw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf6,0xed] + psadbw %xmm5,%xmm5 + +// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x53,0xac,0xcb,0xef,0xbe,0xad,0xde] + rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpps 69, %xmm5 +// CHECK: encoding: [0x0f,0x53,0x2d,0x45,0x00,0x00,0x00] + rcpps 0x45,%xmm5 + +// CHECK: rcpps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x53,0x2d,0xed,0x7e,0x00,0x00] + rcpps 0x7eed,%xmm5 + +// CHECK: rcpps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x53,0x2d,0xfe,0xca,0xbe,0xba] + rcpps 0xbabecafe,%xmm5 + +// CHECK: rcpps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x53,0x2d,0x78,0x56,0x34,0x12] + rcpps 0x12345678,%xmm5 + +// CHECK: rcpps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x53,0xed] + rcpps %xmm5,%xmm5 + +// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0xac,0xcb,0xef,0xbe,0xad,0xde] + rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rcpss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0x2d,0x45,0x00,0x00,0x00] + rcpss 0x45,%xmm5 + +// CHECK: rcpss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0x2d,0xed,0x7e,0x00,0x00] + rcpss 0x7eed,%xmm5 + +// CHECK: rcpss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0x2d,0xfe,0xca,0xbe,0xba] + rcpss 0xbabecafe,%xmm5 + +// CHECK: rcpss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0x2d,0x78,0x56,0x34,0x12] + rcpss 0x12345678,%xmm5 + +// CHECK: rcpss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x53,0xed] + rcpss %xmm5,%xmm5 + +// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x52,0xac,0xcb,0xef,0xbe,0xad,0xde] + rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtps 69, %xmm5 +// CHECK: encoding: [0x0f,0x52,0x2d,0x45,0x00,0x00,0x00] + rsqrtps 0x45,%xmm5 + +// CHECK: rsqrtps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x52,0x2d,0xed,0x7e,0x00,0x00] + rsqrtps 0x7eed,%xmm5 + +// CHECK: rsqrtps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x52,0x2d,0xfe,0xca,0xbe,0xba] + rsqrtps 0xbabecafe,%xmm5 + +// CHECK: rsqrtps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x52,0x2d,0x78,0x56,0x34,0x12] + rsqrtps 0x12345678,%xmm5 + +// CHECK: rsqrtps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x52,0xed] + rsqrtps %xmm5,%xmm5 + +// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0xac,0xcb,0xef,0xbe,0xad,0xde] + rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: rsqrtss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0x2d,0x45,0x00,0x00,0x00] + rsqrtss 0x45,%xmm5 + +// CHECK: rsqrtss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0x2d,0xed,0x7e,0x00,0x00] + rsqrtss 0x7eed,%xmm5 + +// CHECK: rsqrtss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0x2d,0xfe,0xca,0xbe,0xba] + rsqrtss 0xbabecafe,%xmm5 + +// CHECK: rsqrtss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0x2d,0x78,0x56,0x34,0x12] + rsqrtss 0x12345678,%xmm5 + +// CHECK: rsqrtss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x52,0xed] + rsqrtss %xmm5,%xmm5 + +// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x51,0xac,0xcb,0xef,0xbe,0xad,0xde] + sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtps 69, %xmm5 +// CHECK: encoding: [0x0f,0x51,0x2d,0x45,0x00,0x00,0x00] + sqrtps 0x45,%xmm5 + +// CHECK: sqrtps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x51,0x2d,0xed,0x7e,0x00,0x00] + sqrtps 0x7eed,%xmm5 + +// CHECK: sqrtps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x51,0x2d,0xfe,0xca,0xbe,0xba] + sqrtps 0xbabecafe,%xmm5 + +// CHECK: sqrtps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x51,0x2d,0x78,0x56,0x34,0x12] + sqrtps 0x12345678,%xmm5 + +// CHECK: sqrtps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x51,0xed] + sqrtps %xmm5,%xmm5 + +// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0xac,0xcb,0xef,0xbe,0xad,0xde] + sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0x2d,0x45,0x00,0x00,0x00] + sqrtss 0x45,%xmm5 + +// CHECK: sqrtss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0x2d,0xed,0x7e,0x00,0x00] + sqrtss 0x7eed,%xmm5 + +// CHECK: sqrtss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0x2d,0xfe,0xca,0xbe,0xba] + sqrtss 0xbabecafe,%xmm5 + +// CHECK: sqrtss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0x2d,0x78,0x56,0x34,0x12] + sqrtss 0x12345678,%xmm5 + +// CHECK: sqrtss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x51,0xed] + sqrtss %xmm5,%xmm5 + +// CHECK: stmxcsr 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xae,0x9c,0xcb,0xef,0xbe,0xad,0xde] + stmxcsr 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: stmxcsr 32493 +// CHECK: encoding: [0x0f,0xae,0x1d,0xed,0x7e,0x00,0x00] + stmxcsr 0x7eed + +// CHECK: stmxcsr 3133065982 +// CHECK: encoding: [0x0f,0xae,0x1d,0xfe,0xca,0xbe,0xba] + stmxcsr 0xbabecafe + +// CHECK: stmxcsr 305419896 +// CHECK: encoding: [0x0f,0xae,0x1d,0x78,0x56,0x34,0x12] + stmxcsr 0x12345678 + +// CHECK: subps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde] + subps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subps 69, %xmm5 +// CHECK: encoding: [0x0f,0x5c,0x2d,0x45,0x00,0x00,0x00] + subps 0x45,%xmm5 + +// CHECK: subps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5c,0x2d,0xed,0x7e,0x00,0x00] + subps 0x7eed,%xmm5 + +// CHECK: subps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5c,0x2d,0xfe,0xca,0xbe,0xba] + subps 0xbabecafe,%xmm5 + +// CHECK: subps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5c,0x2d,0x78,0x56,0x34,0x12] + subps 0x12345678,%xmm5 + +// CHECK: subps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5c,0xed] + subps %xmm5,%xmm5 + +// CHECK: subss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde] + subss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subss 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0x2d,0x45,0x00,0x00,0x00] + subss 0x45,%xmm5 + +// CHECK: subss 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0x2d,0xed,0x7e,0x00,0x00] + subss 0x7eed,%xmm5 + +// CHECK: subss 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0x2d,0xfe,0xca,0xbe,0xba] + subss 0xbabecafe,%xmm5 + +// CHECK: subss 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0x2d,0x78,0x56,0x34,0x12] + subss 0x12345678,%xmm5 + +// CHECK: subss %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5c,0xed] + subss %xmm5,%xmm5 + +// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x2e,0xac,0xcb,0xef,0xbe,0xad,0xde] + ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomiss 69, %xmm5 +// CHECK: encoding: [0x0f,0x2e,0x2d,0x45,0x00,0x00,0x00] + ucomiss 0x45,%xmm5 + +// CHECK: ucomiss 32493, %xmm5 +// CHECK: encoding: [0x0f,0x2e,0x2d,0xed,0x7e,0x00,0x00] + ucomiss 0x7eed,%xmm5 + +// CHECK: ucomiss 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x2e,0x2d,0xfe,0xca,0xbe,0xba] + ucomiss 0xbabecafe,%xmm5 + +// CHECK: ucomiss 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x2e,0x2d,0x78,0x56,0x34,0x12] + ucomiss 0x12345678,%xmm5 + +// CHECK: ucomiss %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x2e,0xed] + ucomiss %xmm5,%xmm5 + +// CHECK: unpckhps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x15,0xac,0xcb,0xef,0xbe,0xad,0xde] + unpckhps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpckhps 69, %xmm5 +// CHECK: encoding: [0x0f,0x15,0x2d,0x45,0x00,0x00,0x00] + unpckhps 0x45,%xmm5 + +// CHECK: unpckhps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x15,0x2d,0xed,0x7e,0x00,0x00] + unpckhps 0x7eed,%xmm5 + +// CHECK: unpckhps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x15,0x2d,0xfe,0xca,0xbe,0xba] + unpckhps 0xbabecafe,%xmm5 + +// CHECK: unpckhps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x15,0x2d,0x78,0x56,0x34,0x12] + unpckhps 0x12345678,%xmm5 + +// CHECK: unpckhps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x15,0xed] + unpckhps %xmm5,%xmm5 + +// CHECK: unpcklps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x14,0xac,0xcb,0xef,0xbe,0xad,0xde] + unpcklps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpcklps 69, %xmm5 +// CHECK: encoding: [0x0f,0x14,0x2d,0x45,0x00,0x00,0x00] + unpcklps 0x45,%xmm5 + +// CHECK: unpcklps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x14,0x2d,0xed,0x7e,0x00,0x00] + unpcklps 0x7eed,%xmm5 + +// CHECK: unpcklps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x14,0x2d,0xfe,0xca,0xbe,0xba] + unpcklps 0xbabecafe,%xmm5 + +// CHECK: unpcklps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x14,0x2d,0x78,0x56,0x34,0x12] + unpcklps 0x12345678,%xmm5 + +// CHECK: unpcklps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x14,0xed] + unpcklps %xmm5,%xmm5 + +// CHECK: xorps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x57,0xac,0xcb,0xef,0xbe,0xad,0xde] + xorps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: xorps 69, %xmm5 +// CHECK: encoding: [0x0f,0x57,0x2d,0x45,0x00,0x00,0x00] + xorps 0x45,%xmm5 + +// CHECK: xorps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x57,0x2d,0xed,0x7e,0x00,0x00] + xorps 0x7eed,%xmm5 + +// CHECK: xorps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x57,0x2d,0xfe,0xca,0xbe,0xba] + xorps 0xbabecafe,%xmm5 + +// CHECK: xorps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x57,0x2d,0x78,0x56,0x34,0x12] + xorps 0x12345678,%xmm5 + +// CHECK: xorps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x57,0xed] + xorps %xmm5,%xmm5 + +// CHECK: addpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde] + addpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0x2d,0x45,0x00,0x00,0x00] + addpd 0x45,%xmm5 + +// CHECK: addpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0x2d,0xed,0x7e,0x00,0x00] + addpd 0x7eed,%xmm5 + +// CHECK: addpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0x2d,0xfe,0xca,0xbe,0xba] + addpd 0xbabecafe,%xmm5 + +// CHECK: addpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0x2d,0x78,0x56,0x34,0x12] + addpd 0x12345678,%xmm5 + +// CHECK: addpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x58,0xed] + addpd %xmm5,%xmm5 + +// CHECK: addsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde] + addsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0x2d,0x45,0x00,0x00,0x00] + addsd 0x45,%xmm5 + +// CHECK: addsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0x2d,0xed,0x7e,0x00,0x00] + addsd 0x7eed,%xmm5 + +// CHECK: addsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0x2d,0xfe,0xca,0xbe,0xba] + addsd 0xbabecafe,%xmm5 + +// CHECK: addsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0x2d,0x78,0x56,0x34,0x12] + addsd 0x12345678,%xmm5 + +// CHECK: addsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x58,0xed] + addsd %xmm5,%xmm5 + +// CHECK: andnpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0xac,0xcb,0xef,0xbe,0xad,0xde] + andnpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andnpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0x2d,0x45,0x00,0x00,0x00] + andnpd 0x45,%xmm5 + +// CHECK: andnpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0x2d,0xed,0x7e,0x00,0x00] + andnpd 0x7eed,%xmm5 + +// CHECK: andnpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0x2d,0xfe,0xca,0xbe,0xba] + andnpd 0xbabecafe,%xmm5 + +// CHECK: andnpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0x2d,0x78,0x56,0x34,0x12] + andnpd 0x12345678,%xmm5 + +// CHECK: andnpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x55,0xed] + andnpd %xmm5,%xmm5 + +// CHECK: andpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0xac,0xcb,0xef,0xbe,0xad,0xde] + andpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: andpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0x2d,0x45,0x00,0x00,0x00] + andpd 0x45,%xmm5 + +// CHECK: andpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0x2d,0xed,0x7e,0x00,0x00] + andpd 0x7eed,%xmm5 + +// CHECK: andpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0x2d,0xfe,0xca,0xbe,0xba] + andpd 0xbabecafe,%xmm5 + +// CHECK: andpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0x2d,0x78,0x56,0x34,0x12] + andpd 0x12345678,%xmm5 + +// CHECK: andpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x54,0xed] + andpd %xmm5,%xmm5 + +// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0xac,0xcb,0xef,0xbe,0xad,0xde] + comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: comisd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0x2d,0x45,0x00,0x00,0x00] + comisd 0x45,%xmm5 + +// CHECK: comisd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0x2d,0xed,0x7e,0x00,0x00] + comisd 0x7eed,%xmm5 + +// CHECK: comisd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0x2d,0xfe,0xca,0xbe,0xba] + comisd 0xbabecafe,%xmm5 + +// CHECK: comisd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0x2d,0x78,0x56,0x34,0x12] + comisd 0x12345678,%xmm5 + +// CHECK: comisd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2f,0xed] + comisd %xmm5,%xmm5 + +// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpi2pd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00] + cvtpi2pd 0x45,%xmm5 + +// CHECK: cvtpi2pd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00] + cvtpi2pd 0x7eed,%xmm5 + +// CHECK: cvtpi2pd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba] + cvtpi2pd 0xbabecafe,%xmm5 + +// CHECK: cvtpi2pd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12] + cvtpi2pd 0x12345678,%xmm5 + +// CHECK: cvtpi2pd %mm3, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2a,0xeb] + cvtpi2pd %mm3,%xmm5 + +// CHECK: cvtsi2sd %ecx, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0xe9] + cvtsi2sd %ecx,%xmm5 + +// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsi2sd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0x2d,0x45,0x00,0x00,0x00] + cvtsi2sd 0x45,%xmm5 + +// CHECK: cvtsi2sd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0x2d,0xed,0x7e,0x00,0x00] + cvtsi2sd 0x7eed,%xmm5 + +// CHECK: cvtsi2sd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0x2d,0xfe,0xca,0xbe,0xba] + cvtsi2sd 0xbabecafe,%xmm5 + +// CHECK: cvtsi2sd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x2a,0x2d,0x78,0x56,0x34,0x12] + cvtsi2sd 0x12345678,%xmm5 + +// CHECK: divpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde] + divpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0x2d,0x45,0x00,0x00,0x00] + divpd 0x45,%xmm5 + +// CHECK: divpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0x2d,0xed,0x7e,0x00,0x00] + divpd 0x7eed,%xmm5 + +// CHECK: divpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0x2d,0xfe,0xca,0xbe,0xba] + divpd 0xbabecafe,%xmm5 + +// CHECK: divpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0x2d,0x78,0x56,0x34,0x12] + divpd 0x12345678,%xmm5 + +// CHECK: divpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5e,0xed] + divpd %xmm5,%xmm5 + +// CHECK: divsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde] + divsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: divsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0x2d,0x45,0x00,0x00,0x00] + divsd 0x45,%xmm5 + +// CHECK: divsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0x2d,0xed,0x7e,0x00,0x00] + divsd 0x7eed,%xmm5 + +// CHECK: divsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0x2d,0xfe,0xca,0xbe,0xba] + divsd 0xbabecafe,%xmm5 + +// CHECK: divsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0x2d,0x78,0x56,0x34,0x12] + divsd 0x12345678,%xmm5 + +// CHECK: divsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5e,0xed] + divsd %xmm5,%xmm5 + +// CHECK: maxpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0xac,0xcb,0xef,0xbe,0xad,0xde] + maxpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0x2d,0x45,0x00,0x00,0x00] + maxpd 0x45,%xmm5 + +// CHECK: maxpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0x2d,0xed,0x7e,0x00,0x00] + maxpd 0x7eed,%xmm5 + +// CHECK: maxpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0x2d,0xfe,0xca,0xbe,0xba] + maxpd 0xbabecafe,%xmm5 + +// CHECK: maxpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0x2d,0x78,0x56,0x34,0x12] + maxpd 0x12345678,%xmm5 + +// CHECK: maxpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5f,0xed] + maxpd %xmm5,%xmm5 + +// CHECK: maxsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0xac,0xcb,0xef,0xbe,0xad,0xde] + maxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: maxsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0x2d,0x45,0x00,0x00,0x00] + maxsd 0x45,%xmm5 + +// CHECK: maxsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0x2d,0xed,0x7e,0x00,0x00] + maxsd 0x7eed,%xmm5 + +// CHECK: maxsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0x2d,0xfe,0xca,0xbe,0xba] + maxsd 0xbabecafe,%xmm5 + +// CHECK: maxsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0x2d,0x78,0x56,0x34,0x12] + maxsd 0x12345678,%xmm5 + +// CHECK: maxsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5f,0xed] + maxsd %xmm5,%xmm5 + +// CHECK: minpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0xac,0xcb,0xef,0xbe,0xad,0xde] + minpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0x2d,0x45,0x00,0x00,0x00] + minpd 0x45,%xmm5 + +// CHECK: minpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0x2d,0xed,0x7e,0x00,0x00] + minpd 0x7eed,%xmm5 + +// CHECK: minpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0x2d,0xfe,0xca,0xbe,0xba] + minpd 0xbabecafe,%xmm5 + +// CHECK: minpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0x2d,0x78,0x56,0x34,0x12] + minpd 0x12345678,%xmm5 + +// CHECK: minpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5d,0xed] + minpd %xmm5,%xmm5 + +// CHECK: minsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0xac,0xcb,0xef,0xbe,0xad,0xde] + minsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: minsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0x2d,0x45,0x00,0x00,0x00] + minsd 0x45,%xmm5 + +// CHECK: minsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0x2d,0xed,0x7e,0x00,0x00] + minsd 0x7eed,%xmm5 + +// CHECK: minsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0x2d,0xfe,0xca,0xbe,0xba] + minsd 0xbabecafe,%xmm5 + +// CHECK: minsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0x2d,0x78,0x56,0x34,0x12] + minsd 0x12345678,%xmm5 + +// CHECK: minsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5d,0xed] + minsd %xmm5,%xmm5 + +// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0xac,0xcb,0xef,0xbe,0xad,0xde] + movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movapd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0x2d,0x45,0x00,0x00,0x00] + movapd 0x45,%xmm5 + +// CHECK: movapd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0x2d,0xed,0x7e,0x00,0x00] + movapd 0x7eed,%xmm5 + +// CHECK: movapd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0x2d,0xfe,0xca,0xbe,0xba] + movapd 0xbabecafe,%xmm5 + +// CHECK: movapd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0x2d,0x78,0x56,0x34,0x12] + movapd 0x12345678,%xmm5 + +// CHECK: movapd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0xed] + movapd %xmm5,%xmm5 + +// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x29,0xac,0xcb,0xef,0xbe,0xad,0xde] + movapd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movapd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x29,0x2d,0x45,0x00,0x00,0x00] + movapd %xmm5,0x45 + +// CHECK: movapd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x29,0x2d,0xed,0x7e,0x00,0x00] + movapd %xmm5,0x7eed + +// CHECK: movapd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x29,0x2d,0xfe,0xca,0xbe,0xba] + movapd %xmm5,0xbabecafe + +// CHECK: movapd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x29,0x2d,0x78,0x56,0x34,0x12] + movapd %xmm5,0x12345678 + +// CHECK: movapd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x28,0xed] + movapd %xmm5,%xmm5 + +// CHECK: movhpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x16,0xac,0xcb,0xef,0xbe,0xad,0xde] + movhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movhpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x16,0x2d,0x45,0x00,0x00,0x00] + movhpd 0x45,%xmm5 + +// CHECK: movhpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x16,0x2d,0xed,0x7e,0x00,0x00] + movhpd 0x7eed,%xmm5 + +// CHECK: movhpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x16,0x2d,0xfe,0xca,0xbe,0xba] + movhpd 0xbabecafe,%xmm5 + +// CHECK: movhpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x16,0x2d,0x78,0x56,0x34,0x12] + movhpd 0x12345678,%xmm5 + +// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x17,0xac,0xcb,0xef,0xbe,0xad,0xde] + movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movhpd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x17,0x2d,0x45,0x00,0x00,0x00] + movhpd %xmm5,0x45 + +// CHECK: movhpd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x17,0x2d,0xed,0x7e,0x00,0x00] + movhpd %xmm5,0x7eed + +// CHECK: movhpd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x17,0x2d,0xfe,0xca,0xbe,0xba] + movhpd %xmm5,0xbabecafe + +// CHECK: movhpd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x17,0x2d,0x78,0x56,0x34,0x12] + movhpd %xmm5,0x12345678 + +// CHECK: movlpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x12,0xac,0xcb,0xef,0xbe,0xad,0xde] + movlpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movlpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x12,0x2d,0x45,0x00,0x00,0x00] + movlpd 0x45,%xmm5 + +// CHECK: movlpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x12,0x2d,0xed,0x7e,0x00,0x00] + movlpd 0x7eed,%xmm5 + +// CHECK: movlpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x12,0x2d,0xfe,0xca,0xbe,0xba] + movlpd 0xbabecafe,%xmm5 + +// CHECK: movlpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x12,0x2d,0x78,0x56,0x34,0x12] + movlpd 0x12345678,%xmm5 + +// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x13,0xac,0xcb,0xef,0xbe,0xad,0xde] + movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movlpd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x13,0x2d,0x45,0x00,0x00,0x00] + movlpd %xmm5,0x45 + +// CHECK: movlpd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x13,0x2d,0xed,0x7e,0x00,0x00] + movlpd %xmm5,0x7eed + +// CHECK: movlpd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x13,0x2d,0xfe,0xca,0xbe,0xba] + movlpd %xmm5,0xbabecafe + +// CHECK: movlpd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x13,0x2d,0x78,0x56,0x34,0x12] + movlpd %xmm5,0x12345678 + +// CHECK: movmskpd %xmm5, %ecx +// CHECK: encoding: [0x66,0x0f,0x50,0xcd] + movmskpd %xmm5,%ecx + +// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x2b,0xac,0xcb,0xef,0xbe,0xad,0xde] + movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movntpd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x2b,0x2d,0x45,0x00,0x00,0x00] + movntpd %xmm5,0x45 + +// CHECK: movntpd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x2b,0x2d,0xed,0x7e,0x00,0x00] + movntpd %xmm5,0x7eed + +// CHECK: movntpd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x2b,0x2d,0xfe,0xca,0xbe,0xba] + movntpd %xmm5,0xbabecafe + +// CHECK: movntpd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x2b,0x2d,0x78,0x56,0x34,0x12] + movntpd %xmm5,0x12345678 + +// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0xac,0xcb,0xef,0xbe,0xad,0xde] + movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0x2d,0x45,0x00,0x00,0x00] + movsd 0x45,%xmm5 + +// CHECK: movsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0x2d,0xed,0x7e,0x00,0x00] + movsd 0x7eed,%xmm5 + +// CHECK: movsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0x2d,0xfe,0xca,0xbe,0xba] + movsd 0xbabecafe,%xmm5 + +// CHECK: movsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0x2d,0x78,0x56,0x34,0x12] + movsd 0x12345678,%xmm5 + +// CHECK: movsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0xed] + movsd %xmm5,%xmm5 + +// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf2,0x0f,0x11,0xac,0xcb,0xef,0xbe,0xad,0xde] + movsd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movsd %xmm5, 69 +// CHECK: encoding: [0xf2,0x0f,0x11,0x2d,0x45,0x00,0x00,0x00] + movsd %xmm5,0x45 + +// CHECK: movsd %xmm5, 32493 +// CHECK: encoding: [0xf2,0x0f,0x11,0x2d,0xed,0x7e,0x00,0x00] + movsd %xmm5,0x7eed + +// CHECK: movsd %xmm5, 3133065982 +// CHECK: encoding: [0xf2,0x0f,0x11,0x2d,0xfe,0xca,0xbe,0xba] + movsd %xmm5,0xbabecafe + +// CHECK: movsd %xmm5, 305419896 +// CHECK: encoding: [0xf2,0x0f,0x11,0x2d,0x78,0x56,0x34,0x12] + movsd %xmm5,0x12345678 + +// CHECK: movsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x10,0xed] + movsd %xmm5,%xmm5 + +// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0xac,0xcb,0xef,0xbe,0xad,0xde] + movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movupd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0x2d,0x45,0x00,0x00,0x00] + movupd 0x45,%xmm5 + +// CHECK: movupd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0x2d,0xed,0x7e,0x00,0x00] + movupd 0x7eed,%xmm5 + +// CHECK: movupd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0x2d,0xfe,0xca,0xbe,0xba] + movupd 0xbabecafe,%xmm5 + +// CHECK: movupd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0x2d,0x78,0x56,0x34,0x12] + movupd 0x12345678,%xmm5 + +// CHECK: movupd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0xed] + movupd %xmm5,%xmm5 + +// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x11,0xac,0xcb,0xef,0xbe,0xad,0xde] + movupd %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movupd %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x11,0x2d,0x45,0x00,0x00,0x00] + movupd %xmm5,0x45 + +// CHECK: movupd %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x11,0x2d,0xed,0x7e,0x00,0x00] + movupd %xmm5,0x7eed + +// CHECK: movupd %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x11,0x2d,0xfe,0xca,0xbe,0xba] + movupd %xmm5,0xbabecafe + +// CHECK: movupd %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x11,0x2d,0x78,0x56,0x34,0x12] + movupd %xmm5,0x12345678 + +// CHECK: movupd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x10,0xed] + movupd %xmm5,%xmm5 + +// CHECK: mulpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde] + mulpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0x2d,0x45,0x00,0x00,0x00] + mulpd 0x45,%xmm5 + +// CHECK: mulpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0x2d,0xed,0x7e,0x00,0x00] + mulpd 0x7eed,%xmm5 + +// CHECK: mulpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0x2d,0xfe,0xca,0xbe,0xba] + mulpd 0xbabecafe,%xmm5 + +// CHECK: mulpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0x2d,0x78,0x56,0x34,0x12] + mulpd 0x12345678,%xmm5 + +// CHECK: mulpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x59,0xed] + mulpd %xmm5,%xmm5 + +// CHECK: mulsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde] + mulsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: mulsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0x2d,0x45,0x00,0x00,0x00] + mulsd 0x45,%xmm5 + +// CHECK: mulsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0x2d,0xed,0x7e,0x00,0x00] + mulsd 0x7eed,%xmm5 + +// CHECK: mulsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0x2d,0xfe,0xca,0xbe,0xba] + mulsd 0xbabecafe,%xmm5 + +// CHECK: mulsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0x2d,0x78,0x56,0x34,0x12] + mulsd 0x12345678,%xmm5 + +// CHECK: mulsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x59,0xed] + mulsd %xmm5,%xmm5 + +// CHECK: orpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0xac,0xcb,0xef,0xbe,0xad,0xde] + orpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: orpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0x2d,0x45,0x00,0x00,0x00] + orpd 0x45,%xmm5 + +// CHECK: orpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0x2d,0xed,0x7e,0x00,0x00] + orpd 0x7eed,%xmm5 + +// CHECK: orpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0x2d,0xfe,0xca,0xbe,0xba] + orpd 0xbabecafe,%xmm5 + +// CHECK: orpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0x2d,0x78,0x56,0x34,0x12] + orpd 0x12345678,%xmm5 + +// CHECK: orpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x56,0xed] + orpd %xmm5,%xmm5 + +// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0xac,0xcb,0xef,0xbe,0xad,0xde] + sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0x2d,0x45,0x00,0x00,0x00] + sqrtpd 0x45,%xmm5 + +// CHECK: sqrtpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0x2d,0xed,0x7e,0x00,0x00] + sqrtpd 0x7eed,%xmm5 + +// CHECK: sqrtpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0x2d,0xfe,0xca,0xbe,0xba] + sqrtpd 0xbabecafe,%xmm5 + +// CHECK: sqrtpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0x2d,0x78,0x56,0x34,0x12] + sqrtpd 0x12345678,%xmm5 + +// CHECK: sqrtpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x51,0xed] + sqrtpd %xmm5,%xmm5 + +// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0xac,0xcb,0xef,0xbe,0xad,0xde] + sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: sqrtsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0x2d,0x45,0x00,0x00,0x00] + sqrtsd 0x45,%xmm5 + +// CHECK: sqrtsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0x2d,0xed,0x7e,0x00,0x00] + sqrtsd 0x7eed,%xmm5 + +// CHECK: sqrtsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0x2d,0xfe,0xca,0xbe,0xba] + sqrtsd 0xbabecafe,%xmm5 + +// CHECK: sqrtsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0x2d,0x78,0x56,0x34,0x12] + sqrtsd 0x12345678,%xmm5 + +// CHECK: sqrtsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x51,0xed] + sqrtsd %xmm5,%xmm5 + +// CHECK: subpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde] + subpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0x2d,0x45,0x00,0x00,0x00] + subpd 0x45,%xmm5 + +// CHECK: subpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0x2d,0xed,0x7e,0x00,0x00] + subpd 0x7eed,%xmm5 + +// CHECK: subpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0x2d,0xfe,0xca,0xbe,0xba] + subpd 0xbabecafe,%xmm5 + +// CHECK: subpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0x2d,0x78,0x56,0x34,0x12] + subpd 0x12345678,%xmm5 + +// CHECK: subpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5c,0xed] + subpd %xmm5,%xmm5 + +// CHECK: subsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde] + subsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: subsd 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0x2d,0x45,0x00,0x00,0x00] + subsd 0x45,%xmm5 + +// CHECK: subsd 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0x2d,0xed,0x7e,0x00,0x00] + subsd 0x7eed,%xmm5 + +// CHECK: subsd 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0x2d,0xfe,0xca,0xbe,0xba] + subsd 0xbabecafe,%xmm5 + +// CHECK: subsd 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0x2d,0x78,0x56,0x34,0x12] + subsd 0x12345678,%xmm5 + +// CHECK: subsd %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5c,0xed] + subsd %xmm5,%xmm5 + +// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0xac,0xcb,0xef,0xbe,0xad,0xde] + ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ucomisd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0x2d,0x45,0x00,0x00,0x00] + ucomisd 0x45,%xmm5 + +// CHECK: ucomisd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0x2d,0xed,0x7e,0x00,0x00] + ucomisd 0x7eed,%xmm5 + +// CHECK: ucomisd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0x2d,0xfe,0xca,0xbe,0xba] + ucomisd 0xbabecafe,%xmm5 + +// CHECK: ucomisd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0x2d,0x78,0x56,0x34,0x12] + ucomisd 0x12345678,%xmm5 + +// CHECK: ucomisd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x2e,0xed] + ucomisd %xmm5,%xmm5 + +// CHECK: unpckhpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0xac,0xcb,0xef,0xbe,0xad,0xde] + unpckhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpckhpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0x2d,0x45,0x00,0x00,0x00] + unpckhpd 0x45,%xmm5 + +// CHECK: unpckhpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0x2d,0xed,0x7e,0x00,0x00] + unpckhpd 0x7eed,%xmm5 + +// CHECK: unpckhpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0x2d,0xfe,0xca,0xbe,0xba] + unpckhpd 0xbabecafe,%xmm5 + +// CHECK: unpckhpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0x2d,0x78,0x56,0x34,0x12] + unpckhpd 0x12345678,%xmm5 + +// CHECK: unpckhpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x15,0xed] + unpckhpd %xmm5,%xmm5 + +// CHECK: unpcklpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0xac,0xcb,0xef,0xbe,0xad,0xde] + unpcklpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: unpcklpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0x2d,0x45,0x00,0x00,0x00] + unpcklpd 0x45,%xmm5 + +// CHECK: unpcklpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0x2d,0xed,0x7e,0x00,0x00] + unpcklpd 0x7eed,%xmm5 + +// CHECK: unpcklpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0x2d,0xfe,0xca,0xbe,0xba] + unpcklpd 0xbabecafe,%xmm5 + +// CHECK: unpcklpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0x2d,0x78,0x56,0x34,0x12] + unpcklpd 0x12345678,%xmm5 + +// CHECK: unpcklpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x14,0xed] + unpcklpd %xmm5,%xmm5 + +// CHECK: xorpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0xac,0xcb,0xef,0xbe,0xad,0xde] + xorpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: xorpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0x2d,0x45,0x00,0x00,0x00] + xorpd 0x45,%xmm5 + +// CHECK: xorpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0x2d,0xed,0x7e,0x00,0x00] + xorpd 0x7eed,%xmm5 + +// CHECK: xorpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0x2d,0xfe,0xca,0xbe,0xba] + xorpd 0xbabecafe,%xmm5 + +// CHECK: xorpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0x2d,0x78,0x56,0x34,0x12] + xorpd 0x12345678,%xmm5 + +// CHECK: xorpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x57,0xed] + xorpd %xmm5,%xmm5 + +// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2pd 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0x2d,0x45,0x00,0x00,0x00] + cvtdq2pd 0x45,%xmm5 + +// CHECK: cvtdq2pd 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0x2d,0xed,0x7e,0x00,0x00] + cvtdq2pd 0x7eed,%xmm5 + +// CHECK: cvtdq2pd 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0x2d,0xfe,0xca,0xbe,0xba] + cvtdq2pd 0xbabecafe,%xmm5 + +// CHECK: cvtdq2pd 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0x2d,0x78,0x56,0x34,0x12] + cvtdq2pd 0x12345678,%xmm5 + +// CHECK: cvtdq2pd %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xe6,0xed] + cvtdq2pd %xmm5,%xmm5 + +// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpd2dq 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0x2d,0x45,0x00,0x00,0x00] + cvtpd2dq 0x45,%xmm5 + +// CHECK: cvtpd2dq 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0x2d,0xed,0x7e,0x00,0x00] + cvtpd2dq 0x7eed,%xmm5 + +// CHECK: cvtpd2dq 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0x2d,0xfe,0xca,0xbe,0xba] + cvtpd2dq 0xbabecafe,%xmm5 + +// CHECK: cvtpd2dq 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0x2d,0x78,0x56,0x34,0x12] + cvtpd2dq 0x12345678,%xmm5 + +// CHECK: cvtpd2dq %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xe6,0xed] + cvtpd2dq %xmm5,%xmm5 + +// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5b,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtdq2ps 69, %xmm5 +// CHECK: encoding: [0x0f,0x5b,0x2d,0x45,0x00,0x00,0x00] + cvtdq2ps 0x45,%xmm5 + +// CHECK: cvtdq2ps 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5b,0x2d,0xed,0x7e,0x00,0x00] + cvtdq2ps 0x7eed,%xmm5 + +// CHECK: cvtdq2ps 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5b,0x2d,0xfe,0xca,0xbe,0xba] + cvtdq2ps 0xbabecafe,%xmm5 + +// CHECK: cvtdq2ps 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5b,0x2d,0x78,0x56,0x34,0x12] + cvtdq2ps 0x12345678,%xmm5 + +// CHECK: cvtdq2ps %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5b,0xed] + cvtdq2ps %xmm5,%xmm5 + +// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0x9c,0xcb,0xef,0xbe,0xad,0xde] + cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvtpd2pi 69, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0x1d,0x45,0x00,0x00,0x00] + cvtpd2pi 0x45,%mm3 + +// CHECK: cvtpd2pi 32493, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0x1d,0xed,0x7e,0x00,0x00] + cvtpd2pi 0x7eed,%mm3 + +// CHECK: cvtpd2pi 3133065982, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0x1d,0xfe,0xca,0xbe,0xba] + cvtpd2pi 0xbabecafe,%mm3 + +// CHECK: cvtpd2pi 305419896, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0x1d,0x78,0x56,0x34,0x12] + cvtpd2pi 0x12345678,%mm3 + +// CHECK: cvtpd2pi %xmm5, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2d,0xdd] + cvtpd2pi %xmm5,%mm3 + +// CHECK: cvtpd2ps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtpd2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtpd2ps 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0x2d,0x45,0x00,0x00,0x00] + cvtpd2ps 0x45,%xmm5 + +// CHECK: cvtpd2ps 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0x2d,0xed,0x7e,0x00,0x00] + cvtpd2ps 0x7eed,%xmm5 + +// CHECK: cvtpd2ps 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0x2d,0xfe,0xca,0xbe,0xba] + cvtpd2ps 0xbabecafe,%xmm5 + +// CHECK: cvtpd2ps 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0x2d,0x78,0x56,0x34,0x12] + cvtpd2ps 0x12345678,%xmm5 + +// CHECK: cvtpd2ps %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5a,0xed] + cvtpd2ps %xmm5,%xmm5 + +// CHECK: cvtps2pd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x0f,0x5a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtps2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtps2pd 69, %xmm5 +// CHECK: encoding: [0x0f,0x5a,0x2d,0x45,0x00,0x00,0x00] + cvtps2pd 0x45,%xmm5 + +// CHECK: cvtps2pd 32493, %xmm5 +// CHECK: encoding: [0x0f,0x5a,0x2d,0xed,0x7e,0x00,0x00] + cvtps2pd 0x7eed,%xmm5 + +// CHECK: cvtps2pd 3133065982, %xmm5 +// CHECK: encoding: [0x0f,0x5a,0x2d,0xfe,0xca,0xbe,0xba] + cvtps2pd 0xbabecafe,%xmm5 + +// CHECK: cvtps2pd 305419896, %xmm5 +// CHECK: encoding: [0x0f,0x5a,0x2d,0x78,0x56,0x34,0x12] + cvtps2pd 0x12345678,%xmm5 + +// CHECK: cvtps2pd %xmm5, %xmm5 +// CHECK: encoding: [0x0f,0x5a,0xed] + cvtps2pd %xmm5,%xmm5 + +// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtps2dq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0x2d,0x45,0x00,0x00,0x00] + cvtps2dq 0x45,%xmm5 + +// CHECK: cvtps2dq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0x2d,0xed,0x7e,0x00,0x00] + cvtps2dq 0x7eed,%xmm5 + +// CHECK: cvtps2dq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0x2d,0xfe,0xca,0xbe,0xba] + cvtps2dq 0xbabecafe,%xmm5 + +// CHECK: cvtps2dq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0x2d,0x78,0x56,0x34,0x12] + cvtps2dq 0x12345678,%xmm5 + +// CHECK: cvtps2dq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x5b,0xed] + cvtps2dq %xmm5,%xmm5 + +// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtsd2ss 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0x2d,0x45,0x00,0x00,0x00] + cvtsd2ss 0x45,%xmm5 + +// CHECK: cvtsd2ss 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0x2d,0xed,0x7e,0x00,0x00] + cvtsd2ss 0x7eed,%xmm5 + +// CHECK: cvtsd2ss 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0x2d,0xfe,0xca,0xbe,0xba] + cvtsd2ss 0xbabecafe,%xmm5 + +// CHECK: cvtsd2ss 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0x2d,0x78,0x56,0x34,0x12] + cvtsd2ss 0x12345678,%xmm5 + +// CHECK: cvtsd2ss %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x5a,0xed] + cvtsd2ss %xmm5,%xmm5 + +// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvtss2sd 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0x2d,0x45,0x00,0x00,0x00] + cvtss2sd 0x45,%xmm5 + +// CHECK: cvtss2sd 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0x2d,0xed,0x7e,0x00,0x00] + cvtss2sd 0x7eed,%xmm5 + +// CHECK: cvtss2sd 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0x2d,0xfe,0xca,0xbe,0xba] + cvtss2sd 0xbabecafe,%xmm5 + +// CHECK: cvtss2sd 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0x2d,0x78,0x56,0x34,0x12] + cvtss2sd 0x12345678,%xmm5 + +// CHECK: cvtss2sd %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5a,0xed] + cvtss2sd %xmm5,%xmm5 + +// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0x9c,0xcb,0xef,0xbe,0xad,0xde] + cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: cvttpd2pi 69, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0x1d,0x45,0x00,0x00,0x00] + cvttpd2pi 0x45,%mm3 + +// CHECK: cvttpd2pi 32493, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0x1d,0xed,0x7e,0x00,0x00] + cvttpd2pi 0x7eed,%mm3 + +// CHECK: cvttpd2pi 3133065982, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0x1d,0xfe,0xca,0xbe,0xba] + cvttpd2pi 0xbabecafe,%mm3 + +// CHECK: cvttpd2pi 305419896, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0x1d,0x78,0x56,0x34,0x12] + cvttpd2pi 0x12345678,%mm3 + +// CHECK: cvttpd2pi %xmm5, %mm3 +// CHECK: encoding: [0x66,0x0f,0x2c,0xdd] + cvttpd2pi %xmm5,%mm3 + +// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0x8c,0xcb,0xef,0xbe,0xad,0xde] + cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx + +// CHECK: cvttsd2si 69, %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0x0d,0x45,0x00,0x00,0x00] + cvttsd2si 0x45,%ecx + +// CHECK: cvttsd2si 32493, %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0x0d,0xed,0x7e,0x00,0x00] + cvttsd2si 0x7eed,%ecx + +// CHECK: cvttsd2si 3133065982, %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0x0d,0xfe,0xca,0xbe,0xba] + cvttsd2si 0xbabecafe,%ecx + +// CHECK: cvttsd2si 305419896, %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0x0d,0x78,0x56,0x34,0x12] + cvttsd2si 0x12345678,%ecx + +// CHECK: cvttsd2si %xmm5, %ecx +// CHECK: encoding: [0xf2,0x0f,0x2c,0xcd] + cvttsd2si %xmm5,%ecx + +// CHECK: cvttps2dq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0xac,0xcb,0xef,0xbe,0xad,0xde] + cvttps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: cvttps2dq 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0x2d,0x45,0x00,0x00,0x00] + cvttps2dq 0x45,%xmm5 + +// CHECK: cvttps2dq 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0x2d,0xed,0x7e,0x00,0x00] + cvttps2dq 0x7eed,%xmm5 + +// CHECK: cvttps2dq 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0x2d,0xfe,0xca,0xbe,0xba] + cvttps2dq 0xbabecafe,%xmm5 + +// CHECK: cvttps2dq 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0x2d,0x78,0x56,0x34,0x12] + cvttps2dq 0x12345678,%xmm5 + +// CHECK: cvttps2dq %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x5b,0xed] + cvttps2dq %xmm5,%xmm5 + +// CHECK: maskmovdqu %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf7,0xed] + maskmovdqu %xmm5,%xmm5 + +// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0xac,0xcb,0xef,0xbe,0xad,0xde] + movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqa 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0x2d,0x45,0x00,0x00,0x00] + movdqa 0x45,%xmm5 + +// CHECK: movdqa 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0x2d,0xed,0x7e,0x00,0x00] + movdqa 0x7eed,%xmm5 + +// CHECK: movdqa 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0x2d,0xfe,0xca,0xbe,0xba] + movdqa 0xbabecafe,%xmm5 + +// CHECK: movdqa 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0x2d,0x78,0x56,0x34,0x12] + movdqa 0x12345678,%xmm5 + +// CHECK: movdqa %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0xed] + movdqa %xmm5,%xmm5 + +// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0x7f,0xac,0xcb,0xef,0xbe,0xad,0xde] + movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdqa %xmm5, 69 +// CHECK: encoding: [0x66,0x0f,0x7f,0x2d,0x45,0x00,0x00,0x00] + movdqa %xmm5,0x45 + +// CHECK: movdqa %xmm5, 32493 +// CHECK: encoding: [0x66,0x0f,0x7f,0x2d,0xed,0x7e,0x00,0x00] + movdqa %xmm5,0x7eed + +// CHECK: movdqa %xmm5, 3133065982 +// CHECK: encoding: [0x66,0x0f,0x7f,0x2d,0xfe,0xca,0xbe,0xba] + movdqa %xmm5,0xbabecafe + +// CHECK: movdqa %xmm5, 305419896 +// CHECK: encoding: [0x66,0x0f,0x7f,0x2d,0x78,0x56,0x34,0x12] + movdqa %xmm5,0x12345678 + +// CHECK: movdqa %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6f,0xed] + movdqa %xmm5,%xmm5 + +// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x6f,0xac,0xcb,0xef,0xbe,0xad,0xde] + movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movdqu 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x6f,0x2d,0x45,0x00,0x00,0x00] + movdqu 0x45,%xmm5 + +// CHECK: movdqu 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x6f,0x2d,0xed,0x7e,0x00,0x00] + movdqu 0x7eed,%xmm5 + +// CHECK: movdqu 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x6f,0x2d,0xfe,0xca,0xbe,0xba] + movdqu 0xbabecafe,%xmm5 + +// CHECK: movdqu 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x6f,0x2d,0x78,0x56,0x34,0x12] + movdqu 0x12345678,%xmm5 + +// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xf3,0x0f,0x7f,0xac,0xcb,0xef,0xbe,0xad,0xde] + movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8) + +// CHECK: movdqu %xmm5, 69 +// CHECK: encoding: [0xf3,0x0f,0x7f,0x2d,0x45,0x00,0x00,0x00] + movdqu %xmm5,0x45 + +// CHECK: movdqu %xmm5, 32493 +// CHECK: encoding: [0xf3,0x0f,0x7f,0x2d,0xed,0x7e,0x00,0x00] + movdqu %xmm5,0x7eed + +// CHECK: movdqu %xmm5, 3133065982 +// CHECK: encoding: [0xf3,0x0f,0x7f,0x2d,0xfe,0xca,0xbe,0xba] + movdqu %xmm5,0xbabecafe + +// CHECK: movdqu %xmm5, 305419896 +// CHECK: encoding: [0xf3,0x0f,0x7f,0x2d,0x78,0x56,0x34,0x12] + movdqu %xmm5,0x12345678 + +// CHECK: movdq2q %xmm5, %mm3 +// CHECK: encoding: [0xf2,0x0f,0xd6,0xdd] + movdq2q %xmm5,%mm3 + +// CHECK: movq2dq %mm3, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0xd6,0xeb] + movq2dq %mm3,%xmm5 + +// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0xf4,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmuludq 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmuludq 69, %mm3 +// CHECK: encoding: [0x0f,0xf4,0x1d,0x45,0x00,0x00,0x00] + pmuludq 0x45,%mm3 + +// CHECK: pmuludq 32493, %mm3 +// CHECK: encoding: [0x0f,0xf4,0x1d,0xed,0x7e,0x00,0x00] + pmuludq 0x7eed,%mm3 + +// CHECK: pmuludq 3133065982, %mm3 +// CHECK: encoding: [0x0f,0xf4,0x1d,0xfe,0xca,0xbe,0xba] + pmuludq 0xbabecafe,%mm3 + +// CHECK: pmuludq 305419896, %mm3 +// CHECK: encoding: [0x0f,0xf4,0x1d,0x78,0x56,0x34,0x12] + pmuludq 0x12345678,%mm3 + +// CHECK: pmuludq %mm3, %mm3 +// CHECK: encoding: [0x0f,0xf4,0xdb] + pmuludq %mm3,%mm3 + +// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmuludq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmuludq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0x2d,0x45,0x00,0x00,0x00] + pmuludq 0x45,%xmm5 + +// CHECK: pmuludq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0x2d,0xed,0x7e,0x00,0x00] + pmuludq 0x7eed,%xmm5 + +// CHECK: pmuludq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0x2d,0xfe,0xca,0xbe,0xba] + pmuludq 0xbabecafe,%xmm5 + +// CHECK: pmuludq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0x2d,0x78,0x56,0x34,0x12] + pmuludq 0x12345678,%xmm5 + +// CHECK: pmuludq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xf4,0xed] + pmuludq %xmm5,%xmm5 + +// CHECK: pslldq $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x73,0xfd,0x7f] + pslldq $0x7f,%xmm5 + +// CHECK: psrldq $127, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x73,0xdd,0x7f] + psrldq $0x7f,%xmm5 + +// CHECK: punpckhqdq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpckhqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpckhqdq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0x2d,0x45,0x00,0x00,0x00] + punpckhqdq 0x45,%xmm5 + +// CHECK: punpckhqdq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0x2d,0xed,0x7e,0x00,0x00] + punpckhqdq 0x7eed,%xmm5 + +// CHECK: punpckhqdq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0x2d,0xfe,0xca,0xbe,0xba] + punpckhqdq 0xbabecafe,%xmm5 + +// CHECK: punpckhqdq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0x2d,0x78,0x56,0x34,0x12] + punpckhqdq 0x12345678,%xmm5 + +// CHECK: punpckhqdq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6d,0xed] + punpckhqdq %xmm5,%xmm5 + +// CHECK: punpcklqdq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0xac,0xcb,0xef,0xbe,0xad,0xde] + punpcklqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: punpcklqdq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0x2d,0x45,0x00,0x00,0x00] + punpcklqdq 0x45,%xmm5 + +// CHECK: punpcklqdq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0x2d,0xed,0x7e,0x00,0x00] + punpcklqdq 0x7eed,%xmm5 + +// CHECK: punpcklqdq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0x2d,0xfe,0xca,0xbe,0xba] + punpcklqdq 0xbabecafe,%xmm5 + +// CHECK: punpcklqdq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0x2d,0x78,0x56,0x34,0x12] + punpcklqdq 0x12345678,%xmm5 + +// CHECK: punpcklqdq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x6c,0xed] + punpcklqdq %xmm5,%xmm5 + +// CHECK: addsubpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0xac,0xcb,0xef,0xbe,0xad,0xde] + addsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsubpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0x2d,0x45,0x00,0x00,0x00] + addsubpd 0x45,%xmm5 + +// CHECK: addsubpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0x2d,0xed,0x7e,0x00,0x00] + addsubpd 0x7eed,%xmm5 + +// CHECK: addsubpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0x2d,0xfe,0xca,0xbe,0xba] + addsubpd 0xbabecafe,%xmm5 + +// CHECK: addsubpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0x2d,0x78,0x56,0x34,0x12] + addsubpd 0x12345678,%xmm5 + +// CHECK: addsubpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0xd0,0xed] + addsubpd %xmm5,%xmm5 + +// CHECK: addsubps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0xac,0xcb,0xef,0xbe,0xad,0xde] + addsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: addsubps 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0x2d,0x45,0x00,0x00,0x00] + addsubps 0x45,%xmm5 + +// CHECK: addsubps 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0x2d,0xed,0x7e,0x00,0x00] + addsubps 0x7eed,%xmm5 + +// CHECK: addsubps 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0x2d,0xfe,0xca,0xbe,0xba] + addsubps 0xbabecafe,%xmm5 + +// CHECK: addsubps 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0x2d,0x78,0x56,0x34,0x12] + addsubps 0x12345678,%xmm5 + +// CHECK: addsubps %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xd0,0xed] + addsubps %xmm5,%xmm5 + +// CHECK: fisttpl 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0xdb,0x8c,0xcb,0xef,0xbe,0xad,0xde] + fisttpl 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: fisttpl 3133065982 +// CHECK: encoding: [0xdb,0x0d,0xfe,0xca,0xbe,0xba] + fisttpl 0xbabecafe + +// CHECK: fisttpl 305419896 +// CHECK: encoding: [0xdb,0x0d,0x78,0x56,0x34,0x12] + fisttpl 0x12345678 + +// CHECK: haddpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0xac,0xcb,0xef,0xbe,0xad,0xde] + haddpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: haddpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0x2d,0x45,0x00,0x00,0x00] + haddpd 0x45,%xmm5 + +// CHECK: haddpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0x2d,0xed,0x7e,0x00,0x00] + haddpd 0x7eed,%xmm5 + +// CHECK: haddpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0x2d,0xfe,0xca,0xbe,0xba] + haddpd 0xbabecafe,%xmm5 + +// CHECK: haddpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0x2d,0x78,0x56,0x34,0x12] + haddpd 0x12345678,%xmm5 + +// CHECK: haddpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7c,0xed] + haddpd %xmm5,%xmm5 + +// CHECK: haddps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0xac,0xcb,0xef,0xbe,0xad,0xde] + haddps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: haddps 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0x2d,0x45,0x00,0x00,0x00] + haddps 0x45,%xmm5 + +// CHECK: haddps 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0x2d,0xed,0x7e,0x00,0x00] + haddps 0x7eed,%xmm5 + +// CHECK: haddps 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0x2d,0xfe,0xca,0xbe,0xba] + haddps 0xbabecafe,%xmm5 + +// CHECK: haddps 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0x2d,0x78,0x56,0x34,0x12] + haddps 0x12345678,%xmm5 + +// CHECK: haddps %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7c,0xed] + haddps %xmm5,%xmm5 + +// CHECK: hsubpd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0xac,0xcb,0xef,0xbe,0xad,0xde] + hsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: hsubpd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0x2d,0x45,0x00,0x00,0x00] + hsubpd 0x45,%xmm5 + +// CHECK: hsubpd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0x2d,0xed,0x7e,0x00,0x00] + hsubpd 0x7eed,%xmm5 + +// CHECK: hsubpd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0x2d,0xfe,0xca,0xbe,0xba] + hsubpd 0xbabecafe,%xmm5 + +// CHECK: hsubpd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0x2d,0x78,0x56,0x34,0x12] + hsubpd 0x12345678,%xmm5 + +// CHECK: hsubpd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x7d,0xed] + hsubpd %xmm5,%xmm5 + +// CHECK: hsubps 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0xac,0xcb,0xef,0xbe,0xad,0xde] + hsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: hsubps 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0x2d,0x45,0x00,0x00,0x00] + hsubps 0x45,%xmm5 + +// CHECK: hsubps 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0x2d,0xed,0x7e,0x00,0x00] + hsubps 0x7eed,%xmm5 + +// CHECK: hsubps 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0x2d,0xfe,0xca,0xbe,0xba] + hsubps 0xbabecafe,%xmm5 + +// CHECK: hsubps 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0x2d,0x78,0x56,0x34,0x12] + hsubps 0x12345678,%xmm5 + +// CHECK: hsubps %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x7d,0xed] + hsubps %xmm5,%xmm5 + +// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xf0,0xac,0xcb,0xef,0xbe,0xad,0xde] + lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: lddqu 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xf0,0x2d,0x45,0x00,0x00,0x00] + lddqu 0x45,%xmm5 + +// CHECK: lddqu 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xf0,0x2d,0xed,0x7e,0x00,0x00] + lddqu 0x7eed,%xmm5 + +// CHECK: lddqu 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xf0,0x2d,0xfe,0xca,0xbe,0xba] + lddqu 0xbabecafe,%xmm5 + +// CHECK: lddqu 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0xf0,0x2d,0x78,0x56,0x34,0x12] + lddqu 0x12345678,%xmm5 + +// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0xac,0xcb,0xef,0xbe,0xad,0xde] + movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movddup 69, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0x2d,0x45,0x00,0x00,0x00] + movddup 0x45,%xmm5 + +// CHECK: movddup 32493, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0x2d,0xed,0x7e,0x00,0x00] + movddup 0x7eed,%xmm5 + +// CHECK: movddup 3133065982, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0x2d,0xfe,0xca,0xbe,0xba] + movddup 0xbabecafe,%xmm5 + +// CHECK: movddup 305419896, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0x2d,0x78,0x56,0x34,0x12] + movddup 0x12345678,%xmm5 + +// CHECK: movddup %xmm5, %xmm5 +// CHECK: encoding: [0xf2,0x0f,0x12,0xed] + movddup %xmm5,%xmm5 + +// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0xac,0xcb,0xef,0xbe,0xad,0xde] + movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movshdup 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0x2d,0x45,0x00,0x00,0x00] + movshdup 0x45,%xmm5 + +// CHECK: movshdup 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0x2d,0xed,0x7e,0x00,0x00] + movshdup 0x7eed,%xmm5 + +// CHECK: movshdup 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0x2d,0xfe,0xca,0xbe,0xba] + movshdup 0xbabecafe,%xmm5 + +// CHECK: movshdup 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0x2d,0x78,0x56,0x34,0x12] + movshdup 0x12345678,%xmm5 + +// CHECK: movshdup %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x16,0xed] + movshdup %xmm5,%xmm5 + +// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0xac,0xcb,0xef,0xbe,0xad,0xde] + movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movsldup 69, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0x2d,0x45,0x00,0x00,0x00] + movsldup 0x45,%xmm5 + +// CHECK: movsldup 32493, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0x2d,0xed,0x7e,0x00,0x00] + movsldup 0x7eed,%xmm5 + +// CHECK: movsldup 3133065982, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0x2d,0xfe,0xca,0xbe,0xba] + movsldup 0xbabecafe,%xmm5 + +// CHECK: movsldup 305419896, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0x2d,0x78,0x56,0x34,0x12] + movsldup 0x12345678,%xmm5 + +// CHECK: movsldup %xmm5, %xmm5 +// CHECK: encoding: [0xf3,0x0f,0x12,0xed] + movsldup %xmm5,%xmm5 + +// CHECK: vmclear 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x66,0x0f,0xc7,0xb4,0xcb,0xef,0xbe,0xad,0xde] + vmclear 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmclear 32493 +// CHECK: encoding: [0x66,0x0f,0xc7,0x35,0xed,0x7e,0x00,0x00] + vmclear 0x7eed + +// CHECK: vmclear 3133065982 +// CHECK: encoding: [0x66,0x0f,0xc7,0x35,0xfe,0xca,0xbe,0xba] + vmclear 0xbabecafe + +// CHECK: vmclear 305419896 +// CHECK: encoding: [0x66,0x0f,0xc7,0x35,0x78,0x56,0x34,0x12] + vmclear 0x12345678 + +// CHECK: vmptrld 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xc7,0xb4,0xcb,0xef,0xbe,0xad,0xde] + vmptrld 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmptrld 32493 +// CHECK: encoding: [0x0f,0xc7,0x35,0xed,0x7e,0x00,0x00] + vmptrld 0x7eed + +// CHECK: vmptrld 3133065982 +// CHECK: encoding: [0x0f,0xc7,0x35,0xfe,0xca,0xbe,0xba] + vmptrld 0xbabecafe + +// CHECK: vmptrld 305419896 +// CHECK: encoding: [0x0f,0xc7,0x35,0x78,0x56,0x34,0x12] + vmptrld 0x12345678 + +// CHECK: vmptrst 3735928559(%ebx,%ecx,8) +// CHECK: encoding: [0x0f,0xc7,0xbc,0xcb,0xef,0xbe,0xad,0xde] + vmptrst 0xdeadbeef(%ebx,%ecx,8) + +// CHECK: vmptrst 32493 +// CHECK: encoding: [0x0f,0xc7,0x3d,0xed,0x7e,0x00,0x00] + vmptrst 0x7eed + +// CHECK: vmptrst 3133065982 +// CHECK: encoding: [0x0f,0xc7,0x3d,0xfe,0xca,0xbe,0xba] + vmptrst 0xbabecafe + +// CHECK: vmptrst 305419896 +// CHECK: encoding: [0x0f,0xc7,0x3d,0x78,0x56,0x34,0x12] + vmptrst 0x12345678 + +// CHECK: phaddw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phaddw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0x1d,0x45,0x00,0x00,0x00] + phaddw 0x45,%mm3 + +// CHECK: phaddw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0x1d,0xed,0x7e,0x00,0x00] + phaddw 0x7eed,%mm3 + +// CHECK: phaddw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0x1d,0xfe,0xca,0xbe,0xba] + phaddw 0xbabecafe,%mm3 + +// CHECK: phaddw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0x1d,0x78,0x56,0x34,0x12] + phaddw 0x12345678,%mm3 + +// CHECK: phaddw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x01,0xdb] + phaddw %mm3,%mm3 + +// CHECK: phaddw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0xac,0xcb,0xef,0xbe,0xad,0xde] + phaddw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0x2d,0x45,0x00,0x00,0x00] + phaddw 0x45,%xmm5 + +// CHECK: phaddw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0x2d,0xed,0x7e,0x00,0x00] + phaddw 0x7eed,%xmm5 + +// CHECK: phaddw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0x2d,0xfe,0xca,0xbe,0xba] + phaddw 0xbabecafe,%xmm5 + +// CHECK: phaddw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0x2d,0x78,0x56,0x34,0x12] + phaddw 0x12345678,%xmm5 + +// CHECK: phaddw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x01,0xed] + phaddw %xmm5,%xmm5 + +// CHECK: phaddd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phaddd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddd 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0x1d,0x45,0x00,0x00,0x00] + phaddd 0x45,%mm3 + +// CHECK: phaddd 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0x1d,0xed,0x7e,0x00,0x00] + phaddd 0x7eed,%mm3 + +// CHECK: phaddd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0x1d,0xfe,0xca,0xbe,0xba] + phaddd 0xbabecafe,%mm3 + +// CHECK: phaddd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0x1d,0x78,0x56,0x34,0x12] + phaddd 0x12345678,%mm3 + +// CHECK: phaddd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x02,0xdb] + phaddd %mm3,%mm3 + +// CHECK: phaddd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0xac,0xcb,0xef,0xbe,0xad,0xde] + phaddd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0x2d,0x45,0x00,0x00,0x00] + phaddd 0x45,%xmm5 + +// CHECK: phaddd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0x2d,0xed,0x7e,0x00,0x00] + phaddd 0x7eed,%xmm5 + +// CHECK: phaddd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0x2d,0xfe,0xca,0xbe,0xba] + phaddd 0xbabecafe,%xmm5 + +// CHECK: phaddd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0x2d,0x78,0x56,0x34,0x12] + phaddd 0x12345678,%xmm5 + +// CHECK: phaddd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x02,0xed] + phaddd %xmm5,%xmm5 + +// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phaddsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phaddsw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0x1d,0x45,0x00,0x00,0x00] + phaddsw 0x45,%mm3 + +// CHECK: phaddsw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0x1d,0xed,0x7e,0x00,0x00] + phaddsw 0x7eed,%mm3 + +// CHECK: phaddsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0x1d,0xfe,0xca,0xbe,0xba] + phaddsw 0xbabecafe,%mm3 + +// CHECK: phaddsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0x1d,0x78,0x56,0x34,0x12] + phaddsw 0x12345678,%mm3 + +// CHECK: phaddsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x03,0xdb] + phaddsw %mm3,%mm3 + +// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0xac,0xcb,0xef,0xbe,0xad,0xde] + phaddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phaddsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0x2d,0x45,0x00,0x00,0x00] + phaddsw 0x45,%xmm5 + +// CHECK: phaddsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0x2d,0xed,0x7e,0x00,0x00] + phaddsw 0x7eed,%xmm5 + +// CHECK: phaddsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0x2d,0xfe,0xca,0xbe,0xba] + phaddsw 0xbabecafe,%xmm5 + +// CHECK: phaddsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0x2d,0x78,0x56,0x34,0x12] + phaddsw 0x12345678,%xmm5 + +// CHECK: phaddsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x03,0xed] + phaddsw %xmm5,%xmm5 + +// CHECK: phsubw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phsubw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0x1d,0x45,0x00,0x00,0x00] + phsubw 0x45,%mm3 + +// CHECK: phsubw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0x1d,0xed,0x7e,0x00,0x00] + phsubw 0x7eed,%mm3 + +// CHECK: phsubw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0x1d,0xfe,0xca,0xbe,0xba] + phsubw 0xbabecafe,%mm3 + +// CHECK: phsubw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0x1d,0x78,0x56,0x34,0x12] + phsubw 0x12345678,%mm3 + +// CHECK: phsubw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x05,0xdb] + phsubw %mm3,%mm3 + +// CHECK: phsubw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0xac,0xcb,0xef,0xbe,0xad,0xde] + phsubw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0x2d,0x45,0x00,0x00,0x00] + phsubw 0x45,%xmm5 + +// CHECK: phsubw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0x2d,0xed,0x7e,0x00,0x00] + phsubw 0x7eed,%xmm5 + +// CHECK: phsubw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0x2d,0xfe,0xca,0xbe,0xba] + phsubw 0xbabecafe,%xmm5 + +// CHECK: phsubw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0x2d,0x78,0x56,0x34,0x12] + phsubw 0x12345678,%xmm5 + +// CHECK: phsubw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x05,0xed] + phsubw %xmm5,%xmm5 + +// CHECK: phsubd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phsubd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubd 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0x1d,0x45,0x00,0x00,0x00] + phsubd 0x45,%mm3 + +// CHECK: phsubd 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0x1d,0xed,0x7e,0x00,0x00] + phsubd 0x7eed,%mm3 + +// CHECK: phsubd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0x1d,0xfe,0xca,0xbe,0xba] + phsubd 0xbabecafe,%mm3 + +// CHECK: phsubd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0x1d,0x78,0x56,0x34,0x12] + phsubd 0x12345678,%mm3 + +// CHECK: phsubd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x06,0xdb] + phsubd %mm3,%mm3 + +// CHECK: phsubd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0xac,0xcb,0xef,0xbe,0xad,0xde] + phsubd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0x2d,0x45,0x00,0x00,0x00] + phsubd 0x45,%xmm5 + +// CHECK: phsubd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0x2d,0xed,0x7e,0x00,0x00] + phsubd 0x7eed,%xmm5 + +// CHECK: phsubd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0x2d,0xfe,0xca,0xbe,0xba] + phsubd 0xbabecafe,%xmm5 + +// CHECK: phsubd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0x2d,0x78,0x56,0x34,0x12] + phsubd 0x12345678,%xmm5 + +// CHECK: phsubd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x06,0xed] + phsubd %xmm5,%xmm5 + +// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0x9c,0xcb,0xef,0xbe,0xad,0xde] + phsubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: phsubsw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0x1d,0x45,0x00,0x00,0x00] + phsubsw 0x45,%mm3 + +// CHECK: phsubsw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0x1d,0xed,0x7e,0x00,0x00] + phsubsw 0x7eed,%mm3 + +// CHECK: phsubsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0x1d,0xfe,0xca,0xbe,0xba] + phsubsw 0xbabecafe,%mm3 + +// CHECK: phsubsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0x1d,0x78,0x56,0x34,0x12] + phsubsw 0x12345678,%mm3 + +// CHECK: phsubsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x07,0xdb] + phsubsw %mm3,%mm3 + +// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0xac,0xcb,0xef,0xbe,0xad,0xde] + phsubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phsubsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0x2d,0x45,0x00,0x00,0x00] + phsubsw 0x45,%xmm5 + +// CHECK: phsubsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0x2d,0xed,0x7e,0x00,0x00] + phsubsw 0x7eed,%xmm5 + +// CHECK: phsubsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0x2d,0xfe,0xca,0xbe,0xba] + phsubsw 0xbabecafe,%xmm5 + +// CHECK: phsubsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0x2d,0x78,0x56,0x34,0x12] + phsubsw 0x12345678,%xmm5 + +// CHECK: phsubsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x07,0xed] + phsubsw %xmm5,%xmm5 + +// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmaddubsw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0x1d,0x45,0x00,0x00,0x00] + pmaddubsw 0x45,%mm3 + +// CHECK: pmaddubsw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0x1d,0xed,0x7e,0x00,0x00] + pmaddubsw 0x7eed,%mm3 + +// CHECK: pmaddubsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0x1d,0xfe,0xca,0xbe,0xba] + pmaddubsw 0xbabecafe,%mm3 + +// CHECK: pmaddubsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0x1d,0x78,0x56,0x34,0x12] + pmaddubsw 0x12345678,%mm3 + +// CHECK: pmaddubsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x04,0xdb] + pmaddubsw %mm3,%mm3 + +// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaddubsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0x2d,0x45,0x00,0x00,0x00] + pmaddubsw 0x45,%xmm5 + +// CHECK: pmaddubsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0x2d,0xed,0x7e,0x00,0x00] + pmaddubsw 0x7eed,%xmm5 + +// CHECK: pmaddubsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0x2d,0xfe,0xca,0xbe,0xba] + pmaddubsw 0xbabecafe,%xmm5 + +// CHECK: pmaddubsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0x2d,0x78,0x56,0x34,0x12] + pmaddubsw 0x12345678,%xmm5 + +// CHECK: pmaddubsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x04,0xed] + pmaddubsw %xmm5,%xmm5 + +// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pmulhrsw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0x1d,0x45,0x00,0x00,0x00] + pmulhrsw 0x45,%mm3 + +// CHECK: pmulhrsw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0x1d,0xed,0x7e,0x00,0x00] + pmulhrsw 0x7eed,%mm3 + +// CHECK: pmulhrsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0x1d,0xfe,0xca,0xbe,0xba] + pmulhrsw 0xbabecafe,%mm3 + +// CHECK: pmulhrsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0x1d,0x78,0x56,0x34,0x12] + pmulhrsw 0x12345678,%mm3 + +// CHECK: pmulhrsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0b,0xdb] + pmulhrsw %mm3,%mm3 + +// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulhrsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0x2d,0x45,0x00,0x00,0x00] + pmulhrsw 0x45,%xmm5 + +// CHECK: pmulhrsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0x2d,0xed,0x7e,0x00,0x00] + pmulhrsw 0x7eed,%xmm5 + +// CHECK: pmulhrsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0x2d,0xfe,0xca,0xbe,0xba] + pmulhrsw 0xbabecafe,%xmm5 + +// CHECK: pmulhrsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0x2d,0x78,0x56,0x34,0x12] + pmulhrsw 0x12345678,%xmm5 + +// CHECK: pmulhrsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0b,0xed] + pmulhrsw %xmm5,%xmm5 + +// CHECK: pshufb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pshufb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pshufb 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0x1d,0x45,0x00,0x00,0x00] + pshufb 0x45,%mm3 + +// CHECK: pshufb 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0x1d,0xed,0x7e,0x00,0x00] + pshufb 0x7eed,%mm3 + +// CHECK: pshufb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0x1d,0xfe,0xca,0xbe,0xba] + pshufb 0xbabecafe,%mm3 + +// CHECK: pshufb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0x1d,0x78,0x56,0x34,0x12] + pshufb 0x12345678,%mm3 + +// CHECK: pshufb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x00,0xdb] + pshufb %mm3,%mm3 + +// CHECK: pshufb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0xac,0xcb,0xef,0xbe,0xad,0xde] + pshufb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pshufb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0x2d,0x45,0x00,0x00,0x00] + pshufb 0x45,%xmm5 + +// CHECK: pshufb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0x2d,0xed,0x7e,0x00,0x00] + pshufb 0x7eed,%xmm5 + +// CHECK: pshufb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0x2d,0xfe,0xca,0xbe,0xba] + pshufb 0xbabecafe,%xmm5 + +// CHECK: pshufb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0x2d,0x78,0x56,0x34,0x12] + pshufb 0x12345678,%xmm5 + +// CHECK: pshufb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x00,0xed] + pshufb %xmm5,%xmm5 + +// CHECK: psignb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psignb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignb 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0x1d,0x45,0x00,0x00,0x00] + psignb 0x45,%mm3 + +// CHECK: psignb 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0x1d,0xed,0x7e,0x00,0x00] + psignb 0x7eed,%mm3 + +// CHECK: psignb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0x1d,0xfe,0xca,0xbe,0xba] + psignb 0xbabecafe,%mm3 + +// CHECK: psignb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0x1d,0x78,0x56,0x34,0x12] + psignb 0x12345678,%mm3 + +// CHECK: psignb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x08,0xdb] + psignb %mm3,%mm3 + +// CHECK: psignb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0xac,0xcb,0xef,0xbe,0xad,0xde] + psignb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0x2d,0x45,0x00,0x00,0x00] + psignb 0x45,%xmm5 + +// CHECK: psignb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0x2d,0xed,0x7e,0x00,0x00] + psignb 0x7eed,%xmm5 + +// CHECK: psignb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0x2d,0xfe,0xca,0xbe,0xba] + psignb 0xbabecafe,%xmm5 + +// CHECK: psignb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0x2d,0x78,0x56,0x34,0x12] + psignb 0x12345678,%xmm5 + +// CHECK: psignb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x08,0xed] + psignb %xmm5,%xmm5 + +// CHECK: psignw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psignw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0x1d,0x45,0x00,0x00,0x00] + psignw 0x45,%mm3 + +// CHECK: psignw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0x1d,0xed,0x7e,0x00,0x00] + psignw 0x7eed,%mm3 + +// CHECK: psignw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0x1d,0xfe,0xca,0xbe,0xba] + psignw 0xbabecafe,%mm3 + +// CHECK: psignw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0x1d,0x78,0x56,0x34,0x12] + psignw 0x12345678,%mm3 + +// CHECK: psignw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x09,0xdb] + psignw %mm3,%mm3 + +// CHECK: psignw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0xac,0xcb,0xef,0xbe,0xad,0xde] + psignw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0x2d,0x45,0x00,0x00,0x00] + psignw 0x45,%xmm5 + +// CHECK: psignw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0x2d,0xed,0x7e,0x00,0x00] + psignw 0x7eed,%xmm5 + +// CHECK: psignw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0x2d,0xfe,0xca,0xbe,0xba] + psignw 0xbabecafe,%xmm5 + +// CHECK: psignw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0x2d,0x78,0x56,0x34,0x12] + psignw 0x12345678,%xmm5 + +// CHECK: psignw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x09,0xed] + psignw %xmm5,%xmm5 + +// CHECK: psignd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0x9c,0xcb,0xef,0xbe,0xad,0xde] + psignd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: psignd 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0x1d,0x45,0x00,0x00,0x00] + psignd 0x45,%mm3 + +// CHECK: psignd 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0x1d,0xed,0x7e,0x00,0x00] + psignd 0x7eed,%mm3 + +// CHECK: psignd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0x1d,0xfe,0xca,0xbe,0xba] + psignd 0xbabecafe,%mm3 + +// CHECK: psignd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0x1d,0x78,0x56,0x34,0x12] + psignd 0x12345678,%mm3 + +// CHECK: psignd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x0a,0xdb] + psignd %mm3,%mm3 + +// CHECK: psignd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0xac,0xcb,0xef,0xbe,0xad,0xde] + psignd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: psignd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0x2d,0x45,0x00,0x00,0x00] + psignd 0x45,%xmm5 + +// CHECK: psignd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0x2d,0xed,0x7e,0x00,0x00] + psignd 0x7eed,%xmm5 + +// CHECK: psignd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0x2d,0xfe,0xca,0xbe,0xba] + psignd 0xbabecafe,%xmm5 + +// CHECK: psignd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0x2d,0x78,0x56,0x34,0x12] + psignd 0x12345678,%xmm5 + +// CHECK: psignd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x0a,0xed] + psignd %xmm5,%xmm5 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsb 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0x1d,0x45,0x00,0x00,0x00] + pabsb 0x45,%mm3 + +// CHECK: pabsb 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0x1d,0xed,0x7e,0x00,0x00] + pabsb 0x7eed,%mm3 + +// CHECK: pabsb 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0x1d,0xfe,0xca,0xbe,0xba] + pabsb 0xbabecafe,%mm3 + +// CHECK: pabsb 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0x1d,0x78,0x56,0x34,0x12] + pabsb 0x12345678,%mm3 + +// CHECK: pabsb %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1c,0xdb] + pabsb %mm3,%mm3 + +// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0xac,0xcb,0xef,0xbe,0xad,0xde] + pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0x2d,0x45,0x00,0x00,0x00] + pabsb 0x45,%xmm5 + +// CHECK: pabsb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0x2d,0xed,0x7e,0x00,0x00] + pabsb 0x7eed,%xmm5 + +// CHECK: pabsb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0x2d,0xfe,0xca,0xbe,0xba] + pabsb 0xbabecafe,%xmm5 + +// CHECK: pabsb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0x2d,0x78,0x56,0x34,0x12] + pabsb 0x12345678,%xmm5 + +// CHECK: pabsb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1c,0xed] + pabsb %xmm5,%xmm5 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsw 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0x1d,0x45,0x00,0x00,0x00] + pabsw 0x45,%mm3 + +// CHECK: pabsw 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0x1d,0xed,0x7e,0x00,0x00] + pabsw 0x7eed,%mm3 + +// CHECK: pabsw 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0x1d,0xfe,0xca,0xbe,0xba] + pabsw 0xbabecafe,%mm3 + +// CHECK: pabsw 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0x1d,0x78,0x56,0x34,0x12] + pabsw 0x12345678,%mm3 + +// CHECK: pabsw %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1d,0xdb] + pabsw %mm3,%mm3 + +// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0xac,0xcb,0xef,0xbe,0xad,0xde] + pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0x2d,0x45,0x00,0x00,0x00] + pabsw 0x45,%xmm5 + +// CHECK: pabsw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0x2d,0xed,0x7e,0x00,0x00] + pabsw 0x7eed,%xmm5 + +// CHECK: pabsw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0x2d,0xfe,0xca,0xbe,0xba] + pabsw 0xbabecafe,%xmm5 + +// CHECK: pabsw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0x2d,0x78,0x56,0x34,0x12] + pabsw 0x12345678,%xmm5 + +// CHECK: pabsw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1d,0xed] + pabsw %xmm5,%xmm5 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0x9c,0xcb,0xef,0xbe,0xad,0xde] + pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3 + +// CHECK: pabsd 69, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0x1d,0x45,0x00,0x00,0x00] + pabsd 0x45,%mm3 + +// CHECK: pabsd 32493, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0x1d,0xed,0x7e,0x00,0x00] + pabsd 0x7eed,%mm3 + +// CHECK: pabsd 3133065982, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0x1d,0xfe,0xca,0xbe,0xba] + pabsd 0xbabecafe,%mm3 + +// CHECK: pabsd 305419896, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0x1d,0x78,0x56,0x34,0x12] + pabsd 0x12345678,%mm3 + +// CHECK: pabsd %mm3, %mm3 +// CHECK: encoding: [0x0f,0x38,0x1e,0xdb] + pabsd %mm3,%mm3 + +// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0xac,0xcb,0xef,0xbe,0xad,0xde] + pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pabsd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0x2d,0x45,0x00,0x00,0x00] + pabsd 0x45,%xmm5 + +// CHECK: pabsd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0x2d,0xed,0x7e,0x00,0x00] + pabsd 0x7eed,%xmm5 + +// CHECK: pabsd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0x2d,0xfe,0xca,0xbe,0xba] + pabsd 0xbabecafe,%xmm5 + +// CHECK: pabsd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0x2d,0x78,0x56,0x34,0x12] + pabsd 0x12345678,%xmm5 + +// CHECK: pabsd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x1e,0xed] + pabsd %xmm5,%xmm5 + +// CHECK: femms +// CHECK: encoding: [0x0f,0x0e] + femms + +// CHECK: movntdqa 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2a,0xac,0xcb,0xef,0xbe,0xad,0xde] + movntdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: movntdqa 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2a,0x2d,0x45,0x00,0x00,0x00] + movntdqa 0x45,%xmm5 + +// CHECK: movntdqa 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2a,0x2d,0xed,0x7e,0x00,0x00] + movntdqa 0x7eed,%xmm5 + +// CHECK: movntdqa 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2a,0x2d,0xfe,0xca,0xbe,0xba] + movntdqa 0xbabecafe,%xmm5 + +// CHECK: movntdqa 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2a,0x2d,0x78,0x56,0x34,0x12] + movntdqa 0x12345678,%xmm5 + +// CHECK: packusdw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0xac,0xcb,0xef,0xbe,0xad,0xde] + packusdw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: packusdw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0x2d,0x45,0x00,0x00,0x00] + packusdw 0x45,%xmm5 + +// CHECK: packusdw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0x2d,0xed,0x7e,0x00,0x00] + packusdw 0x7eed,%xmm5 + +// CHECK: packusdw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0x2d,0xfe,0xca,0xbe,0xba] + packusdw 0xbabecafe,%xmm5 + +// CHECK: packusdw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0x2d,0x78,0x56,0x34,0x12] + packusdw 0x12345678,%xmm5 + +// CHECK: packusdw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x2b,0xed] + packusdw %xmm5,%xmm5 + +// CHECK: pcmpeqq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpeqq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpeqq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0x2d,0x45,0x00,0x00,0x00] + pcmpeqq 0x45,%xmm5 + +// CHECK: pcmpeqq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0x2d,0xed,0x7e,0x00,0x00] + pcmpeqq 0x7eed,%xmm5 + +// CHECK: pcmpeqq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0x2d,0xfe,0xca,0xbe,0xba] + pcmpeqq 0xbabecafe,%xmm5 + +// CHECK: pcmpeqq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0x2d,0x78,0x56,0x34,0x12] + pcmpeqq 0x12345678,%xmm5 + +// CHECK: pcmpeqq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x29,0xed] + pcmpeqq %xmm5,%xmm5 + +// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0xac,0xcb,0xef,0xbe,0xad,0xde] + phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: phminposuw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0x2d,0x45,0x00,0x00,0x00] + phminposuw 0x45,%xmm5 + +// CHECK: phminposuw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0x2d,0xed,0x7e,0x00,0x00] + phminposuw 0x7eed,%xmm5 + +// CHECK: phminposuw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0x2d,0xfe,0xca,0xbe,0xba] + phminposuw 0xbabecafe,%xmm5 + +// CHECK: phminposuw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0x2d,0x78,0x56,0x34,0x12] + phminposuw 0x12345678,%xmm5 + +// CHECK: phminposuw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x41,0xed] + phminposuw %xmm5,%xmm5 + +// CHECK: pmaxsb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0x2d,0x45,0x00,0x00,0x00] + pmaxsb 0x45,%xmm5 + +// CHECK: pmaxsb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0x2d,0xed,0x7e,0x00,0x00] + pmaxsb 0x7eed,%xmm5 + +// CHECK: pmaxsb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0x2d,0xfe,0xca,0xbe,0xba] + pmaxsb 0xbabecafe,%xmm5 + +// CHECK: pmaxsb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0x2d,0x78,0x56,0x34,0x12] + pmaxsb 0x12345678,%xmm5 + +// CHECK: pmaxsb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3c,0xed] + pmaxsb %xmm5,%xmm5 + +// CHECK: pmaxsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxsd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0x2d,0x45,0x00,0x00,0x00] + pmaxsd 0x45,%xmm5 + +// CHECK: pmaxsd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0x2d,0xed,0x7e,0x00,0x00] + pmaxsd 0x7eed,%xmm5 + +// CHECK: pmaxsd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0x2d,0xfe,0xca,0xbe,0xba] + pmaxsd 0xbabecafe,%xmm5 + +// CHECK: pmaxsd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0x2d,0x78,0x56,0x34,0x12] + pmaxsd 0x12345678,%xmm5 + +// CHECK: pmaxsd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3d,0xed] + pmaxsd %xmm5,%xmm5 + +// CHECK: pmaxud 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxud 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxud 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0x2d,0x45,0x00,0x00,0x00] + pmaxud 0x45,%xmm5 + +// CHECK: pmaxud 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0x2d,0xed,0x7e,0x00,0x00] + pmaxud 0x7eed,%xmm5 + +// CHECK: pmaxud 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0x2d,0xfe,0xca,0xbe,0xba] + pmaxud 0xbabecafe,%xmm5 + +// CHECK: pmaxud 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0x2d,0x78,0x56,0x34,0x12] + pmaxud 0x12345678,%xmm5 + +// CHECK: pmaxud %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3f,0xed] + pmaxud %xmm5,%xmm5 + +// CHECK: pmaxuw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmaxuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmaxuw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0x2d,0x45,0x00,0x00,0x00] + pmaxuw 0x45,%xmm5 + +// CHECK: pmaxuw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0x2d,0xed,0x7e,0x00,0x00] + pmaxuw 0x7eed,%xmm5 + +// CHECK: pmaxuw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0x2d,0xfe,0xca,0xbe,0xba] + pmaxuw 0xbabecafe,%xmm5 + +// CHECK: pmaxuw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0x2d,0x78,0x56,0x34,0x12] + pmaxuw 0x12345678,%xmm5 + +// CHECK: pmaxuw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3e,0xed] + pmaxuw %xmm5,%xmm5 + +// CHECK: pminsb 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsb 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0x2d,0x45,0x00,0x00,0x00] + pminsb 0x45,%xmm5 + +// CHECK: pminsb 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0x2d,0xed,0x7e,0x00,0x00] + pminsb 0x7eed,%xmm5 + +// CHECK: pminsb 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0x2d,0xfe,0xca,0xbe,0xba] + pminsb 0xbabecafe,%xmm5 + +// CHECK: pminsb 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0x2d,0x78,0x56,0x34,0x12] + pminsb 0x12345678,%xmm5 + +// CHECK: pminsb %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x38,0xed] + pminsb %xmm5,%xmm5 + +// CHECK: pminsd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminsd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0x2d,0x45,0x00,0x00,0x00] + pminsd 0x45,%xmm5 + +// CHECK: pminsd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0x2d,0xed,0x7e,0x00,0x00] + pminsd 0x7eed,%xmm5 + +// CHECK: pminsd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0x2d,0xfe,0xca,0xbe,0xba] + pminsd 0xbabecafe,%xmm5 + +// CHECK: pminsd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0x2d,0x78,0x56,0x34,0x12] + pminsd 0x12345678,%xmm5 + +// CHECK: pminsd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x39,0xed] + pminsd %xmm5,%xmm5 + +// CHECK: pminud 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminud 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminud 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0x2d,0x45,0x00,0x00,0x00] + pminud 0x45,%xmm5 + +// CHECK: pminud 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0x2d,0xed,0x7e,0x00,0x00] + pminud 0x7eed,%xmm5 + +// CHECK: pminud 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0x2d,0xfe,0xca,0xbe,0xba] + pminud 0xbabecafe,%xmm5 + +// CHECK: pminud 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0x2d,0x78,0x56,0x34,0x12] + pminud 0x12345678,%xmm5 + +// CHECK: pminud %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3b,0xed] + pminud %xmm5,%xmm5 + +// CHECK: pminuw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0xac,0xcb,0xef,0xbe,0xad,0xde] + pminuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pminuw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0x2d,0x45,0x00,0x00,0x00] + pminuw 0x45,%xmm5 + +// CHECK: pminuw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0x2d,0xed,0x7e,0x00,0x00] + pminuw 0x7eed,%xmm5 + +// CHECK: pminuw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0x2d,0xfe,0xca,0xbe,0xba] + pminuw 0xbabecafe,%xmm5 + +// CHECK: pminuw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0x2d,0x78,0x56,0x34,0x12] + pminuw 0x12345678,%xmm5 + +// CHECK: pminuw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x3a,0xed] + pminuw %xmm5,%xmm5 + +// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0x2d,0x45,0x00,0x00,0x00] + pmovsxbw 0x45,%xmm5 + +// CHECK: pmovsxbw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0x2d,0xed,0x7e,0x00,0x00] + pmovsxbw 0x7eed,%xmm5 + +// CHECK: pmovsxbw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxbw 0xbabecafe,%xmm5 + +// CHECK: pmovsxbw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0x2d,0x78,0x56,0x34,0x12] + pmovsxbw 0x12345678,%xmm5 + +// CHECK: pmovsxbw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x20,0xed] + pmovsxbw %xmm5,%xmm5 + +// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0x2d,0x45,0x00,0x00,0x00] + pmovsxbd 0x45,%xmm5 + +// CHECK: pmovsxbd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0x2d,0xed,0x7e,0x00,0x00] + pmovsxbd 0x7eed,%xmm5 + +// CHECK: pmovsxbd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxbd 0xbabecafe,%xmm5 + +// CHECK: pmovsxbd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0x2d,0x78,0x56,0x34,0x12] + pmovsxbd 0x12345678,%xmm5 + +// CHECK: pmovsxbd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x21,0xed] + pmovsxbd %xmm5,%xmm5 + +// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxbq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0x2d,0x45,0x00,0x00,0x00] + pmovsxbq 0x45,%xmm5 + +// CHECK: pmovsxbq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0x2d,0xed,0x7e,0x00,0x00] + pmovsxbq 0x7eed,%xmm5 + +// CHECK: pmovsxbq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxbq 0xbabecafe,%xmm5 + +// CHECK: pmovsxbq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0x2d,0x78,0x56,0x34,0x12] + pmovsxbq 0x12345678,%xmm5 + +// CHECK: pmovsxbq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x22,0xed] + pmovsxbq %xmm5,%xmm5 + +// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0x2d,0x45,0x00,0x00,0x00] + pmovsxwd 0x45,%xmm5 + +// CHECK: pmovsxwd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0x2d,0xed,0x7e,0x00,0x00] + pmovsxwd 0x7eed,%xmm5 + +// CHECK: pmovsxwd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxwd 0xbabecafe,%xmm5 + +// CHECK: pmovsxwd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0x2d,0x78,0x56,0x34,0x12] + pmovsxwd 0x12345678,%xmm5 + +// CHECK: pmovsxwd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x23,0xed] + pmovsxwd %xmm5,%xmm5 + +// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxwq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0x2d,0x45,0x00,0x00,0x00] + pmovsxwq 0x45,%xmm5 + +// CHECK: pmovsxwq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0x2d,0xed,0x7e,0x00,0x00] + pmovsxwq 0x7eed,%xmm5 + +// CHECK: pmovsxwq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxwq 0xbabecafe,%xmm5 + +// CHECK: pmovsxwq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0x2d,0x78,0x56,0x34,0x12] + pmovsxwq 0x12345678,%xmm5 + +// CHECK: pmovsxwq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x24,0xed] + pmovsxwq %xmm5,%xmm5 + +// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovsxdq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0x2d,0x45,0x00,0x00,0x00] + pmovsxdq 0x45,%xmm5 + +// CHECK: pmovsxdq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0x2d,0xed,0x7e,0x00,0x00] + pmovsxdq 0x7eed,%xmm5 + +// CHECK: pmovsxdq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0x2d,0xfe,0xca,0xbe,0xba] + pmovsxdq 0xbabecafe,%xmm5 + +// CHECK: pmovsxdq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0x2d,0x78,0x56,0x34,0x12] + pmovsxdq 0x12345678,%xmm5 + +// CHECK: pmovsxdq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x25,0xed] + pmovsxdq %xmm5,%xmm5 + +// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbw 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0x2d,0x45,0x00,0x00,0x00] + pmovzxbw 0x45,%xmm5 + +// CHECK: pmovzxbw 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0x2d,0xed,0x7e,0x00,0x00] + pmovzxbw 0x7eed,%xmm5 + +// CHECK: pmovzxbw 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxbw 0xbabecafe,%xmm5 + +// CHECK: pmovzxbw 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0x2d,0x78,0x56,0x34,0x12] + pmovzxbw 0x12345678,%xmm5 + +// CHECK: pmovzxbw %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x30,0xed] + pmovzxbw %xmm5,%xmm5 + +// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0x2d,0x45,0x00,0x00,0x00] + pmovzxbd 0x45,%xmm5 + +// CHECK: pmovzxbd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0x2d,0xed,0x7e,0x00,0x00] + pmovzxbd 0x7eed,%xmm5 + +// CHECK: pmovzxbd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxbd 0xbabecafe,%xmm5 + +// CHECK: pmovzxbd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0x2d,0x78,0x56,0x34,0x12] + pmovzxbd 0x12345678,%xmm5 + +// CHECK: pmovzxbd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x31,0xed] + pmovzxbd %xmm5,%xmm5 + +// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxbq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0x2d,0x45,0x00,0x00,0x00] + pmovzxbq 0x45,%xmm5 + +// CHECK: pmovzxbq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0x2d,0xed,0x7e,0x00,0x00] + pmovzxbq 0x7eed,%xmm5 + +// CHECK: pmovzxbq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxbq 0xbabecafe,%xmm5 + +// CHECK: pmovzxbq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0x2d,0x78,0x56,0x34,0x12] + pmovzxbq 0x12345678,%xmm5 + +// CHECK: pmovzxbq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x32,0xed] + pmovzxbq %xmm5,%xmm5 + +// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwd 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0x2d,0x45,0x00,0x00,0x00] + pmovzxwd 0x45,%xmm5 + +// CHECK: pmovzxwd 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0x2d,0xed,0x7e,0x00,0x00] + pmovzxwd 0x7eed,%xmm5 + +// CHECK: pmovzxwd 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxwd 0xbabecafe,%xmm5 + +// CHECK: pmovzxwd 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0x2d,0x78,0x56,0x34,0x12] + pmovzxwd 0x12345678,%xmm5 + +// CHECK: pmovzxwd %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x33,0xed] + pmovzxwd %xmm5,%xmm5 + +// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxwq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0x2d,0x45,0x00,0x00,0x00] + pmovzxwq 0x45,%xmm5 + +// CHECK: pmovzxwq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0x2d,0xed,0x7e,0x00,0x00] + pmovzxwq 0x7eed,%xmm5 + +// CHECK: pmovzxwq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxwq 0xbabecafe,%xmm5 + +// CHECK: pmovzxwq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0x2d,0x78,0x56,0x34,0x12] + pmovzxwq 0x12345678,%xmm5 + +// CHECK: pmovzxwq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x34,0xed] + pmovzxwq %xmm5,%xmm5 + +// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmovzxdq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0x2d,0x45,0x00,0x00,0x00] + pmovzxdq 0x45,%xmm5 + +// CHECK: pmovzxdq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0x2d,0xed,0x7e,0x00,0x00] + pmovzxdq 0x7eed,%xmm5 + +// CHECK: pmovzxdq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0x2d,0xfe,0xca,0xbe,0xba] + pmovzxdq 0xbabecafe,%xmm5 + +// CHECK: pmovzxdq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0x2d,0x78,0x56,0x34,0x12] + pmovzxdq 0x12345678,%xmm5 + +// CHECK: pmovzxdq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x35,0xed] + pmovzxdq %xmm5,%xmm5 + +// CHECK: pmuldq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmuldq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmuldq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0x2d,0x45,0x00,0x00,0x00] + pmuldq 0x45,%xmm5 + +// CHECK: pmuldq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0x2d,0xed,0x7e,0x00,0x00] + pmuldq 0x7eed,%xmm5 + +// CHECK: pmuldq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0x2d,0xfe,0xca,0xbe,0xba] + pmuldq 0xbabecafe,%xmm5 + +// CHECK: pmuldq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0x2d,0x78,0x56,0x34,0x12] + pmuldq 0x12345678,%xmm5 + +// CHECK: pmuldq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x28,0xed] + pmuldq %xmm5,%xmm5 + +// CHECK: pmulld 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0xac,0xcb,0xef,0xbe,0xad,0xde] + pmulld 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pmulld 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0x2d,0x45,0x00,0x00,0x00] + pmulld 0x45,%xmm5 + +// CHECK: pmulld 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0x2d,0xed,0x7e,0x00,0x00] + pmulld 0x7eed,%xmm5 + +// CHECK: pmulld 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0x2d,0xfe,0xca,0xbe,0xba] + pmulld 0xbabecafe,%xmm5 + +// CHECK: pmulld 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0x2d,0x78,0x56,0x34,0x12] + pmulld 0x12345678,%xmm5 + +// CHECK: pmulld %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x40,0xed] + pmulld %xmm5,%xmm5 + +// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0xac,0xcb,0xef,0xbe,0xad,0xde] + ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: ptest 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0x2d,0x45,0x00,0x00,0x00] + ptest 0x45,%xmm5 + +// CHECK: ptest 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0x2d,0xed,0x7e,0x00,0x00] + ptest 0x7eed,%xmm5 + +// CHECK: ptest 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0x2d,0xfe,0xca,0xbe,0xba] + ptest 0xbabecafe,%xmm5 + +// CHECK: ptest 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0x2d,0x78,0x56,0x34,0x12] + ptest 0x12345678,%xmm5 + +// CHECK: ptest %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x17,0xed] + ptest %xmm5,%xmm5 + +// CHECK: pcmpgtq 3735928559(%ebx,%ecx,8), %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0xac,0xcb,0xef,0xbe,0xad,0xde] + pcmpgtq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + +// CHECK: pcmpgtq 69, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0x2d,0x45,0x00,0x00,0x00] + pcmpgtq 0x45,%xmm5 + +// CHECK: pcmpgtq 32493, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0x2d,0xed,0x7e,0x00,0x00] + pcmpgtq 0x7eed,%xmm5 + +// CHECK: pcmpgtq 3133065982, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0x2d,0xfe,0xca,0xbe,0xba] + pcmpgtq 0xbabecafe,%xmm5 + +// CHECK: pcmpgtq 305419896, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0x2d,0x78,0x56,0x34,0x12] + pcmpgtq 0x12345678,%xmm5 + +// CHECK: pcmpgtq %xmm5, %xmm5 +// CHECK: encoding: [0x66,0x0f,0x38,0x37,0xed] + pcmpgtq %xmm5,%xmm5 diff --git a/test/MC/AsmParser/X86/x86_32-new-encoder.s b/test/MC/AsmParser/X86/x86_32-new-encoder.s new file mode 100644 index 0000000..6fd0cbb --- /dev/null +++ b/test/MC/AsmParser/X86/x86_32-new-encoder.s @@ -0,0 +1,41 @@ +// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s + + lfence +// CHECK: lfence +// CHECK: encoding: [0x0f,0xae,0xe8] + mfence +// CHECK: mfence +// CHECK: encoding: [0x0f,0xae,0xf0] + monitor +// CHECK: monitor +// CHECK: encoding: [0x0f,0x01,0xc8] + mwait +// CHECK: mwait +// CHECK: encoding: [0x0f,0x01,0xc9] + + vmcall +// CHECK: vmcall +// CHECK: encoding: [0x0f,0x01,0xc1] + vmlaunch +// CHECK: vmlaunch +// CHECK: encoding: [0x0f,0x01,0xc2] + vmresume +// CHECK: vmresume +// CHECK: encoding: [0x0f,0x01,0xc3] + vmxoff +// CHECK: vmxoff +// CHECK: encoding: [0x0f,0x01,0xc4] + swapgs +// CHECK: swapgs +// CHECK: encoding: [0x0f,0x01,0xf8] + +rdtscp +// CHECK: rdtscp +// CHECK: encoding: [0x0f,0x01,0xf9] + + +// CHECK: movl %eax, 16(%ebp) # encoding: [0x89,0x45,0x10] + movl %eax, 16(%ebp) +// CHECK: movl %eax, -16(%ebp) # encoding: [0x89,0x45,0xf0] + movl %eax, -16(%ebp) + diff --git a/test/MC/AsmParser/X86/x86_64-new-encoder.s b/test/MC/AsmParser/X86/x86_64-new-encoder.s new file mode 100644 index 0000000..56ec0b3 --- /dev/null +++ b/test/MC/AsmParser/X86/x86_64-new-encoder.s @@ -0,0 +1,26 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s + +movl foo(%rip), %eax +// CHECK: movl foo(%rip), %eax +// CHECK: encoding: [0x8b,0x05,A,A,A,A] +// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte + +movb $12, foo(%rip) +// CHECK: movb $12, foo(%rip) +// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] +// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte + +movw $12, foo(%rip) +// CHECK: movw $12, foo(%rip) +// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] +// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte + +movl $12, foo(%rip) +// CHECK: movl $12, foo(%rip) +// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] +// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte + +movq $12, foo(%rip) +// CHECK: movq $12, foo(%rip) +// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] +// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte diff --git a/test/MC/AsmParser/X86/x86_instructions.s b/test/MC/AsmParser/X86/x86_instructions.s index ed806ee..b558c2e 100644 --- a/test/MC/AsmParser/X86/x86_instructions.s +++ b/test/MC/AsmParser/X86/x86_instructions.s @@ -1,5 +1,3 @@ -// FIXME: Switch back to FileCheck once we print actual instructions - // RUN: llvm-mc -triple x86_64-unknown-unknown %s | FileCheck %s // CHECK: subb %al, %al @@ -16,6 +14,12 @@ movl %eax, 10(%ebp, %ebx, 4) // CHECK: movl %eax, 10(,%ebx,4) movl %eax, 10(, %ebx, 4) + +// CHECK: movl 0, %eax + movl 0, %eax +// CHECK: movl $0, %eax + movl $0, %eax + // CHECK: ret ret @@ -58,3 +62,84 @@ // FIXME: Check that this matches the correct instruction. // CHECK: shldl %cl, %eax, %ebx shldl %cl, %eax, %ebx + +// CHECK: shll $2, %eax + shll $2, %eax + +// CHECK: shll $2, %eax + sall $2, %eax + +// CHECK: rep +// CHECK: insb + rep;insb + +// CHECK: rep +// CHECK: outsb + rep;outsb + +// CHECK: rep +// CHECK: movsb + rep;movsb + +// CHECK: rep +// CHECK: lodsb + rep;lodsb + +// CHECK: rep +// CHECK: stosb + rep;stosb + +// NOTE: repz and repe have the same opcode as rep +// CHECK: rep +// CHECK: cmpsb + repz;cmpsb + +// NOTE: repnz has the same opcode as repne +// CHECK: repne +// CHECK: cmpsb + repnz;cmpsb + +// NOTE: repe and repz have the same opcode as rep +// CHECK: rep +// CHECK: scasb + repe;scasb + +// CHECK: repne +// CHECK: scasb + repne;scasb + +// CHECK: lock +// CHECK: cmpxchgb %al, (%ebx) + lock;cmpxchgb %al, 0(%ebx) + +// CHECK: cs +// CHECK: movb (%eax), %al + cs;movb 0(%eax), %al + +// CHECK: ss +// CHECK: movb (%eax), %al + ss;movb 0(%eax), %al + +// CHECK: ds +// CHECK: movb (%eax), %al + ds;movb 0(%eax), %al + +// CHECK: es +// CHECK: movb (%eax), %al + es;movb 0(%eax), %al + +// CHECK: fs +// CHECK: movb (%eax), %al + fs;movb 0(%eax), %al + +// CHECK: gs +// CHECK: movb (%eax), %al + gs;movb 0(%eax), %al + +// CHECK: fadd %st(0) +// CHECK: fadd %st(1) +// CHECK: fadd %st(7) + +fadd %st(0) +fadd %st(1) +fadd %st(7) diff --git a/test/MC/AsmParser/X86/x86_operands.s b/test/MC/AsmParser/X86/x86_operands.s index 433c9bf..edddd1f 100644 --- a/test/MC/AsmParser/X86/x86_operands.s +++ b/test/MC/AsmParser/X86/x86_operands.s @@ -5,28 +5,28 @@ # Immediates # CHECK: addl $1, %eax addl $1, %eax -# CHECK: addl $1+2, %eax +# CHECK: addl $3, %eax addl $(1+2), %eax # CHECK: addl $a, %eax addl $a, %eax -# CHECK: addl $1+2, %eax +# CHECK: addl $3, %eax addl $1 + 2, %eax # Disambiguation - # FIXME: Add back when we can match this. - #addl $1, 4+4 - # FIXME: Add back when we can match this. - #addl $1, (4+4) -# CHECK: addl $1, 4+4(%eax) +# CHECK: addl $1, 8 + addl $1, 4+4 +# CHECK: addl $1, 8 + addl $1, (4+4) +# CHECK: addl $1, 8(%eax) addl $1, 4+4(%eax) -# CHECK: addl $1, 4+4(%eax) +# CHECK: addl $1, 8(%eax) addl $1, (4+4)(%eax) # CHECK: addl $1, 8(%eax) addl $1, 8(%eax) -# CHECK: addl $1, 0(%eax) +# CHECK: addl $1, (%eax) addl $1, (%eax) -# CHECK: addl $1, 4+4(,%eax) +# CHECK: addl $1, 8(,%eax) addl $1, (4+4)(,%eax) # Indirect Memory Operands diff --git a/test/MC/AsmParser/conditional_asm.s b/test/MC/AsmParser/conditional_asm.s index b8a514f..f619ef9 100644 --- a/test/MC/AsmParser/conditional_asm.s +++ b/test/MC/AsmParser/conditional_asm.s @@ -1,6 +1,6 @@ # RUN: llvm-mc -triple i386-unknown-unknown %s -I %p | FileCheck %s -# CHECK: .byte 1+1 +# CHECK: .byte 2 .if 1+2 .if 1-1 .byte 1 diff --git a/test/MC/AsmParser/directive_file.s b/test/MC/AsmParser/directive_file.s index ec0b954..3160d5c 100644 --- a/test/MC/AsmParser/directive_file.s +++ b/test/MC/AsmParser/directive_file.s @@ -1,5 +1,8 @@ -# RUN: llvm-mc -triple i386-unknown-unknown %s -# FIXME: Actually test the output. +# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s .file "hello" .file 1 "world" + +# CHECK: .file "hello" +# CHECK: .file 1 "world" + diff --git a/test/MC/AsmParser/exprs.s b/test/MC/AsmParser/exprs.s index 5fa4a37..62b11c2 100644 --- a/test/MC/AsmParser/exprs.s +++ b/test/MC/AsmParser/exprs.s @@ -60,3 +60,4 @@ n: nop + movw $8, (42)+66(%eax) diff --git a/test/MC/AsmParser/labels.s b/test/MC/AsmParser/labels.s index 456d61f..3bc7e63 100644 --- a/test/MC/AsmParser/labels.s +++ b/test/MC/AsmParser/labels.s @@ -21,7 +21,7 @@ foo: // CHECK: b$c = 10 "b$c" = 10 // CHECK: addl $10, %eax - addl "b$c", %eax + addl $"b$c", %eax // CHECK: "a 0" = 11 .set "a 0", 11 diff --git a/test/MC/Disassembler/simple-tests.txt b/test/MC/Disassembler/simple-tests.txt index 1e3249f..11c077d 100644 --- a/test/MC/Disassembler/simple-tests.txt +++ b/test/MC/Disassembler/simple-tests.txt @@ -13,3 +13,32 @@ # CHECK: callq -1234 0xe8 0x2e 0xfb 0xff 0xff +# CHECK: lfence +0x0f 0xae 0xe8 + +# CHECK: mfence +0x0f 0xae 0xf0 + +# CHECK: monitor +0x0f 0x01 0xc8 + +# CHECK: mwait +0x0f 0x01 0xc9 + +# CHECK: vmcall +0x0f 0x01 0xc1 + +# CHECK: vmlaunch +0x0f 0x01 0xc2 + +# CHECK: vmresume +0x0f 0x01 0xc3 + +# CHECK: vmxoff +0x0f 0x01 0xc4 + +# CHECK: swapgs +0x0f 0x01 0xf8 + +# CHECK: rdtscp +0x0f 0x01 0xf9
\ No newline at end of file diff --git a/test/MC/MachO/Darwin/dg.exp b/test/MC/MachO/Darwin/dg.exp new file mode 100644 index 0000000..0f34b63 --- /dev/null +++ b/test/MC/MachO/Darwin/dg.exp @@ -0,0 +1,5 @@ +load_lib llvm.exp + +if { [llvm_supports_darwin_and_target X86] } { + RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{s}]] +} diff --git a/test/MC/MachO/Darwin/x86_32_diff_as.s b/test/MC/MachO/Darwin/x86_32_diff_as.s new file mode 100644 index 0000000..dd5fb55 --- /dev/null +++ b/test/MC/MachO/Darwin/x86_32_diff_as.s @@ -0,0 +1,550 @@ +// Validate that we can assemble this file exactly like the platform +// assembler. +// +// RUN: llvm-mc -filetype=obj -triple i386-unknown-unknown -o %t.mc.o %s +// RUN: as -arch i386 -o %t.as.o %s +// RUN: diff %t.mc.o %t.as.o + + movb $0x7f,0xdeadbeef(%ebx,%ecx,8) + movw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + movl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx + movswl 0xdeadbeef(%ebx,%ecx,8),%ecx + movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx + movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx + pushl 0xdeadbeef(%ebx,%ecx,8) + popl 0xdeadbeef(%ebx,%ecx,8) + lahf + sahf + addb $0xfe,0xdeadbeef(%ebx,%ecx,8) + addb $0x7f,0xdeadbeef(%ebx,%ecx,8) + addw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + addl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + incl 0xdeadbeef(%ebx,%ecx,8) + subb $0xfe,0xdeadbeef(%ebx,%ecx,8) + subb $0x7f,0xdeadbeef(%ebx,%ecx,8) + subw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + subl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + decl 0xdeadbeef(%ebx,%ecx,8) + sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8) + cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8) + cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + testb $0x7f,0xdeadbeef(%ebx,%ecx,8) + testw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + testl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + andb $0xfe,0xdeadbeef(%ebx,%ecx,8) + andb $0x7f,0xdeadbeef(%ebx,%ecx,8) + andw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + andl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + orb $0xfe,0xdeadbeef(%ebx,%ecx,8) + orb $0x7f,0xdeadbeef(%ebx,%ecx,8) + orw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + orl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + xorb $0xfe,0xdeadbeef(%ebx,%ecx,8) + xorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + adcb $0xfe,0xdeadbeef(%ebx,%ecx,8) + adcb $0x7f,0xdeadbeef(%ebx,%ecx,8) + adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8) + adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8) + adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8) + negl 0xdeadbeef(%ebx,%ecx,8) + notl 0xdeadbeef(%ebx,%ecx,8) + cbtw + cwtl + cwtd + cltd + mull 0xdeadbeef(%ebx,%ecx,8) + imull 0xdeadbeef(%ebx,%ecx,8) + divl 0xdeadbeef(%ebx,%ecx,8) + idivl 0xdeadbeef(%ebx,%ecx,8) + roll $0,0xdeadbeef(%ebx,%ecx,8) + rolb $0x7f,0xdeadbeef(%ebx,%ecx,8) + roll 0xdeadbeef(%ebx,%ecx,8) + rorl $0,0xdeadbeef(%ebx,%ecx,8) + rorb $0x7f,0xdeadbeef(%ebx,%ecx,8) + rorl 0xdeadbeef(%ebx,%ecx,8) + shll $0,0xdeadbeef(%ebx,%ecx,8) + shlb $0x7f,0xdeadbeef(%ebx,%ecx,8) + shll 0xdeadbeef(%ebx,%ecx,8) + shrl $0,0xdeadbeef(%ebx,%ecx,8) + shrb $0x7f,0xdeadbeef(%ebx,%ecx,8) + shrl 0xdeadbeef(%ebx,%ecx,8) + sarl $0,0xdeadbeef(%ebx,%ecx,8) + sarb $0x7f,0xdeadbeef(%ebx,%ecx,8) + sarl 0xdeadbeef(%ebx,%ecx,8) + call *%ecx + call *0xdeadbeef(%ebx,%ecx,8) + call *0xdeadbeef(%ebx,%ecx,8) + jmp *0xdeadbeef(%ebx,%ecx,8) + jmp *0xdeadbeef(%ebx,%ecx,8) + ljmpl *0xdeadbeef(%ebx,%ecx,8) + lret + leave + seto %bl + seto 0xdeadbeef(%ebx,%ecx,8) + setno %bl + setno 0xdeadbeef(%ebx,%ecx,8) + setb %bl + setb 0xdeadbeef(%ebx,%ecx,8) + setae %bl + setae 0xdeadbeef(%ebx,%ecx,8) + sete %bl + sete 0xdeadbeef(%ebx,%ecx,8) + setne %bl + setne 0xdeadbeef(%ebx,%ecx,8) + setbe %bl + setbe 0xdeadbeef(%ebx,%ecx,8) + seta %bl + seta 0xdeadbeef(%ebx,%ecx,8) + sets %bl + sets 0xdeadbeef(%ebx,%ecx,8) + setns %bl + setns 0xdeadbeef(%ebx,%ecx,8) + setp %bl + setp 0xdeadbeef(%ebx,%ecx,8) + setnp %bl + setnp 0xdeadbeef(%ebx,%ecx,8) + setl %bl + setl 0xdeadbeef(%ebx,%ecx,8) + setge %bl + setge 0xdeadbeef(%ebx,%ecx,8) + setle %bl + setle 0xdeadbeef(%ebx,%ecx,8) + setg %bl + setg 0xdeadbeef(%ebx,%ecx,8) + nopl 0xdeadbeef(%ebx,%ecx,8) + nop + fldl 0xdeadbeef(%ebx,%ecx,8) + fildl 0xdeadbeef(%ebx,%ecx,8) + fildll 0xdeadbeef(%ebx,%ecx,8) + fldt 0xdeadbeef(%ebx,%ecx,8) + fbld 0xdeadbeef(%ebx,%ecx,8) + fstl 0xdeadbeef(%ebx,%ecx,8) + fistl 0xdeadbeef(%ebx,%ecx,8) + fstpl 0xdeadbeef(%ebx,%ecx,8) + fistpl 0xdeadbeef(%ebx,%ecx,8) + fistpll 0xdeadbeef(%ebx,%ecx,8) + fstpt 0xdeadbeef(%ebx,%ecx,8) + fbstp 0xdeadbeef(%ebx,%ecx,8) + ficoml 0xdeadbeef(%ebx,%ecx,8) + ficompl 0xdeadbeef(%ebx,%ecx,8) + fucompp + ftst + fld1 + fldz + faddl 0xdeadbeef(%ebx,%ecx,8) + fiaddl 0xdeadbeef(%ebx,%ecx,8) + fsubl 0xdeadbeef(%ebx,%ecx,8) + fisubl 0xdeadbeef(%ebx,%ecx,8) + fsubrl 0xdeadbeef(%ebx,%ecx,8) + fisubrl 0xdeadbeef(%ebx,%ecx,8) + fmull 0xdeadbeef(%ebx,%ecx,8) + fimull 0xdeadbeef(%ebx,%ecx,8) + fdivl 0xdeadbeef(%ebx,%ecx,8) + fidivl 0xdeadbeef(%ebx,%ecx,8) + fdivrl 0xdeadbeef(%ebx,%ecx,8) + fidivrl 0xdeadbeef(%ebx,%ecx,8) + fsqrt + fsin + fcos + fchs + fabs + fldcw 0xdeadbeef(%ebx,%ecx,8) + fnstcw 0xdeadbeef(%ebx,%ecx,8) + rdtsc + sysenter + sysexit + ud2 + movnti %ecx,0xdeadbeef(%ebx,%ecx,8) + clflush 0xdeadbeef(%ebx,%ecx,8) + emms + movd %ecx,%mm3 + movd 0xdeadbeef(%ebx,%ecx,8),%mm3 + movd %ecx,%xmm5 + movd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movd %xmm5,%ecx + movd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movq 0xdeadbeef(%ebx,%ecx,8),%mm3 + movq %mm3,%mm3 + movq %mm3,%mm3 + movq %xmm5,%xmm5 + movq %xmm5,%xmm5 + packssdw %mm3,%mm3 + packssdw %xmm5,%xmm5 + packsswb %mm3,%mm3 + packsswb %xmm5,%xmm5 + packuswb %mm3,%mm3 + packuswb %xmm5,%xmm5 + paddb %mm3,%mm3 + paddb %xmm5,%xmm5 + paddw %mm3,%mm3 + paddw %xmm5,%xmm5 + paddd %mm3,%mm3 + paddd %xmm5,%xmm5 + paddq %mm3,%mm3 + paddq %xmm5,%xmm5 + paddsb %mm3,%mm3 + paddsb %xmm5,%xmm5 + paddsw %mm3,%mm3 + paddsw %xmm5,%xmm5 + paddusb %mm3,%mm3 + paddusb %xmm5,%xmm5 + paddusw %mm3,%mm3 + paddusw %xmm5,%xmm5 + pand %mm3,%mm3 + pand %xmm5,%xmm5 + pandn %mm3,%mm3 + pandn %xmm5,%xmm5 + pcmpeqb %mm3,%mm3 + pcmpeqb %xmm5,%xmm5 + pcmpeqw %mm3,%mm3 + pcmpeqw %xmm5,%xmm5 + pcmpeqd %mm3,%mm3 + pcmpeqd %xmm5,%xmm5 + pcmpgtb %mm3,%mm3 + pcmpgtb %xmm5,%xmm5 + pcmpgtw %mm3,%mm3 + pcmpgtw %xmm5,%xmm5 + pcmpgtd %mm3,%mm3 + pcmpgtd %xmm5,%xmm5 + pmaddwd %mm3,%mm3 + pmaddwd %xmm5,%xmm5 + pmulhw %mm3,%mm3 + pmulhw %xmm5,%xmm5 + pmullw %mm3,%mm3 + pmullw %xmm5,%xmm5 + por %mm3,%mm3 + por %xmm5,%xmm5 + psllw %mm3,%mm3 + psllw %xmm5,%xmm5 + psllw $0x7f,%mm3 + psllw $0x7f,%xmm5 + pslld %mm3,%mm3 + pslld %xmm5,%xmm5 + pslld $0x7f,%mm3 + pslld $0x7f,%xmm5 + psllq %mm3,%mm3 + psllq %xmm5,%xmm5 + psllq $0x7f,%mm3 + psllq $0x7f,%xmm5 + psraw %mm3,%mm3 + psraw %xmm5,%xmm5 + psraw $0x7f,%mm3 + psraw $0x7f,%xmm5 + psrad %mm3,%mm3 + psrad %xmm5,%xmm5 + psrad $0x7f,%mm3 + psrad $0x7f,%xmm5 + psrlw %mm3,%mm3 + psrlw %xmm5,%xmm5 + psrlw $0x7f,%mm3 + psrlw $0x7f,%xmm5 + psrld %mm3,%mm3 + psrld %xmm5,%xmm5 + psrld $0x7f,%mm3 + psrld $0x7f,%xmm5 + psrlq %mm3,%mm3 + psrlq %xmm5,%xmm5 + psrlq $0x7f,%mm3 + psrlq $0x7f,%xmm5 + psubb %mm3,%mm3 + psubb %xmm5,%xmm5 + psubw %mm3,%mm3 + psubw %xmm5,%xmm5 + psubd %mm3,%mm3 + psubd %xmm5,%xmm5 + psubq %mm3,%mm3 + psubq %xmm5,%xmm5 + psubsb %mm3,%mm3 + psubsb %xmm5,%xmm5 + psubsw %mm3,%mm3 + psubsw %xmm5,%xmm5 + psubusb %mm3,%mm3 + psubusb %xmm5,%xmm5 + psubusw %mm3,%mm3 + psubusw %xmm5,%xmm5 + punpckhbw %mm3,%mm3 + punpckhbw %xmm5,%xmm5 + punpckhwd %mm3,%mm3 + punpckhwd %xmm5,%xmm5 + punpckhdq %mm3,%mm3 + punpckhdq %xmm5,%xmm5 + punpcklbw %mm3,%mm3 + punpcklbw %xmm5,%xmm5 + punpcklwd %mm3,%mm3 + punpcklwd %xmm5,%xmm5 + punpckldq %mm3,%mm3 + punpckldq %xmm5,%xmm5 + pxor %mm3,%mm3 + pxor %xmm5,%xmm5 + addps %xmm5,%xmm5 + addss %xmm5,%xmm5 + andnps %xmm5,%xmm5 + andps %xmm5,%xmm5 + cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtpi2ps %mm3,%xmm5 + cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + cvtps2pi %xmm5,%mm3 + cvtsi2ss %ecx,%xmm5 + cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + cvttps2pi %xmm5,%mm3 + cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx + cvttss2si %xmm5,%ecx + divps %xmm5,%xmm5 + divss %xmm5,%xmm5 + ldmxcsr 0xdeadbeef(%ebx,%ecx,8) + maskmovq %mm3,%mm3 + maxps %xmm5,%xmm5 + maxss %xmm5,%xmm5 + minps %xmm5,%xmm5 + minss %xmm5,%xmm5 + movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movaps %xmm5,%xmm5 + movaps %xmm5,0xdeadbeef(%ebx,%ecx,8) + movaps %xmm5,%xmm5 + movhlps %xmm5,%xmm5 + movhps %xmm5,0xdeadbeef(%ebx,%ecx,8) + movlhps %xmm5,%xmm5 + movlps %xmm5,0xdeadbeef(%ebx,%ecx,8) + movmskps %xmm5,%ecx + movntps %xmm5,0xdeadbeef(%ebx,%ecx,8) + movntq %mm3,0xdeadbeef(%ebx,%ecx,8) + movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8) + movss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movss %xmm5,%xmm5 + movss %xmm5,0xdeadbeef(%ebx,%ecx,8) + movss %xmm5,%xmm5 + movups 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movups %xmm5,%xmm5 + movups %xmm5,0xdeadbeef(%ebx,%ecx,8) + movups %xmm5,%xmm5 + mulps %xmm5,%xmm5 + mulss %xmm5,%xmm5 + orps %xmm5,%xmm5 + pavgb %mm3,%mm3 + pavgb %xmm5,%xmm5 + pavgw %mm3,%mm3 + pavgw %xmm5,%xmm5 + pmaxsw %mm3,%mm3 + pmaxsw %xmm5,%xmm5 + pmaxub %mm3,%mm3 + pmaxub %xmm5,%xmm5 + pminsw %mm3,%mm3 + pminsw %xmm5,%xmm5 + pminub %mm3,%mm3 + pminub %xmm5,%xmm5 + pmovmskb %mm3,%ecx + pmovmskb %xmm5,%ecx + pmulhuw %mm3,%mm3 + pmulhuw %xmm5,%xmm5 + prefetchnta 0xdeadbeef(%ebx,%ecx,8) + prefetcht0 0xdeadbeef(%ebx,%ecx,8) + prefetcht1 0xdeadbeef(%ebx,%ecx,8) + prefetcht2 0xdeadbeef(%ebx,%ecx,8) + psadbw %mm3,%mm3 + psadbw %xmm5,%xmm5 + rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + rcpps %xmm5,%xmm5 + rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + rcpss %xmm5,%xmm5 + rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + rsqrtps %xmm5,%xmm5 + rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + rsqrtss %xmm5,%xmm5 + sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + sqrtps %xmm5,%xmm5 + sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + sqrtss %xmm5,%xmm5 + stmxcsr 0xdeadbeef(%ebx,%ecx,8) + subps %xmm5,%xmm5 + subss %xmm5,%xmm5 + ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + ucomiss %xmm5,%xmm5 + unpckhps %xmm5,%xmm5 + unpcklps %xmm5,%xmm5 + xorps %xmm5,%xmm5 + addpd %xmm5,%xmm5 + addsd %xmm5,%xmm5 + andnpd %xmm5,%xmm5 + andpd %xmm5,%xmm5 + comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + comisd %xmm5,%xmm5 + cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtpi2pd %mm3,%xmm5 + cvtsi2sd %ecx,%xmm5 + cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + divpd %xmm5,%xmm5 + divsd %xmm5,%xmm5 + maxpd %xmm5,%xmm5 + maxsd %xmm5,%xmm5 + minpd %xmm5,%xmm5 + minsd %xmm5,%xmm5 + movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movapd %xmm5,%xmm5 + movapd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movapd %xmm5,%xmm5 + movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movmskpd %xmm5,%ecx + movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movsd %xmm5,%xmm5 + movsd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movsd %xmm5,%xmm5 + movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movupd %xmm5,%xmm5 + movupd %xmm5,0xdeadbeef(%ebx,%ecx,8) + movupd %xmm5,%xmm5 + mulpd %xmm5,%xmm5 + mulsd %xmm5,%xmm5 + orpd %xmm5,%xmm5 + sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + sqrtpd %xmm5,%xmm5 + sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + sqrtsd %xmm5,%xmm5 + subpd %xmm5,%xmm5 + subsd %xmm5,%xmm5 + ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + ucomisd %xmm5,%xmm5 + unpckhpd %xmm5,%xmm5 + unpcklpd %xmm5,%xmm5 + xorpd %xmm5,%xmm5 + cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtdq2pd %xmm5,%xmm5 + cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtpd2dq %xmm5,%xmm5 + cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtdq2ps %xmm5,%xmm5 + cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + cvtpd2pi %xmm5,%mm3 + cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtps2dq %xmm5,%xmm5 + cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtsd2ss %xmm5,%xmm5 + cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + cvtss2sd %xmm5,%xmm5 + cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3 + cvttpd2pi %xmm5,%mm3 + cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx + cvttsd2si %xmm5,%ecx + maskmovdqu %xmm5,%xmm5 + movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movdqa %xmm5,%xmm5 + movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8) + movdqa %xmm5,%xmm5 + movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8) + movdq2q %xmm5,%mm3 + movq2dq %mm3,%xmm5 + pmuludq %mm3,%mm3 + pmuludq %xmm5,%xmm5 + pslldq $0x7f,%xmm5 + psrldq $0x7f,%xmm5 + punpckhqdq %xmm5,%xmm5 + punpcklqdq %xmm5,%xmm5 + addsubpd %xmm5,%xmm5 + addsubps %xmm5,%xmm5 + haddpd %xmm5,%xmm5 + haddps %xmm5,%xmm5 + hsubpd %xmm5,%xmm5 + hsubps %xmm5,%xmm5 + lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movddup %xmm5,%xmm5 + movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movshdup %xmm5,%xmm5 + movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5 + movsldup %xmm5,%xmm5 + phaddw %mm3,%mm3 + phaddw %xmm5,%xmm5 + phaddd %mm3,%mm3 + phaddd %xmm5,%xmm5 + phaddsw %mm3,%mm3 + phaddsw %xmm5,%xmm5 + phsubw %mm3,%mm3 + phsubw %xmm5,%xmm5 + phsubd %mm3,%mm3 + phsubd %xmm5,%xmm5 + phsubsw %mm3,%mm3 + phsubsw %xmm5,%xmm5 + pmaddubsw %mm3,%mm3 + pmaddubsw %xmm5,%xmm5 + pmulhrsw %mm3,%mm3 + pmulhrsw %xmm5,%xmm5 + pshufb %mm3,%mm3 + pshufb %xmm5,%xmm5 + psignb %mm3,%mm3 + psignb %xmm5,%xmm5 + psignw %mm3,%mm3 + psignw %xmm5,%xmm5 + psignd %mm3,%mm3 + psignd %xmm5,%xmm5 + pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3 + pabsb %mm3,%mm3 + pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pabsb %xmm5,%xmm5 + pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3 + pabsw %mm3,%mm3 + pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pabsw %xmm5,%xmm5 + pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3 + pabsd %mm3,%mm3 + pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pabsd %xmm5,%xmm5 + femms + packusdw %xmm5,%xmm5 + pcmpeqq %xmm5,%xmm5 + phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + phminposuw %xmm5,%xmm5 + pmaxsb %xmm5,%xmm5 + pmaxsd %xmm5,%xmm5 + pmaxud %xmm5,%xmm5 + pmaxuw %xmm5,%xmm5 + pminsb %xmm5,%xmm5 + pminsd %xmm5,%xmm5 + pminud %xmm5,%xmm5 + pminuw %xmm5,%xmm5 + pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxbw %xmm5,%xmm5 + pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxbd %xmm5,%xmm5 + pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxbq %xmm5,%xmm5 + pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxwd %xmm5,%xmm5 + pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxwq %xmm5,%xmm5 + pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovsxdq %xmm5,%xmm5 + pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxbw %xmm5,%xmm5 + pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxbd %xmm5,%xmm5 + pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxbq %xmm5,%xmm5 + pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxwd %xmm5,%xmm5 + pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxwq %xmm5,%xmm5 + pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5 + pmovzxdq %xmm5,%xmm5 + pmuldq %xmm5,%xmm5 + pmulld %xmm5,%xmm5 + ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5 + ptest %xmm5,%xmm5 + pcmpgtq %xmm5,%xmm5 diff --git a/test/MC/MachO/section-flags.s b/test/MC/MachO/section-flags.s new file mode 100644 index 0000000..8ac1bbf --- /dev/null +++ b/test/MC/MachO/section-flags.s @@ -0,0 +1,14 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s +// +// CHECK: # Section 0 +// CHECK: 'section_name', '__text +// CHECK: 'flags', 0x80000000 +// CHECK: # Section 1 +// CHECK: 'section_name', '__data +// CHECK: 'flags', 0x400 + + .text + + .data +f0: + movl $0, %eax diff --git a/test/Other/2007-06-05-PassID.ll b/test/Other/2007-06-05-PassID.ll index 7a03544..2554b8b 100644 --- a/test/Other/2007-06-05-PassID.ll +++ b/test/Other/2007-06-05-PassID.ll @@ -1,4 +1,4 @@ -;RUN: opt < %s -analyze -dot-cfg-only -disable-output 2>/dev/null +;RUN: opt < %s -analyze -dot-cfg-only 2>/dev/null ;PR 1497 define void @foo() { diff --git a/test/Other/2007-06-28-PassManager.ll b/test/Other/2007-06-28-PassManager.ll index f162a40..0ed2759 100644 --- a/test/Other/2007-06-28-PassManager.ll +++ b/test/Other/2007-06-28-PassManager.ll @@ -1,6 +1,6 @@ -; RUN: opt < %s -analyze -inline -disable-output +; RUN: opt < %s -analyze -inline ; PR1526 -; RUN: opt < %s -analyze -indvars -disable-output +; RUN: opt < %s -analyze -indvars ; PR1539 define i32 @test1() { ret i32 0 diff --git a/test/Other/constant-fold-gep.ll b/test/Other/constant-fold-gep.ll new file mode 100644 index 0000000..2888b3d --- /dev/null +++ b/test/Other/constant-fold-gep.ll @@ -0,0 +1,428 @@ +; "PLAIN" - No optimizations. This tests the target-independent +; constant folder. +; RUN: opt -S -o - < %s | FileCheck --check-prefix=PLAIN %s + +; "OPT" - Optimizations but no targetdata. This tests target-independent +; folding in the optimizers. +; RUN: opt -S -o - -instcombine -globalopt < %s | FileCheck --check-prefix=OPT %s + +; "TO" - Optimizations and targetdata. This tests target-dependent +; folding in the optimizers. +; RUN: opt -S -o - -instcombine -globalopt -default-data-layout="e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" < %s | FileCheck --check-prefix=TO %s + +; "SCEV" - ScalarEvolution but no targetdata. +; RUN: opt -analyze -scalar-evolution < %s | FileCheck --check-prefix=SCEV %s + +; ScalarEvolution with targetdata isn't interesting on these testcases +; because ScalarEvolution doesn't attempt to duplicate all of instcombine's +; and the constant folders' folding. + +; PLAIN: %0 = type { i1, double } +; PLAIN: %1 = type { double, float, double, double } +; PLAIN: %2 = type { i1, i1* } +; PLAIN: %3 = type { i64, i64 } +; OPT: %0 = type { i1, double } +; OPT: %1 = type { double, float, double, double } +; OPT: %2 = type { i1, i1* } +; OPT: %3 = type { i64, i64 } + +; The automatic constant folder in opt does not have targetdata access, so +; it can't fold gep arithmetic, in general. However, the constant folder run +; from instcombine and global opt can use targetdata. + +; PLAIN: @G8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) +; PLAIN: @G1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) +; PLAIN: @F8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) +; PLAIN: @F1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) +; PLAIN: @H8 = global i8* getelementptr (i8* null, i32 -1) +; PLAIN: @H1 = global i1* getelementptr (i1* null, i32 -1) +; OPT: @G8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) +; OPT: @G1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) +; OPT: @F8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) +; OPT: @F1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) +; OPT: @H8 = global i8* getelementptr (i8* null, i32 -1) +; OPT: @H1 = global i1* getelementptr (i1* null, i32 -1) +; TO: @G8 = global i8* null +; TO: @G1 = global i1* null +; TO: @F8 = global i8* inttoptr (i64 -1 to i8*) +; TO: @F1 = global i1* inttoptr (i64 -1 to i1*) +; TO: @H8 = global i8* inttoptr (i64 -1 to i8*) +; TO: @H1 = global i1* inttoptr (i64 -1 to i1*) + +@G8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) +@G1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) +@F8 = global i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) +@F1 = global i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) +@H8 = global i8* getelementptr (i8* inttoptr (i32 0 to i8*), i32 -1) +@H1 = global i1* getelementptr (i1* inttoptr (i32 0 to i1*), i32 -1) + +; The target-independent folder should be able to do some clever +; simplifications on sizeof, alignof, and offsetof expressions. The +; target-dependent folder should fold these down to constants. + +; PLAIN: @a = constant i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2310) +; PLAIN: @b = constant i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; PLAIN: @c = constant i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2) +; PLAIN: @d = constant i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 11) +; PLAIN: @e = constant i64 ptrtoint (double* getelementptr (%1* null, i64 0, i32 2) to i64) +; PLAIN: @f = constant i64 1 +; PLAIN: @g = constant i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; PLAIN: @h = constant i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64) +; PLAIN: @i = constant i64 ptrtoint (i1** getelementptr (%2* null, i64 0, i32 1) to i64) +; OPT: @a = constant i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2310) +; OPT: @b = constant i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; OPT: @c = constant i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2) +; OPT: @d = constant i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 11) +; OPT: @e = constant i64 ptrtoint (double* getelementptr (%1* null, i64 0, i32 2) to i64) +; OPT: @f = constant i64 1 +; OPT: @g = constant i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; OPT: @h = constant i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64) +; OPT: @i = constant i64 ptrtoint (i1** getelementptr (%2* null, i64 0, i32 1) to i64) +; TO: @a = constant i64 18480 +; TO: @b = constant i64 8 +; TO: @c = constant i64 16 +; TO: @d = constant i64 88 +; TO: @e = constant i64 16 +; TO: @f = constant i64 1 +; TO: @g = constant i64 8 +; TO: @h = constant i64 8 +; TO: @i = constant i64 8 + +@a = constant i64 mul (i64 3, i64 mul (i64 ptrtoint ({[7 x double], [7 x double]}* getelementptr ({[7 x double], [7 x double]}* null, i64 11) to i64), i64 5)) +@b = constant i64 ptrtoint ([13 x double]* getelementptr ({i1, [13 x double]}* null, i64 0, i32 1) to i64) +@c = constant i64 ptrtoint (double* getelementptr ({double, double, double, double}* null, i64 0, i32 2) to i64) +@d = constant i64 ptrtoint (double* getelementptr ([13 x double]* null, i64 0, i32 11) to i64) +@e = constant i64 ptrtoint (double* getelementptr ({double, float, double, double}* null, i64 0, i32 2) to i64) +@f = constant i64 ptrtoint (<{ i16, i128 }>* getelementptr ({i1, <{ i16, i128 }>}* null, i64 0, i32 1) to i64) +@g = constant i64 ptrtoint ({double, double}* getelementptr ({i1, {double, double}}* null, i64 0, i32 1) to i64) +@h = constant i64 ptrtoint (double** getelementptr (double** null, i64 1) to i64) +@i = constant i64 ptrtoint (double** getelementptr ({i1, double*}* null, i64 0, i32 1) to i64) + +; The target-dependent folder should cast GEP indices to integer-sized pointers. + +; PLAIN: @M = constant i64* getelementptr (i64* null, i32 1) +; PLAIN: @N = constant i64* getelementptr (%3* null, i32 0, i32 1) +; PLAIN: @O = constant i64* getelementptr ([2 x i64]* null, i32 0, i32 1) +; OPT: @M = constant i64* getelementptr (i64* null, i32 1) +; OPT: @N = constant i64* getelementptr (%3* null, i32 0, i32 1) +; OPT: @O = constant i64* getelementptr ([2 x i64]* null, i32 0, i32 1) +; TO: @M = constant i64* inttoptr (i64 8 to i64*) +; TO: @N = constant i64* inttoptr (i64 8 to i64*) +; TO: @O = constant i64* inttoptr (i64 8 to i64*) + +@M = constant i64* getelementptr (i64 *null, i32 1) +@N = constant i64* getelementptr ({ i64, i64 } *null, i32 0, i32 1) +@O = constant i64* getelementptr ([2 x i64] *null, i32 0, i32 1) + +; Duplicate all of the above as function return values rather than +; global initializers. + +; PLAIN: define i8* @goo8() nounwind { +; PLAIN: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) to i8* +; PLAIN: ret i8* %t +; PLAIN: } +; PLAIN: define i1* @goo1() nounwind { +; PLAIN: %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) to i1* +; PLAIN: ret i1* %t +; PLAIN: } +; PLAIN: define i8* @foo8() nounwind { +; PLAIN: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) to i8* +; PLAIN: ret i8* %t +; PLAIN: } +; PLAIN: define i1* @foo1() nounwind { +; PLAIN: %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) to i1* +; PLAIN: ret i1* %t +; PLAIN: } +; PLAIN: define i8* @hoo8() nounwind { +; PLAIN: %t = bitcast i8* getelementptr (i8* null, i32 -1) to i8* +; PLAIN: ret i8* %t +; PLAIN: } +; PLAIN: define i1* @hoo1() nounwind { +; PLAIN: %t = bitcast i1* getelementptr (i1* null, i32 -1) to i1* +; PLAIN: ret i1* %t +; PLAIN: } +; OPT: define i8* @goo8() nounwind { +; OPT: ret i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) +; OPT: } +; OPT: define i1* @goo1() nounwind { +; OPT: ret i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) +; OPT: } +; OPT: define i8* @foo8() nounwind { +; OPT: ret i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) +; OPT: } +; OPT: define i1* @foo1() nounwind { +; OPT: ret i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) +; OPT: } +; OPT: define i8* @hoo8() nounwind { +; OPT: ret i8* getelementptr (i8* null, i32 -1) +; OPT: } +; OPT: define i1* @hoo1() nounwind { +; OPT: ret i1* getelementptr (i1* null, i32 -1) +; OPT: } +; TO: define i8* @goo8() nounwind { +; TO: ret i8* null +; TO: } +; TO: define i1* @goo1() nounwind { +; TO: ret i1* null +; TO: } +; TO: define i8* @foo8() nounwind { +; TO: ret i8* inttoptr (i64 -1 to i8*) +; TO: } +; TO: define i1* @foo1() nounwind { +; TO: ret i1* inttoptr (i64 -1 to i1*) +; TO: } +; TO: define i8* @hoo8() nounwind { +; TO: ret i8* inttoptr (i64 -1 to i8*) +; TO: } +; TO: define i1* @hoo1() nounwind { +; TO: ret i1* inttoptr (i64 -1 to i1*) +; TO: } +; SCEV: Classifying expressions for: @goo8 +; SCEV: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) to i8* +; SCEV: --> ((-1 * sizeof(i8)) + inttoptr (i32 1 to i8*)) +; SCEV: Classifying expressions for: @goo1 +; SCEV: %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) to i1* +; SCEV: --> ((-1 * sizeof(i1)) + inttoptr (i32 1 to i1*)) +; SCEV: Classifying expressions for: @foo8 +; SCEV: %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) to i8* +; SCEV: --> ((-2 * sizeof(i8)) + inttoptr (i32 1 to i8*)) +; SCEV: Classifying expressions for: @foo1 +; SCEV: %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) to i1* +; SCEV: --> ((-2 * sizeof(i1)) + inttoptr (i32 1 to i1*)) +; SCEV: Classifying expressions for: @hoo8 +; SCEV: --> (-1 * sizeof(i8)) +; SCEV: Classifying expressions for: @hoo1 +; SCEV: --> (-1 * sizeof(i1)) + +define i8* @goo8() nounwind { + %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -1) to i8* + ret i8* %t +} +define i1* @goo1() nounwind { + %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -1) to i1* + ret i1* %t +} +define i8* @foo8() nounwind { + %t = bitcast i8* getelementptr (i8* inttoptr (i32 1 to i8*), i32 -2) to i8* + ret i8* %t +} +define i1* @foo1() nounwind { + %t = bitcast i1* getelementptr (i1* inttoptr (i32 1 to i1*), i32 -2) to i1* + ret i1* %t +} +define i8* @hoo8() nounwind { + %t = bitcast i8* getelementptr (i8* inttoptr (i32 0 to i8*), i32 -1) to i8* + ret i8* %t +} +define i1* @hoo1() nounwind { + %t = bitcast i1* getelementptr (i1* inttoptr (i32 0 to i1*), i32 -1) to i1* + ret i1* %t +} + +; PLAIN: define i64 @fa() nounwind { +; PLAIN: %t = bitcast i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2310) to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fb() nounwind { +; PLAIN: %t = bitcast i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fc() nounwind { +; PLAIN: %t = bitcast i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2) to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fd() nounwind { +; PLAIN: %t = bitcast i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 11) to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fe() nounwind { +; PLAIN: %t = bitcast i64 ptrtoint (double* getelementptr (%1* null, i64 0, i32 2) to i64) to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @ff() nounwind { +; PLAIN: %t = bitcast i64 1 to i64 +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fg() nounwind { +; PLAIN: %t = bitcast i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fh() nounwind { +; PLAIN: %t = bitcast i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64) +; PLAIN: ret i64 %t +; PLAIN: } +; PLAIN: define i64 @fi() nounwind { +; PLAIN: %t = bitcast i64 ptrtoint (i1** getelementptr (%2* null, i64 0, i32 1) to i64) +; PLAIN: ret i64 %t +; PLAIN: } +; OPT: define i64 @fa() nounwind { +; OPT: ret i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2310) +; OPT: } +; OPT: define i64 @fb() nounwind { +; OPT: ret i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; OPT: } +; OPT: define i64 @fc() nounwind { +; OPT: ret i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2) +; OPT: } +; OPT: define i64 @fd() nounwind { +; OPT: ret i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 11) +; OPT: } +; OPT: define i64 @fe() nounwind { +; OPT: ret i64 ptrtoint (double* getelementptr (%1* null, i64 0, i32 2) to i64) +; OPT: } +; OPT: define i64 @ff() nounwind { +; OPT: ret i64 1 +; OPT: } +; OPT: define i64 @fg() nounwind { +; OPT: ret i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; OPT: } +; OPT: define i64 @fh() nounwind { +; OPT: ret i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64) +; OPT: } +; OPT: define i64 @fi() nounwind { +; OPT: ret i64 ptrtoint (i1** getelementptr (%2* null, i64 0, i32 1) to i64) +; OPT: } +; TO: define i64 @fa() nounwind { +; TO: ret i64 18480 +; TO: } +; TO: define i64 @fb() nounwind { +; TO: ret i64 8 +; TO: } +; TO: define i64 @fc() nounwind { +; TO: ret i64 16 +; TO: } +; TO: define i64 @fd() nounwind { +; TO: ret i64 88 +; TO: } +; TO: define i64 @fe() nounwind { +; TO: ret i64 16 +; TO: } +; TO: define i64 @ff() nounwind { +; TO: ret i64 1 +; TO: } +; TO: define i64 @fg() nounwind { +; TO: ret i64 8 +; TO: } +; TO: define i64 @fh() nounwind { +; TO: ret i64 8 +; TO: } +; TO: define i64 @fi() nounwind { +; TO: ret i64 8 +; TO: } +; SCEV: Classifying expressions for: @fa +; SCEV: %t = bitcast i64 mul (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2310) to i64 +; SCEV: --> (2310 * sizeof(double)) +; SCEV: Classifying expressions for: @fb +; SCEV: %t = bitcast i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) to i64 +; SCEV: --> alignof(double) +; SCEV: Classifying expressions for: @fc +; SCEV: %t = bitcast i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 2) to i64 +; SCEV: --> (2 * sizeof(double)) +; SCEV: Classifying expressions for: @fd +; SCEV: %t = bitcast i64 mul nuw (i64 ptrtoint (double* getelementptr (double* null, i32 1) to i64), i64 11) to i64 +; SCEV: --> (11 * sizeof(double)) +; SCEV: Classifying expressions for: @fe +; SCEV: %t = bitcast i64 ptrtoint (double* getelementptr (%1* null, i64 0, i32 2) to i64) to i64 +; SCEV: --> offsetof({ double, float, double, double }, 2) +; SCEV: Classifying expressions for: @ff +; SCEV: %t = bitcast i64 1 to i64 +; SCEV: --> 1 +; SCEV: Classifying expressions for: @fg +; SCEV: %t = bitcast i64 ptrtoint (double* getelementptr (%0* null, i64 0, i32 1) to i64) +; SCEV: --> alignof(double) +; SCEV: Classifying expressions for: @fh +; SCEV: %t = bitcast i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64) +; SCEV: --> sizeof(i1*) +; SCEV: Classifying expressions for: @fi +; SCEV: %t = bitcast i64 ptrtoint (i1** getelementptr (%2* null, i64 0, i32 1) to i64) +; SCEV: --> alignof(i1*) + +define i64 @fa() nounwind { + %t = bitcast i64 mul (i64 3, i64 mul (i64 ptrtoint ({[7 x double], [7 x double]}* getelementptr ({[7 x double], [7 x double]}* null, i64 11) to i64), i64 5)) to i64 + ret i64 %t +} +define i64 @fb() nounwind { + %t = bitcast i64 ptrtoint ([13 x double]* getelementptr ({i1, [13 x double]}* null, i64 0, i32 1) to i64) to i64 + ret i64 %t +} +define i64 @fc() nounwind { + %t = bitcast i64 ptrtoint (double* getelementptr ({double, double, double, double}* null, i64 0, i32 2) to i64) to i64 + ret i64 %t +} +define i64 @fd() nounwind { + %t = bitcast i64 ptrtoint (double* getelementptr ([13 x double]* null, i64 0, i32 11) to i64) to i64 + ret i64 %t +} +define i64 @fe() nounwind { + %t = bitcast i64 ptrtoint (double* getelementptr ({double, float, double, double}* null, i64 0, i32 2) to i64) to i64 + ret i64 %t +} +define i64 @ff() nounwind { + %t = bitcast i64 ptrtoint (<{ i16, i128 }>* getelementptr ({i1, <{ i16, i128 }>}* null, i64 0, i32 1) to i64) to i64 + ret i64 %t +} +define i64 @fg() nounwind { + %t = bitcast i64 ptrtoint ({double, double}* getelementptr ({i1, {double, double}}* null, i64 0, i32 1) to i64) to i64 + ret i64 %t +} +define i64 @fh() nounwind { + %t = bitcast i64 ptrtoint (double** getelementptr (double** null, i32 1) to i64) to i64 + ret i64 %t +} +define i64 @fi() nounwind { + %t = bitcast i64 ptrtoint (double** getelementptr ({i1, double*}* null, i64 0, i32 1) to i64) to i64 + ret i64 %t +} + +; PLAIN: define i64* @fM() nounwind { +; PLAIN: %t = bitcast i64* getelementptr (i64* null, i32 1) to i64* +; PLAIN: ret i64* %t +; PLAIN: } +; PLAIN: define i64* @fN() nounwind { +; PLAIN: %t = bitcast i64* getelementptr (%3* null, i32 0, i32 1) to i64* +; PLAIN: ret i64* %t +; PLAIN: } +; PLAIN: define i64* @fO() nounwind { +; PLAIN: %t = bitcast i64* getelementptr ([2 x i64]* null, i32 0, i32 1) to i64* +; PLAIN: ret i64* %t +; PLAIN: } +; OPT: define i64* @fM() nounwind { +; OPT: ret i64* getelementptr (i64* null, i32 1) +; OPT: } +; OPT: define i64* @fN() nounwind { +; OPT: ret i64* getelementptr (%3* null, i32 0, i32 1) +; OPT: } +; OPT: define i64* @fO() nounwind { +; OPT: ret i64* getelementptr ([2 x i64]* null, i32 0, i32 1) +; OPT: } +; TO: define i64* @fM() nounwind { +; TO: ret i64* inttoptr (i64 8 to i64*) +; TO: } +; TO: define i64* @fN() nounwind { +; TO: ret i64* inttoptr (i64 8 to i64*) +; TO: } +; TO: define i64* @fO() nounwind { +; TO: ret i64* inttoptr (i64 8 to i64*) +; TO: } +; SCEV: Classifying expressions for: @fM +; SCEV: %t = bitcast i64* getelementptr (i64* null, i32 1) to i64* +; SCEV: --> sizeof(i64) +; SCEV: Classifying expressions for: @fN +; SCEV: %t = bitcast i64* getelementptr (%3* null, i32 0, i32 1) to i64* +; SCEV: --> sizeof(i64) +; SCEV: Classifying expressions for: @fO +; SCEV: %t = bitcast i64* getelementptr ([2 x i64]* null, i32 0, i32 1) to i64* +; SCEV: --> sizeof(i64) + +define i64* @fM() nounwind { + %t = bitcast i64* getelementptr (i64 *null, i32 1) to i64* + ret i64* %t +} +define i64* @fN() nounwind { + %t = bitcast i64* getelementptr ({ i64, i64 } *null, i32 0, i32 1) to i64* + ret i64* %t +} +define i64* @fO() nounwind { + %t = bitcast i64* getelementptr ([2 x i64] *null, i32 0, i32 1) to i64* + ret i64* %t +} diff --git a/test/Transforms/ConstProp/basictest.ll b/test/Transforms/ConstProp/basictest.ll index 2edc55d..14580c1 100644 --- a/test/Transforms/ConstProp/basictest.ll +++ b/test/Transforms/ConstProp/basictest.ll @@ -19,3 +19,15 @@ BB3: ret i32 %Ret } + +; PR6197 +define i1 @test2(i8* %f) nounwind { +entry: + %V = icmp ne i8* blockaddress(@test2, %bb), null + br label %bb +bb: + ret i1 %V + +; CHECK: @test2 +; CHECK: ret i1 true +} diff --git a/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll b/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll deleted file mode 100644 index cea18a0..0000000 --- a/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: opt < %s -constmerge -S | grep foo -; RUN: opt < %s -constmerge -S | grep bar - -; Don't merge constants in different sections. - -@G1 = internal constant i32 1, section "foo" ; <i32*> [#uses=1] -@G2 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] -@G3 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] - -define void @test(i32** %P1, i32** %P2, i32** %P3) { - store i32* @G1, i32** %P1 - store i32* @G2, i32** %P2 - store i32* @G3, i32** %P3 - ret void -} - diff --git a/test/Transforms/ConstantMerge/dont-merge.ll b/test/Transforms/ConstantMerge/dont-merge.ll new file mode 100644 index 0000000..877cf8d --- /dev/null +++ b/test/Transforms/ConstantMerge/dont-merge.ll @@ -0,0 +1,30 @@ +; RUN: opt < %s -constmerge -S | FileCheck %s + +; Don't merge constants with specified sections. + +@T1G1 = internal constant i32 1, section "foo" +@T1G2 = internal constant i32 1, section "bar" +@T1G3 = internal constant i32 1, section "bar" + +; CHECK: @T1G1 +; CHECK: @T1G2 +; CHECK: @T1G3 + +define void @test1(i32** %P1, i32** %P2, i32** %P3) { + store i32* @T1G1, i32** %P1 + store i32* @T1G2, i32** %P2 + store i32* @T1G3, i32** %P3 + ret void +} + +@T2a = internal constant i32 224 +@T2b = internal addrspace(30) constant i32 224 + +; CHECK: @T2a +; CHECK: @T2b + +define void @test2(i32** %P1, i32 addrspace(30)** %P2) { + store i32* @T2a, i32** %P1 + store i32 addrspace(30)* @T2b, i32 addrspace(30)** %P2 + ret void +} diff --git a/test/Transforms/DeadStoreElimination/crash.ll b/test/Transforms/DeadStoreElimination/crash.ll index f89f8f5..6d8ba71 100644 --- a/test/Transforms/DeadStoreElimination/crash.ll +++ b/test/Transforms/DeadStoreElimination/crash.ll @@ -41,3 +41,17 @@ bb14: ; preds = %bb4 } declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind + + +; rdar://7635088 +define i32 @test3() { +entry: + ret i32 0 + +dead: + %P2 = getelementptr i32 *%P2, i32 52 + %Q2 = getelementptr i32 *%Q2, i32 52 + store i32 4, i32* %P2 + store i32 4, i32* %Q2 + br label %dead +}
\ No newline at end of file diff --git a/test/Transforms/GVN/crash.ll b/test/Transforms/GVN/crash.ll index 9167b6e..4a3aa1c 100644 --- a/test/Transforms/GVN/crash.ll +++ b/test/Transforms/GVN/crash.ll @@ -5,7 +5,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin10.0" -define i32* @peel_to_type(i8* %name, i32 %namelen, i32* %o, i32 %expected_type) nounwind ssp { +define i32* @test1(i8* %name, i32 %namelen, i32* %o, i32 %expected_type) nounwind ssp { entry: br i1 undef, label %if.end13, label %while.body.preheader @@ -69,7 +69,7 @@ declare i32* @parse_object(i8*) @attribute_tables = external global [4 x %struct.attribute_spec*] ; <[4 x %struct.attribute_spec*]*> [#uses=2] -define void @decl_attributes() nounwind { +define void @test2() nounwind { entry: br label %bb69.i @@ -99,7 +99,7 @@ bb66.i: ; Unreachable @g = external global i64, align 8 -define i32* @foo() { +define i32* @test3() { do.end17.i: %tmp18.i = load i7** undef %tmp1 = bitcast i7* %tmp18.i to i8* @@ -135,3 +135,19 @@ do.body57.i: declare i32 @foo2() + + +define i32 @test4() { +entry: + ret i32 0 + +dead: + %P2 = getelementptr i32 *%P2, i32 52 + %Q2 = getelementptr i32 *%Q2, i32 52 + store i32 4, i32* %P2 + %A = load i32* %Q2 + br i1 true, label %dead, label %dead2 + +dead2: + ret i32 %A +} diff --git a/test/Transforms/GVN/load-pre-align.ll b/test/Transforms/GVN/load-pre-align.ll new file mode 100644 index 0000000..3a66c0b --- /dev/null +++ b/test/Transforms/GVN/load-pre-align.ll @@ -0,0 +1,44 @@ +; RUN: opt < %s -gvn -S | FileCheck %s + +target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32-n32" + +@p = external global i32 + +define arm_apcscc i32 @test(i32 %n) nounwind { +; CHECK: @test +entry: + br label %for.cond + +; loads aligned greater than the memory should not be moved past conditionals +; CHECK-NOT: load +; CHECK: br i1 + +for.cond: + %i.0 = phi i32 [ 0, %entry ], [ %indvar.next, %for.inc ] + %cmp = icmp slt i32 %i.0, %n + br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge + +for.cond.for.end_crit_edge: +; ...but PRE can still move the load out of for.end to here. +; CHECK: for.cond.for.end_crit_edge: +; CHECK-NEXT: load + br label %for.end + +for.body: + %tmp3 = load i32* @p, align 8 + %dec = add i32 %tmp3, -1 + store i32 %dec, i32* @p + %cmp6 = icmp slt i32 %dec, 0 + br i1 %cmp6, label %for.body.for.end_crit_edge, label %for.inc + +for.body.for.end_crit_edge: + br label %for.end + +for.inc: + %indvar.next = add i32 %i.0, 1 + br label %for.cond + +for.end: + %tmp9 = load i32* @p, align 8 + ret i32 %tmp9 +} diff --git a/test/Transforms/GVN/rle-nonlocal.ll b/test/Transforms/GVN/rle-nonlocal.ll index 51b8986..5c73dad 100644 --- a/test/Transforms/GVN/rle-nonlocal.ll +++ b/test/Transforms/GVN/rle-nonlocal.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -gvn -S | grep {%DEAD = phi i32. } +; RUN: opt < %s -gvn -S | FileCheck %s define i32 @main(i32** %p) { block1: @@ -13,7 +13,12 @@ block3: br label %block4 block4: +; CHECK-NOT: %existingPHI = phi +; CHECK: %DEAD = phi + %existingPHI = phi i32* [ %a, %block2 ], [ %b, %block3 ] %DEAD = load i32** %p %c = load i32* %DEAD - ret i32 %c + %d = load i32* %existingPHI + %e = add i32 %c, %d + ret i32 %e } diff --git a/test/Transforms/IndVarSimplify/addrec-gep.ll b/test/Transforms/IndVarSimplify/addrec-gep.ll index 9e42734..345f666 100644 --- a/test/Transforms/IndVarSimplify/addrec-gep.ll +++ b/test/Transforms/IndVarSimplify/addrec-gep.ll @@ -25,7 +25,7 @@ bb1: ; preds = %bb2, %bb.nph %j.01 = phi i64 [ %tmp9, %bb2 ], [ 0, %bb.nph ] ; <i64> [#uses=3] %tmp3 = add i64 %j.01, %tmp1 ; <i64> [#uses=1] %tmp4 = add i64 %j.01, %tmp2 ; <i64> [#uses=1] - %z0 = add i64 %tmp4, 5203 + %z0 = add i64 %tmp3, 5203 %tmp5 = getelementptr double* %p, i64 %z0 ; <double*> [#uses=1] %tmp6 = load double* %tmp5, align 8 ; <double> [#uses=1] %tmp7 = fdiv double %tmp6, 2.100000e+00 ; <double> [#uses=1] diff --git a/test/Transforms/IndVarSimplify/shrunk-constant.ll b/test/Transforms/IndVarSimplify/shrunk-constant.ll index 8003fd3..271f8ed 100644 --- a/test/Transforms/IndVarSimplify/shrunk-constant.ll +++ b/test/Transforms/IndVarSimplify/shrunk-constant.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -scalar-evolution -analyze -disable-output \ +; RUN: opt < %s -scalar-evolution -analyze \ ; RUN: | grep {\\--> (zext i4 {-7,+,-8}<%loop> to i32)} define fastcc void @foo() nounwind { diff --git a/test/Transforms/InstCombine/2007-03-27-PR1280.ll b/test/Transforms/InstCombine/2007-03-27-PR1280.ll deleted file mode 100644 index 7700c7d..0000000 --- a/test/Transforms/InstCombine/2007-03-27-PR1280.ll +++ /dev/null @@ -1,15 +0,0 @@ -; PR1280 - we should be able to reduce this function to a trunc/sext but it -; would involve using a bit width (24) that doesn't match a size that -; the back end can handle. This test makes sure that such a transform -; is not done. It should be removed when code gen supports "funny" -; bit widths. - -; RUN: opt < %s -instcombine -S | grep {add i49.*-8388608} - -define i49 @test5(i49 %x) { - ;; If we have ADD(XOR(AND(X, 0xFF), 0x80), 0xF..F80), it's a sext. - %X = and i49 %x, 16777215 ; 0x0000000ffffff - %tmp.2 = xor i49 %X, 8388608 ; 0x0000000800000 - %tmp.4 = add i49 %tmp.2, -8388608 ; 0x1FFFFFF800000 - ret i49 %tmp.4 -} diff --git a/test/Transforms/InstCombine/2010-01-28-NegativeSRem.ll b/test/Transforms/InstCombine/2010-01-28-NegativeSRem.ll new file mode 100644 index 0000000..4ab9bf0 --- /dev/null +++ b/test/Transforms/InstCombine/2010-01-28-NegativeSRem.ll @@ -0,0 +1,19 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s +; PR6165 + +define i32 @f() { +entry: + br label %BB1 + +BB1: ; preds = %BB1, %entry +; CHECK: BB1: + %x = phi i32 [ -29, %entry ], [ 0, %BB1 ] ; <i32> [#uses=2] + %rem = srem i32 %x, 2 ; <i32> [#uses=1] + %t = icmp eq i32 %rem, -1 ; <i1> [#uses=1] + br i1 %t, label %BB2, label %BB1 +; CHECK-NOT: br i1 false + +BB2: ; preds = %BB1 +; CHECK: BB2: + ret i32 %x +} diff --git a/test/Transforms/InstCombine/and2.ll b/test/Transforms/InstCombine/and2.ll index 0af9bfa..a5a6574 100644 --- a/test/Transforms/InstCombine/and2.ll +++ b/test/Transforms/InstCombine/and2.ll @@ -1,5 +1,4 @@ -; RUN: opt < %s -instcombine -S | not grep and - +; RUN: opt < %s -instcombine -S | FileCheck %s ; PR1738 define i1 @test1(double %X, double %Y) { @@ -7,6 +6,5 @@ define i1 @test1(double %X, double %Y) { %tmp13 = fcmp ord double %Y, 0.000000e+00 %bothcond = and i1 %tmp13, %tmp9 ret i1 %bothcond +; CHECK: fcmp ord double %Y, %X } - - diff --git a/test/Transforms/InstCombine/call.ll b/test/Transforms/InstCombine/call.ll index 05c063d..dd65b96 100644 --- a/test/Transforms/InstCombine/call.ll +++ b/test/Transforms/InstCombine/call.ll @@ -75,7 +75,7 @@ define i32 @test5() { declare i32 @test6a(i32) define i32 @test6() { - %X = call i32 bitcast (i32 (i32)* @test6a to i32 ()*)( ) ; <i32> [#uses=1] + %X = call i32 bitcast (i32 (i32)* @test6a to i32 ()*)( ) ret i32 %X ; CHECK: %X1 = call i32 @test6a(i32 0) ; CHECK: ret i32 %X1 @@ -96,3 +96,23 @@ define void @test7() { } +; rdar://7590304 +declare void @test8a() + +define i8* @test8() { + invoke arm_apcscc void @test8a() + to label %invoke.cont unwind label %try.handler + +invoke.cont: ; preds = %entry + unreachable + +try.handler: ; preds = %entry + ret i8* null +} + +; Don't turn this into "unreachable": the callee and caller don't agree in +; calling conv, but the implementation of test8a may actually end up using the +; right calling conv. +; CHECK: @test8() { +; CHECK-NEXT: invoke arm_apcscc void @test8a() + diff --git a/test/Transforms/InstCombine/crash.ll b/test/Transforms/InstCombine/crash.ll index 732a882..2faa539 100644 --- a/test/Transforms/InstCombine/crash.ll +++ b/test/Transforms/InstCombine/crash.ll @@ -204,3 +204,36 @@ declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind declare void @_ZSt9terminatev() declare void @_Unwind_Resume_or_Rethrow(i8*) + + + +; rdar://7590304 +define i8* @test10(i8* %self, i8* %tmp3) { +entry: + store i1 true, i1* undef + store i1 true, i1* undef + invoke arm_apcscc void @test10a() + to label %invoke.cont unwind label %try.handler ; <i8*> [#uses=0] + +invoke.cont: ; preds = %entry + unreachable + +try.handler: ; preds = %entry + ret i8* %self +} + +define void @test10a() { + ret void +} + + +; PR6193 +define i32 @test11(i32 %aMaskWidth, i8 %aStride) nounwind { +entry: + %conv41 = sext i8 %aStride to i32 + %neg = xor i32 %conv41, -1 + %and42 = and i32 %aMaskWidth, %neg + %and47 = and i32 130, %conv41 + %or = or i32 %and42, %and47 + ret i32 %or +} diff --git a/test/Transforms/InstCombine/getelementptr.ll b/test/Transforms/InstCombine/getelementptr.ll index de325f6..f0bee4e 100644 --- a/test/Transforms/InstCombine/getelementptr.ll +++ b/test/Transforms/InstCombine/getelementptr.ll @@ -246,7 +246,7 @@ bc0: store i32 0, i32* %tmp53 ret void ; CHECK: @test24 -; CHECK: store i32 0, i32* getelementptr (%"java/lang/StringBuffer"* null, i32 0, i32 1) +; CHECK: store i32 0, i32* getelementptr (%"java/lang/StringBuffer"* null, i64 0, i32 1) } define void @test25() { diff --git a/test/Transforms/InstCombine/icmp.ll b/test/Transforms/InstCombine/icmp.ll index 79fa220..c2234a1 100644 --- a/test/Transforms/InstCombine/icmp.ll +++ b/test/Transforms/InstCombine/icmp.ll @@ -112,3 +112,12 @@ define i1 @test11(i32 %x) { ; CHECK: ret i1 true } +; PR6195 +define i1 @test12(i1 %A) { + %S = select i1 %A, i64 -4294967295, i64 8589934591 + %B = icmp ne i64 bitcast (<2 x i32> <i32 1, i32 -1> to i64), %S + ret i1 %B +; CHECK: @test12 +; CHECK-NEXT: %B = select i1 +; CHECK-NEXT: ret i1 %B +} diff --git a/test/Transforms/InstCombine/intrinsics.ll b/test/Transforms/InstCombine/intrinsics.ll index c63475c..08dcfa7 100644 --- a/test/Transforms/InstCombine/intrinsics.ll +++ b/test/Transforms/InstCombine/intrinsics.ll @@ -144,3 +144,18 @@ entry: ; CHECK-NEXT: %pop.cmp = icmp eq i32 %b, 0 ; CHECK-NEXT: volatile store i1 %pop.cmp, i1* %c } + + +define i32 @cttz_simplify1(i32 %x) nounwind readnone ssp { + %tmp1 = tail call i32 @llvm.ctlz.i32(i32 %x) ; <i32> [#uses=1] + %shr3 = lshr i32 %tmp1, 5 ; <i32> [#uses=1] + ret i32 %shr3 + +; CHECK: @cttz_simplify1 +; CHECK: icmp eq i32 %x, 0 +; CHECK-NEXT: zext i1 +; CHECK-NEXT: ret i32 +} + +declare i32 @llvm.ctlz.i32(i32) nounwind readnone + diff --git a/test/Transforms/InstCombine/load-select.ll b/test/Transforms/InstCombine/load-select.ll new file mode 100644 index 0000000..f3d83dc --- /dev/null +++ b/test/Transforms/InstCombine/load-select.ll @@ -0,0 +1,16 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32-n32" + +@a = constant [2 x i32] [i32 3, i32 6] ; <[2 x i32]*> [#uses=2] + +define i32 @b(i32 %y) nounwind readonly { +; CHECK: @b +; CHECK-NOT: load +; CHECK: ret i32 +entry: + %0 = icmp eq i32 %y, 0 ; <i1> [#uses=1] + %storemerge = select i1 %0, i32* getelementptr inbounds ([2 x i32]* @a, i32 0, i32 1), i32* getelementptr inbounds ([2 x i32]* @a, i32 0, i32 0) ; <i32*> [#uses=1] + %1 = load i32* %storemerge, align 4 ; <i32> [#uses=1] + ret i32 %1 +} diff --git a/test/Transforms/InstCombine/logical-select.ll b/test/Transforms/InstCombine/logical-select.ll index ece8bc3..bb59817 100644 --- a/test/Transforms/InstCombine/logical-select.ll +++ b/test/Transforms/InstCombine/logical-select.ll @@ -1,7 +1,5 @@ -; RUN: opt < %s -instcombine -S > %t -; RUN: grep select %t | count 5 -; RUN: not grep and %t -; RUN: not grep or %t +; RUN: opt < %s -instcombine -S | FileCheck %s + define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %e = icmp slt i32 %a, %b @@ -11,6 +9,9 @@ define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %i = and i32 %d, %h %j = or i32 %g, %i ret i32 %j +; CHECK: %e = icmp slt i32 %a, %b +; CHECK: %j = select i1 %e, i32 %c, i32 %d +; CHECK: ret i32 %j } define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %e = icmp slt i32 %a, %b @@ -20,7 +21,11 @@ define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %i = and i32 %d, %h %j = or i32 %i, %g ret i32 %j +; CHECK: %e = icmp slt i32 %a, %b +; CHECK: %j = select i1 %e, i32 %c, i32 %d +; CHECK: ret i32 %j } + define i32 @goo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { entry: %0 = icmp slt i32 %a, %b @@ -30,6 +35,9 @@ entry: %2 = and i32 %not, %d %3 = or i32 %1, %2 ret i32 %3 +; CHECK: %0 = icmp slt i32 %a, %b +; CHECK: %1 = select i1 %0, i32 %c, i32 %d +; CHECK: ret i32 %1 } define i32 @poo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { entry: @@ -40,6 +48,9 @@ entry: %2 = and i32 %iftmp, %d %3 = or i32 %1, %2 ret i32 %3 +; CHECK: %0 = icmp slt i32 %a, %b +; CHECK: %1 = select i1 %0, i32 %c, i32 %d +; CHECK: ret i32 %1 } define i32 @par(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { @@ -51,4 +62,7 @@ entry: %2 = and i32 %not, %d %3 = or i32 %1, %2 ret i32 %3 +; CHECK: %0 = icmp slt i32 %a, %b +; CHECK: %1 = select i1 %0, i32 %c, i32 %d +; CHECK: ret i32 %1 } diff --git a/test/Transforms/InstCombine/objsize.ll b/test/Transforms/InstCombine/objsize.ll new file mode 100644 index 0000000..dbc7d31 --- /dev/null +++ b/test/Transforms/InstCombine/objsize.ll @@ -0,0 +1,75 @@ +; Test a pile of objectsize bounds checking. +; RUN: opt < %s -instcombine -S | FileCheck %s +; We need target data to get the sizes of the arrays and structures. +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" + +@a = private global [60 x i8] zeroinitializer, align 1 ; <[60 x i8]*> +@.str = private constant [8 x i8] c"abcdefg\00" ; <[8 x i8]*> + +define i32 @foo() nounwind { +; CHECK: @foo +; CHECK-NEXT: ret i32 60 + %1 = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false) + ret i32 %1 +} + +define i8* @bar() nounwind { +; CHECK: @bar +entry: + %retval = alloca i8* + %0 = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false) + %cmp = icmp ne i32 %0, -1 +; CHECK: br i1 true + br i1 %cmp, label %cond.true, label %cond.false + +cond.true: + %1 = load i8** %retval; + ret i8* %1; + +cond.false: + %2 = load i8** %retval; + ret i8* %2; +} + +define i32 @f() nounwind { +; CHECK: @f +; CHECK-NEXT: ret i32 0 + %1 = call i32 @llvm.objectsize.i32(i8* getelementptr ([60 x i8]* @a, i32 1, i32 0), i1 false) + ret i32 %1 +} + +@window = external global [0 x i8] + +define i1 @baz() nounwind { +; CHECK: @baz +; CHECK-NEXT: ret i1 true + %1 = tail call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([0 x i8]* @window, i32 0, i32 0), i1 false) + %2 = icmp eq i32 %1, -1 + ret i1 %2 +} + +define void @test1(i8* %q, i32 %x) nounwind noinline { +; CHECK: @test1 +; CHECK: objectsize.i32 +entry: + %0 = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([0 x i8]* @window, i32 0, i32 10), i1 false) ; <i64> [#uses=1] + %1 = icmp eq i32 %0, -1 ; <i1> [#uses=1] + br i1 %1, label %"47", label %"46" + +"46": ; preds = %entry + unreachable + +"47": ; preds = %entry + unreachable +} + +@.str5 = private constant [9 x i32] [i32 97, i32 98, i32 99, i32 100, i32 0, i32 + 101, i32 102, i32 103, i32 0], align 4 ; +define i32 @test2() nounwind { +; CHECK: @test2 +; CHECK-NEXT: ret i32 34 + %1 = call i32 @llvm.objectsize.i32(i8* getelementptr (i8* bitcast ([9 x i32]* @.str5 to i8*), i32 2), i1 false) + ret i32 %1 +} + +declare i32 @llvm.objectsize.i32(i8*, i1) nounwind readonly
\ No newline at end of file diff --git a/test/Transforms/InstCombine/or.ll b/test/Transforms/InstCombine/or.ll index 2040f3d..189be10 100644 --- a/test/Transforms/InstCombine/or.ll +++ b/test/Transforms/InstCombine/or.ll @@ -336,3 +336,17 @@ define i64 @test31(i64 %A) nounwind readnone ssp noredzone { ; CHECK-NEXT: %F = and i64 %bitfield, 4294941946 ; CHECK-NEXT: ret i64 %F } + +define <4 x i32> @test32(<4 x i1> %and.i1352, <4 x i32> %vecinit6.i176, <4 x i32> %vecinit6.i191) { + %and.i135 = sext <4 x i1> %and.i1352 to <4 x i32> ; <<4 x i32>> [#uses=2] + %and.i129 = and <4 x i32> %vecinit6.i176, %and.i135 ; <<4 x i32>> [#uses=1] + %neg.i = xor <4 x i32> %and.i135, <i32 -1, i32 -1, i32 -1, i32 -1> ; <<4 x i32>> [#uses=1] + %and.i = and <4 x i32> %vecinit6.i191, %neg.i ; <<4 x i32>> [#uses=1] + %or.i = or <4 x i32> %and.i, %and.i129 ; <<4 x i32>> [#uses=1] + ret <4 x i32> %or.i +; Don't turn this into a vector select until codegen matures to handle them +; better. +; CHECK: @test32 +; CHECK: or <4 x i32> %and.i, %and.i129 +} + diff --git a/test/Transforms/InstCombine/signext.ll b/test/Transforms/InstCombine/signext.ll index 1c52b62..49384d6 100644 --- a/test/Transforms/InstCombine/signext.ll +++ b/test/Transforms/InstCombine/signext.ll @@ -8,8 +8,8 @@ define i32 @test1(i32 %x) { %tmp.3 = add i32 %tmp.2, 32768 ; <i32> [#uses=1] ret i32 %tmp.3 ; CHECK: @test1 -; CHECK: %sext1 = shl i32 %x, 16 -; CHECK: %tmp.3 = ashr i32 %sext1, 16 +; CHECK: %sext = shl i32 %x, 16 +; CHECK: %tmp.3 = ashr i32 %sext, 16 ; CHECK: ret i32 %tmp.3 } @@ -19,8 +19,8 @@ define i32 @test2(i32 %x) { %tmp.3 = add i32 %tmp.2, -32768 ; <i32> [#uses=1] ret i32 %tmp.3 ; CHECK: @test2 -; CHECK: %sext1 = shl i32 %x, 16 -; CHECK: %tmp.3 = ashr i32 %sext1, 16 +; CHECK: %sext = shl i32 %x, 16 +; CHECK: %tmp.3 = ashr i32 %sext, 16 ; CHECK: ret i32 %tmp.3 } @@ -50,8 +50,8 @@ define i32 @test5(i32 %x) { %tmp.3 = add i32 %tmp.2, -128 ; <i32> [#uses=1] ret i32 %tmp.3 ; CHECK: @test5 -; CHECK: %sext1 = shl i32 %x, 24 -; CHECK: %tmp.3 = ashr i32 %sext1, 24 +; CHECK: %sext = shl i32 %x, 24 +; CHECK: %tmp.3 = ashr i32 %sext, 24 ; CHECK: ret i32 %tmp.3 } @@ -74,3 +74,14 @@ define i32 @test7(i16 %P) { ; CHECK: %tmp.5 = sext i16 %P to i32 ; CHECK: ret i32 %tmp.5 } + +define i32 @test8(i32 %x) nounwind readnone { +entry: + %shr = lshr i32 %x, 5 ; <i32> [#uses=1] + %xor = xor i32 %shr, 67108864 ; <i32> [#uses=1] + %sub = add i32 %xor, -67108864 ; <i32> [#uses=1] + ret i32 %sub +; CHECK: @test8 +; CHECK: %sub = ashr i32 %x, 5 +; CHECK: ret i32 %sub +} diff --git a/test/Transforms/InstCombine/sub.ll b/test/Transforms/InstCombine/sub.ll index fa0322a..29bd7be 100644 --- a/test/Transforms/InstCombine/sub.ll +++ b/test/Transforms/InstCombine/sub.ll @@ -272,4 +272,12 @@ define i64 @test25(i8* %P, i64 %A){ ; CHECK-NEXT: ret i64 } +define i32 @test26(i32 %x) { + %shl = shl i32 3, %x + %neg = sub i32 0, %shl + ret i32 %neg +; CHECK: @test26 +; CHECK-NEXT: shl i32 -3 +; CHECK-NEXT: ret i32 +} diff --git a/test/Transforms/InstCombine/vector-casts.ll b/test/Transforms/InstCombine/vector-casts.ll index 470d485..24bd04d 100644 --- a/test/Transforms/InstCombine/vector-casts.ll +++ b/test/Transforms/InstCombine/vector-casts.ll @@ -51,6 +51,22 @@ entry: } +; rdar://7434900 +define <2 x i64> @test5(<4 x float> %a, <4 x float> %b) nounwind readnone { +entry: + %cmp = fcmp ult <4 x float> %a, zeroinitializer + %sext = sext <4 x i1> %cmp to <4 x i32> + %cmp4 = fcmp ult <4 x float> %b, zeroinitializer + %sext5 = sext <4 x i1> %cmp4 to <4 x i32> + %and = and <4 x i32> %sext, %sext5 + %conv = bitcast <4 x i32> %and to <2 x i64> + ret <2 x i64> %conv + +; CHECK: @test5 +; CHECK: sext <4 x i1> %cmp to <4 x i32> +; CHECK: sext <4 x i1> %cmp4 to <4 x i32> +} + define void @convert(<2 x i32>* %dst.addr, <2 x i64> %src) nounwind { entry: diff --git a/test/Transforms/JumpThreading/crash.ll b/test/Transforms/JumpThreading/crash.ll index 361ec6c..c65fd10 100644 --- a/test/Transforms/JumpThreading/crash.ll +++ b/test/Transforms/JumpThreading/crash.ll @@ -234,3 +234,93 @@ bb2: return: ret void } + +; PR6119 +define i32 @test8(i32 %action) nounwind { +entry: + switch i32 %action, label %lor.rhs [ + i32 1, label %if.then + i32 0, label %lor.end + ] + +if.then: ; preds = %for.cond, %lor.end, %entry + ret i32 undef + +lor.rhs: ; preds = %entry + br label %lor.end + +lor.end: ; preds = %lor.rhs, %entry + %cmp103 = xor i1 undef, undef ; <i1> [#uses=1] + br i1 %cmp103, label %for.cond, label %if.then + +for.cond: ; preds = %for.body, %lor.end + br i1 undef, label %if.then, label %for.body + +for.body: ; preds = %for.cond + br label %for.cond +} + +; PR6119 +define i32 @test9(i32 %action) nounwind { +entry: + switch i32 %action, label %lor.rhs [ + i32 1, label %if.then + i32 0, label %lor.end + ] + +if.then: ; preds = %for.cond, %lor.end, %entry + ret i32 undef + +lor.rhs: ; preds = %entry + br label %lor.end + +lor.end: ; preds = %lor.rhs, %entry + %0 = phi i1 [ undef, %lor.rhs ], [ true, %entry ] ; <i1> [#uses=1] + %cmp103 = xor i1 undef, %0 ; <i1> [#uses=1] + br i1 %cmp103, label %for.cond, label %if.then + +for.cond: ; preds = %for.body, %lor.end + br i1 undef, label %if.then, label %for.body + +for.body: ; preds = %for.cond + br label %for.cond +} + +; PR6119 +define i32 @test10(i32 %action, i32 %type) nounwind { +entry: + %cmp2 = icmp eq i32 %type, 0 ; <i1> [#uses=1] + switch i32 %action, label %lor.rhs [ + i32 1, label %if.then + i32 0, label %lor.end + ] + +if.then: ; preds = %for.cond, %lor.end, %entry + ret i32 undef + +lor.rhs: ; preds = %entry + %cmp101 = icmp eq i32 %action, 2 ; <i1> [#uses=1] + br label %lor.end + +lor.end: ; preds = %lor.rhs, %entry + %0 = phi i1 [ %cmp101, %lor.rhs ], [ true, %entry ] ; <i1> [#uses=1] + %cmp103 = xor i1 %cmp2, %0 ; <i1> [#uses=1] + br i1 %cmp103, label %for.cond, label %if.then + +for.cond: ; preds = %for.body, %lor.end + br i1 undef, label %if.then, label %for.body + +for.body: ; preds = %for.cond + br label %for.cond +} + + +; PR6305 +define void @test11() nounwind { +entry: + br label %A + +A: ; preds = %entry + call void undef(i64 ptrtoint (i8* blockaddress(@test11, %A) to i64)) nounwind + unreachable +} diff --git a/test/Transforms/JumpThreading/or-undef.ll b/test/Transforms/JumpThreading/or-undef.ll new file mode 100644 index 0000000..6e35992 --- /dev/null +++ b/test/Transforms/JumpThreading/or-undef.ll @@ -0,0 +1,69 @@ +; RUN: opt -jump-threading -S %s | FileCheck %s +; rdar://7620633 + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" +target triple = "x86_64-apple-darwin11.0" + +define void @test1(i8* %args, i32 %from_tty) nounwind optsize ssp { +entry: + %tmp = call i8* @f3(void (i8*)* null, i8* null) nounwind ; <i8*> [#uses=1] + %tmp1 = icmp eq i8* %args, null ; <i1> [#uses=1] + br i1 %tmp1, label %bb2, label %bb + +; CHECK: entry: +; CHECK-NEXT: %tmp = call i8* @f3 +; CHECK-NEXT: %tmp1 = icmp eq i8* %args, null +; CHECK-NEXT: br i1 %tmp1, label %bb7, label %bb + +bb: ; preds = %entry + %tmp2 = call noalias i8** @buildargv(i8* %args) nounwind ; <i8**> [#uses=4] + %tmp3 = icmp eq i8** %tmp2, null ; <i1> [#uses=1] + br i1 %tmp3, label %bb2, label %bb1 + +bb1: ; preds = %bb + call void @f2(i8** %tmp2) nounwind + br label %bb2 + +bb2: ; preds = %bb1, %bb, %entry + %argv.0 = phi i8** [ %tmp2, %bb1 ], [ %tmp2, %bb ], [ undef, %entry ] ; <i8**> [#uses=4] + %tmp5 = icmp eq i8* %args, null ; <i1> [#uses=1] + %tmp6 = icmp eq i8** %argv.0, null ; <i1> [#uses=1] + %tmp7 = or i1 %tmp5, %tmp6 ; <i1> [#uses=1] + br i1 %tmp7, label %bb7, label %bb5 + +bb5: ; preds = %bb2 + %tmp8 = load i8** %argv.0, align 8 ; <i8*> [#uses=1] + %tmp9 = icmp eq i8* %tmp8, null ; <i1> [#uses=1] + br i1 %tmp9, label %bb7, label %bb6 + +bb6: ; preds = %bb5 + %tmp10 = load i8** %argv.0, align 8 ; <i8*> [#uses=1] + %tmp11 = load i8* %tmp10, align 1 ; <i8> [#uses=1] + %tmp12 = icmp eq i8 %tmp11, 0 ; <i1> [#uses=1] + br i1 %tmp12, label %bb7, label %bb8 + +bb7: ; preds = %bb6, %bb5, %bb2 + call void @f1() nounwind optsize ssp + br label %bb9 + +bb8: ; preds = %bb6 + %tmp13 = load i8** %argv.0, align 8 ; <i8*> [#uses=1] + %tmp14 = call i64 @f5(i8* %tmp13) nounwind ; <i64> [#uses=0] + br label %bb9 + +bb9: ; preds = %bb8, %bb7 + call void @f4(i8* %tmp) nounwind + ret void +} + +declare noalias i8** @buildargv(i8*) + +declare void @f2(i8**) + +declare void @f4(i8*) + +declare i8* @f3(void (i8*)*, i8*) + +declare void @f1() + +declare i64 @f5(i8*) diff --git a/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll b/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll index 7c7a21c..99cb856 100644 --- a/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll +++ b/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll @@ -1,5 +1,4 @@ -; RUN: opt < %s -loop-reduce -S | grep ugt -; PR2535 +; RUN: llc -march=x86-64 < %s -o - | grep {cmpl \\$\[1\], %} @.str = internal constant [4 x i8] c"%d\0A\00" @@ -16,7 +15,7 @@ forbody: %add166 = or i32 %mul15, 1 ; <i32> [#uses=1] * call i32 (i8*, ...)* @printf( i8* noalias getelementptr ([4 x i8]* @.str, i32 0, i32 0), i32 %add166 ) nounwind %inc = add i32 %i.0, 1 ; <i32> [#uses=3] - %cmp = icmp ult i32 %inc, 1027 ; <i1> [#uses=1] + %cmp = icmp ne i32 %inc, 1027 ; <i1> [#uses=1] br i1 %cmp, label %forbody, label %afterfor afterfor: ; preds = %forcond diff --git a/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll b/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll index 36941ad..1f7f6ec 100644 --- a/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll +++ b/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll @@ -1,10 +1,15 @@ -; RUN: llc %s -o - --x86-asm-syntax=att | grep {cmpl \$4} +; RUN: llc < %s -o - | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" target triple = "x86_64-apple-darwin9" -; This is like change-compare-stride-trickiness-1.ll except the comparison -; happens before the relevant use, so the comparison stride can't be -; easily changed. +; The comparison happens before the relevant use, but it can still be rewritten +; to compare with zero. + +; CHECK: foo: +; CHECK: align +; CHECK: incl %eax +; CHECK-NEXT: decl %ecx +; CHECK-NEXT: jne define void @foo() nounwind { entry: diff --git a/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll b/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll index ea8a259..cb63809 100644 --- a/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll +++ b/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll @@ -1,10 +1,12 @@ -; RUN: llc %s -o - --x86-asm-syntax=att | grep {cmp. \$8} +; RUN: llc %s -o - --x86-asm-syntax=att | grep {cmp. \$10} target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" target triple = "x86_64-apple-darwin9" ; The comparison happens after the relevant use, so the stride can easily ; be changed. The comparison can be done in a narrower mode than the ; induction variable. +; TODO: By making the first store post-increment as well, the loop setup +; could be made simpler. define void @foo() nounwind { entry: diff --git a/test/Transforms/LoopStrengthReduce/count-to-zero.ll b/test/Transforms/LoopStrengthReduce/count-to-zero.ll index 8cc3b5c..feb79f8 100644 --- a/test/Transforms/LoopStrengthReduce/count-to-zero.ll +++ b/test/Transforms/LoopStrengthReduce/count-to-zero.ll @@ -19,7 +19,7 @@ bb3: ; preds = %bb1 %tmp4 = add i32 %c_addr.1, -1 ; <i32> [#uses=1] %c_addr.1.be = select i1 %tmp2, i32 %tmp3, i32 %tmp4 ; <i32> [#uses=1] %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1] -; CHECK: sub i32 %lsr.iv, 1 +; CHECK: add i32 %lsr.iv, -1 br label %bb6 bb6: ; preds = %bb3, %entry diff --git a/test/Transforms/LoopStrengthReduce/invariant_value_first.ll b/test/Transforms/LoopStrengthReduce/invariant_value_first.ll index f86638b..4094e9c 100644 --- a/test/Transforms/LoopStrengthReduce/invariant_value_first.ll +++ b/test/Transforms/LoopStrengthReduce/invariant_value_first.ll @@ -1,5 +1,5 @@ ; Check that the index of 'P[outer]' is pulled out of the loop. -; RUN: opt < %s -loop-reduce -S | \ +; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | \ ; RUN: not grep {getelementptr.*%outer.*%INDVAR} declare i1 @pred() diff --git a/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll b/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll index 37acf0f..e2aed78 100644 --- a/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll +++ b/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll @@ -1,5 +1,5 @@ ; Check that the index of 'P[outer]' is pulled out of the loop. -; RUN: opt < %s -loop-reduce -S | \ +; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | \ ; RUN: not grep {getelementptr.*%outer.*%INDVAR} declare i1 @pred() diff --git a/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll b/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll index a032cc9..410d88f 100644 --- a/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll +++ b/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll @@ -1,7 +1,7 @@ ; Check that this test makes INDVAR and related stuff dead, because P[indvar] ; gets reduced, making INDVAR dead. -; RUN: opt < %s -loop-reduce -S | not grep INDVAR +; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | not grep INDVAR declare i1 @pred() diff --git a/test/Transforms/LoopStrengthReduce/pr3086.ll b/test/Transforms/LoopStrengthReduce/pr3086.ll index 9a5911f..599633a 100644 --- a/test/Transforms/LoopStrengthReduce/pr3086.ll +++ b/test/Transforms/LoopStrengthReduce/pr3086.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -loop-reduce -disable-output -; RUN: opt < %s -analyze -scalar-evolution -disable-output +; RUN: opt < %s -loop-reduce +; RUN: opt < %s -analyze -scalar-evolution ; PR 3086 %struct.Cls = type { i32, i8, [2 x %struct.Cls*], [2 x %struct.Lit*] } diff --git a/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll b/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll index b829b47..8959c17 100644 --- a/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll +++ b/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -analyze -iv-users -disable-output | grep {Stride i64 {3,+,2}<%loop>:} +; RUN: opt < %s -analyze -iv-users | grep {\{1,+,3,+,2\}<%loop> (post-inc)} ; The value of %r is dependent on a polynomial iteration expression. diff --git a/test/Transforms/LoopStrengthReduce/remove_indvar.ll b/test/Transforms/LoopStrengthReduce/remove_indvar.ll index 53f4b9d..bb39532 100644 --- a/test/Transforms/LoopStrengthReduce/remove_indvar.ll +++ b/test/Transforms/LoopStrengthReduce/remove_indvar.ll @@ -7,10 +7,12 @@ define void @test(i32* %P) { ; <label>:0 br label %Loop Loop: ; preds = %Loop, %0 + %i = phi i32 [ 0, %0 ], [ %i.next, %Loop ] %INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ] ; <i32> [#uses=2] %STRRED = getelementptr i32* %P, i32 %INDVAR ; <i32*> [#uses=1] store i32 0, i32* %STRRED %INDVAR2 = add i32 %INDVAR, 1 ; <i32> [#uses=1] + %i.next = add i32 %i, 1 %cond = call i1 @pred( ) ; <i1> [#uses=1] br i1 %cond, label %Loop, label %Out Out: ; preds = %Loop diff --git a/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll b/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll index a99a823..5ed37dd 100644 --- a/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll +++ b/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll @@ -1,5 +1,5 @@ ; RUN: opt < %s -loop-reduce -S | \ -; RUN: grep {add i32 %lsr.iv.next, 1} +; RUN: grep {add i32 %indvar630.ui, 1} ; ; Make sure that the use of the IV outside of the loop (the store) uses the ; post incremented value of the IV, not the preincremented value. This diff --git a/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll b/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll deleted file mode 100644 index b4cf406..0000000 --- a/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll +++ /dev/null @@ -1,1697 +0,0 @@ -; RUN: opt < %s -loop-unswitch -disable-output -; END. - -target datalayout = "E-p:32:32" -target triple = "powerpc-apple-darwin8.2.0" -deplibs = [ "c", "crtend" ] - %struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } - %struct.__sFILEX = type opaque - %struct.__sbuf = type { i8*, i32 } - %struct.fd_set = type { [32 x i32] } - %struct.timeval = type { i32, i32 } - %struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* } - %typedef.CHESS_PATH = type { [65 x i32], i8, i8, i8 } - %typedef.CHESS_POSITION = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, [64 x i8], i8, i8, i8, i8, i8 } - %typedef.HASH_ENTRY = type { i64, i64 } - %typedef.NEXT_MOVE = type { i32, i32, i32* } - %typedef.PAWN_HASH_ENTRY = type { i32, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } - %typedef.SEARCH_POSITION = type { i8, i8, i8, i8 } - %union.doub0. = type { i64 } -@search = external global %typedef.CHESS_POSITION ; <%typedef.CHESS_POSITION*> [#uses=1] -@w_pawn_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_pawn_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@knight_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@bishop_attacks_rl45 = external global [64 x [256 x i64]] ; <[64 x [256 x i64]]*> [#uses=0] -@bishop_shift_rl45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@bishop_attacks_rr45 = external global [64 x [256 x i64]] ; <[64 x [256 x i64]]*> [#uses=0] -@bishop_shift_rr45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@rook_attacks_r0 = external global [64 x [256 x i64]] ; <[64 x [256 x i64]]*> [#uses=0] -@rook_attacks_rl90 = external global [64 x [256 x i64]] ; <[64 x [256 x i64]]*> [#uses=0] -@king_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@set_mask = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@first_ones = external global [65536 x i8] ; <[65536 x i8]*> [#uses=0] -@last_ones = external global [65536 x i8] ; <[65536 x i8]*> [#uses=0] -@draw_score_is_zero = external global i32 ; <i32*> [#uses=0] -@default_draw_score = external global i32 ; <i32*> [#uses=0] -@opening = external global i32 ; <i32*> [#uses=0] -@middle_game = external global i32 ; <i32*> [#uses=0] -@tc_increment = external global i32 ; <i32*> [#uses=0] -@tc_time_remaining_opponent = external global i32 ; <i32*> [#uses=0] -@.ctor_1 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@input_stream = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@__sF = external global [0 x %struct.__sFILE] ; <[0 x %struct.__sFILE]*> [#uses=1] -@xboard = external global i32 ; <i32*> [#uses=0] -@.str_1 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_2 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@buffer = external global [512 x i8] ; <[512 x i8]*> [#uses=0] -@nargs = external global i32 ; <i32*> [#uses=0] -@args = external global [32 x i8*] ; <[32 x i8*]*> [#uses=0] -@.str_3 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_4 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_5 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_6 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_7 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_8 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_9 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_10 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_11 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_12 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_14 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@position = external global [67 x %typedef.SEARCH_POSITION] ; <[67 x %typedef.SEARCH_POSITION]*> [#uses=0] -@log_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@move_number = external global i32 ; <i32*> [#uses=0] -@rephead_b = external global i64* ; <i64**> [#uses=0] -@replist_b = external global [82 x i64] ; <[82 x i64]*> [#uses=0] -@rephead_w = external global i64* ; <i64**> [#uses=0] -@replist_w = external global [82 x i64] ; <[82 x i64]*> [#uses=0] -@moves_out_of_book = external global i32 ; <i32*> [#uses=0] -@largest_positional_score = external global i32 ; <i32*> [#uses=0] -@end_game = external global i32 ; <i32*> [#uses=0] -@p_values = external global [15 x i32] ; <[15 x i32]*> [#uses=0] -@clear_mask = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@directions = external global [64 x [64 x i8]] ; <[64 x [64 x i8]]*> [#uses=0] -@root_wtm = external global i32 ; <i32*> [#uses=0] -@all_pawns = external global i64 ; <i64*> [#uses=0] -@pawn_score = external global %typedef.PAWN_HASH_ENTRY ; <%typedef.PAWN_HASH_ENTRY*> [#uses=0] -@pawn_probes = external global i32 ; <i32*> [#uses=0] -@pawn_hits = external global i32 ; <i32*> [#uses=0] -@outside_passed = external global [128 x i32] ; <[128 x i32]*> [#uses=0] -@root_total_black_pieces = external global i32 ; <i32*> [#uses=0] -@root_total_white_pawns = external global i32 ; <i32*> [#uses=0] -@root_total_white_pieces = external global i32 ; <i32*> [#uses=0] -@root_total_black_pawns = external global i32 ; <i32*> [#uses=0] -@mask_A7H7 = external global i64 ; <i64*> [#uses=0] -@mask_B6B7 = external global i64 ; <i64*> [#uses=0] -@mask_G6G7 = external global i64 ; <i64*> [#uses=0] -@mask_A2H2 = external global i64 ; <i64*> [#uses=0] -@mask_B2B3 = external global i64 ; <i64*> [#uses=0] -@mask_G2G3 = external global i64 ; <i64*> [#uses=0] -@king_defects_w = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@good_bishop_kw = external global i64 ; <i64*> [#uses=0] -@mask_F3H3 = external global i64 ; <i64*> [#uses=0] -@file_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@good_bishop_qw = external global i64 ; <i64*> [#uses=0] -@mask_A3C3 = external global i64 ; <i64*> [#uses=0] -@king_defects_b = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@good_bishop_kb = external global i64 ; <i64*> [#uses=0] -@mask_F6H6 = external global i64 ; <i64*> [#uses=0] -@good_bishop_qb = external global i64 ; <i64*> [#uses=0] -@mask_A6C6 = external global i64 ; <i64*> [#uses=0] -@square_color = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@evaluations = external global i32 ; <i32*> [#uses=0] -@king_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@rank_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@mask_kr_trapped_w = external global [3 x i64] ; <[3 x i64]*> [#uses=0] -@mask_qr_trapped_w = external global [3 x i64] ; <[3 x i64]*> [#uses=0] -@king_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@mask_kr_trapped_b = external global [3 x i64] ; <[3 x i64]*> [#uses=0] -@mask_qr_trapped_b = external global [3 x i64] ; <[3 x i64]*> [#uses=0] -@white_outpost = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@mask_no_pawn_attacks_b = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@knight_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@black_outpost = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@mask_no_pawn_attacks_w = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@knight_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@bishop_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@bishop_mobility_rl45 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=0] -@bishop_mobility_rr45 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=0] -@bishop_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@rook_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@plus8dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@mask_abs7_w = external global i64 ; <i64*> [#uses=0] -@rook_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@minus8dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@mask_abs7_b = external global i64 ; <i64*> [#uses=0] -@queen_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@queen_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@white_minor_pieces = external global i64 ; <i64*> [#uses=0] -@black_minor_pieces = external global i64 ; <i64*> [#uses=0] -@not_rook_pawns = external global i64 ; <i64*> [#uses=0] -@dark_squares = external global i64 ; <i64*> [#uses=0] -@b_n_mate_dark_squares = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@b_n_mate_light_squares = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@mate = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@first_ones_8bit = external global [256 x i8] ; <[256 x i8]*> [#uses=0] -@reduced_material_passer = external global [20 x i32] ; <[20 x i32]*> [#uses=0] -@supported_passer = external global [8 x i32] ; <[8 x i32]*> [#uses=0] -@passed_pawn_value = external global [8 x i32] ; <[8 x i32]*> [#uses=0] -@connected_passed = external global [256 x i8] ; <[256 x i8]*> [#uses=0] -@black_pawn_race_btm = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@white_pawn_race_wtm = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@black_pawn_race_wtm = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@white_pawn_race_btm = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@obstructed = external global [64 x [64 x i64]] ; <[64 x [64 x i64]]*> [#uses=0] -@pawn_hash_table = external global %typedef.PAWN_HASH_ENTRY* ; <%typedef.PAWN_HASH_ENTRY**> [#uses=0] -@pawn_hash_mask = external global i32 ; <i32*> [#uses=0] -@pawn_value_w = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@mask_pawn_isolated = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_pawn_passed_w = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_pawn_protected_w = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@pawn_value_b = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@mask_pawn_passed_b = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_pawn_protected_b = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@unblocked_pawns = external global [9 x i32] ; <[9 x i32]*> [#uses=0] -@mask_wk_4th = external global i64 ; <i64*> [#uses=0] -@mask_wk_5th = external global i64 ; <i64*> [#uses=0] -@mask_wq_4th = external global i64 ; <i64*> [#uses=0] -@mask_wq_5th = external global i64 ; <i64*> [#uses=0] -@stonewall_white = external global i64 ; <i64*> [#uses=0] -@mask_bk_4th = external global i64 ; <i64*> [#uses=0] -@mask_bk_5th = external global i64 ; <i64*> [#uses=0] -@mask_bq_5th = external global i64 ; <i64*> [#uses=0] -@mask_bq_4th = external global i64 ; <i64*> [#uses=0] -@stonewall_black = external global i64 ; <i64*> [#uses=0] -@last_ones_8bit = external global [256 x i8] ; <[256 x i8]*> [#uses=0] -@right_side_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@left_side_empty_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@left_side_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@right_side_empty_mask = external global [8 x i64] ; <[8 x i64]*> [#uses=0] -@pv = external global [65 x %typedef.CHESS_PATH] ; <[65 x %typedef.CHESS_PATH]*> [#uses=0] -@history_w = external global [4096 x i32] ; <[4096 x i32]*> [#uses=0] -@history_b = external global [4096 x i32] ; <[4096 x i32]*> [#uses=0] -@killer_move1 = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@killer_count1 = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@killer_move2 = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@killer_count2 = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@current_move = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@init_r90 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@init_l90 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@init_l45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@init_ul45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@init_r45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@init_ur45 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@diagonal_length = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@last = external global [65 x i32*] ; <[65 x i32*]*> [#uses=0] -@move_list = external global [5120 x i32] ; <[5120 x i32]*> [#uses=0] -@history_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@.str_1.upgrd.1 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_2.upgrd.2 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_3.upgrd.3 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_5.upgrd.4 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_6.upgrd.5 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@trans_ref_wa = external global %typedef.HASH_ENTRY* ; <%typedef.HASH_ENTRY**> [#uses=0] -@hash_table_size = external global i32 ; <i32*> [#uses=0] -@trans_ref_wb = external global %typedef.HASH_ENTRY* ; <%typedef.HASH_ENTRY**> [#uses=0] -@trans_ref_ba = external global %typedef.HASH_ENTRY* ; <%typedef.HASH_ENTRY**> [#uses=0] -@trans_ref_bb = external global %typedef.HASH_ENTRY* ; <%typedef.HASH_ENTRY**> [#uses=0] -@pawn_hash_table_size = external global i32 ; <i32*> [#uses=0] -@.str_9.upgrd.6 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@log_hash = external global i32 ; <i32*> [#uses=0] -@log_pawn_hash = external global i32 ; <i32*> [#uses=0] -@hash_maska = external global i32 ; <i32*> [#uses=0] -@hash_maskb = external global i32 ; <i32*> [#uses=0] -@mask_1 = external global i64 ; <i64*> [#uses=0] -@bishop_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@queen_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@plus7dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@plus9dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@minus7dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@minus9dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@plus1dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@minus1dir = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@rook_attacks = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@king_attacks_1 = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@king_attacks_2 = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@.ctor_1.upgrd.7 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@.ctor_2 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@rook_mobility_r0 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=0] -@rook_mobility_rl90 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=0] -@initial_position = external global [80 x i8] ; <[80 x i8]*> [#uses=5] -@"\01a1.0__" = external global [80 x i8] ; <[80 x i8]*> [#uses=0] -@"\01a2.1__" = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@"\01a3.2__" = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@"\01a4.3__" = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@"\01a5.4__" = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@"\01args.5__" = external global [16 x i8*] ; <[16 x i8*]*> [#uses=0] -@.str_10.upgrd.8 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@w_pawn_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@w_pawn_random32 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@b_pawn_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_pawn_random32 = external global [64 x i32] ; <[64 x i32]*> [#uses=0] -@w_knight_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_knight_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@w_bishop_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_bishop_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@w_rook_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_rook_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@w_queen_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_queen_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@w_king_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@b_king_random = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@enpassant_random = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@castle_random_w = external global [2 x i64] ; <[2 x i64]*> [#uses=0] -@castle_random_b = external global [2 x i64] ; <[2 x i64]*> [#uses=0] -@set_mask_rl90 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@set_mask_rl45 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@set_mask_rr45 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@transposition_id = external global i8 ; <i8*> [#uses=0] -@mask_2 = external global i64 ; <i64*> [#uses=0] -@mask_3 = external global i64 ; <i64*> [#uses=0] -@mask_4 = external global i64 ; <i64*> [#uses=0] -@mask_8 = external global i64 ; <i64*> [#uses=0] -@mask_16 = external global i64 ; <i64*> [#uses=0] -@mask_32 = external global i64 ; <i64*> [#uses=0] -@mask_72 = external global i64 ; <i64*> [#uses=0] -@mask_80 = external global i64 ; <i64*> [#uses=0] -@mask_85 = external global i64 ; <i64*> [#uses=0] -@mask_96 = external global i64 ; <i64*> [#uses=0] -@mask_107 = external global i64 ; <i64*> [#uses=0] -@mask_108 = external global i64 ; <i64*> [#uses=0] -@mask_112 = external global i64 ; <i64*> [#uses=0] -@mask_118 = external global i64 ; <i64*> [#uses=0] -@mask_120 = external global i64 ; <i64*> [#uses=0] -@mask_121 = external global i64 ; <i64*> [#uses=0] -@mask_127 = external global i64 ; <i64*> [#uses=0] -@mask_clear_entry = external global i64 ; <i64*> [#uses=0] -@clear_mask_rl45 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@clear_mask_rr45 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@clear_mask_rl90 = external global [65 x i64] ; <[65 x i64]*> [#uses=0] -@right_half_mask = external global i64 ; <i64*> [#uses=0] -@left_half_mask = external global i64 ; <i64*> [#uses=0] -@mask_not_rank8 = external global i64 ; <i64*> [#uses=0] -@mask_not_rank1 = external global i64 ; <i64*> [#uses=0] -@center = external global i64 ; <i64*> [#uses=0] -@mask_pawn_connected = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_eptest = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_kingside_attack_w1 = external global i64 ; <i64*> [#uses=0] -@mask_kingside_attack_w2 = external global i64 ; <i64*> [#uses=0] -@mask_queenside_attack_w1 = external global i64 ; <i64*> [#uses=0] -@mask_queenside_attack_w2 = external global i64 ; <i64*> [#uses=0] -@mask_kingside_attack_b1 = external global i64 ; <i64*> [#uses=0] -@mask_kingside_attack_b2 = external global i64 ; <i64*> [#uses=0] -@mask_queenside_attack_b1 = external global i64 ; <i64*> [#uses=0] -@mask_queenside_attack_b2 = external global i64 ; <i64*> [#uses=0] -@pawns_cramp_black = external global i64 ; <i64*> [#uses=0] -@pawns_cramp_white = external global i64 ; <i64*> [#uses=0] -@light_squares = external global i64 ; <i64*> [#uses=0] -@mask_left_edge = external global i64 ; <i64*> [#uses=0] -@mask_right_edge = external global i64 ; <i64*> [#uses=0] -@mask_advance_2_w = external global i64 ; <i64*> [#uses=0] -@mask_advance_2_b = external global i64 ; <i64*> [#uses=0] -@mask_corner_squares = external global i64 ; <i64*> [#uses=0] -@mask_promotion_threat_w = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@mask_promotion_threat_b = external global [64 x i64] ; <[64 x i64]*> [#uses=0] -@promote_mask_w = external global i64 ; <i64*> [#uses=0] -@promote_mask_b = external global i64 ; <i64*> [#uses=0] -@mask_a1_corner = external global i64 ; <i64*> [#uses=0] -@mask_h1_corner = external global i64 ; <i64*> [#uses=0] -@mask_a8_corner = external global i64 ; <i64*> [#uses=0] -@mask_h8_corner = external global i64 ; <i64*> [#uses=0] -@white_center_pawns = external global i64 ; <i64*> [#uses=0] -@black_center_pawns = external global i64 ; <i64*> [#uses=0] -@wtm_random = external global [2 x i64] ; <[2 x i64]*> [#uses=0] -@endgame_random_w = external global i64 ; <i64*> [#uses=0] -@endgame_random_b = external global i64 ; <i64*> [#uses=0] -@w_rooks_random = external global i64 ; <i64*> [#uses=0] -@b_rooks_random = external global i64 ; <i64*> [#uses=0] -@.ctor_11 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.ctor_2.upgrd.9 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_1.upgrd.10 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_2.upgrd.11 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_32 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_4.upgrd.12 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_5.upgrd.13 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_6.upgrd.14 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_7.upgrd.15 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_8.upgrd.16 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_9.upgrd.17 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_10.upgrd.18 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_11.upgrd.19 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_12.upgrd.20 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_13 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@num_ponder_moves = external global i32 ; <i32*> [#uses=0] -@ponder_moves = external global [220 x i32] ; <[220 x i32]*> [#uses=0] -@.str_14.upgrd.21 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_15 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_16 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@auto232 = external global i32 ; <i32*> [#uses=0] -@puzzling = external global i8 ; <i8*> [#uses=0] -@abort_search = external global i8 ; <i8*> [#uses=0] -@.str_24 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@wtm = external global i32 ; <i32*> [#uses=0] -@.str_3.upgrd.22 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_4.upgrd.23 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@end_time = external global i32 ; <i32*> [#uses=0] -@time_type = external global i32 ; <i32*> [#uses=0] -@start_time = external global i32 ; <i32*> [#uses=0] -@.str_6.upgrd.24 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_7.upgrd.25 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@nodes_searched = external global i32 ; <i32*> [#uses=0] -@iteration_depth = external global i32 ; <i32*> [#uses=0] -@searched_this_root_move = external global [256 x i8] ; <[256 x i8]*> [#uses=0] -@.str_9.upgrd.26 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_10.upgrd.27 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_11.upgrd.28 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_12.upgrd.29 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_14.upgrd.30 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_16.upgrd.31 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@thinking = external global i8 ; <i8*> [#uses=0] -@time_abort = external global i32 ; <i32*> [#uses=0] -@.str_17 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@analyze_move_read = external global i32 ; <i32*> [#uses=0] -@analyze_mode = external global i32 ; <i32*> [#uses=0] -@pondering = external global i8 ; <i8*> [#uses=0] -@auto232_delay = external global i32 ; <i32*> [#uses=0] -@auto_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@.str_19 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_20 = external global [11 x i8] ; <[11 x i8]*> [#uses=0] -@.str_21 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@ponder_move = external global i32 ; <i32*> [#uses=0] -@predicted = external global i32 ; <i32*> [#uses=0] -@made_predicted_move = external global i32 ; <i32*> [#uses=0] -@opponent_end_time = external global i32 ; <i32*> [#uses=0] -@program_start_time = external global i32 ; <i32*> [#uses=0] -@.str_23 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_24.upgrd.32 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_25 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_26 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_28 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@book_move = external global i32 ; <i32*> [#uses=0] -@elapsed_start = external global i32 ; <i32*> [#uses=0] -@burp = external global i32 ; <i32*> [#uses=0] -@cpu_percent = external global i32 ; <i32*> [#uses=0] -@next_time_check = external global i32 ; <i32*> [#uses=0] -@nodes_between_time_checks = external global i32 ; <i32*> [#uses=0] -@transposition_hits = external global i32 ; <i32*> [#uses=0] -@transposition_probes = external global i32 ; <i32*> [#uses=0] -@tb_probes = external global i32 ; <i32*> [#uses=0] -@tb_probes_successful = external global i32 ; <i32*> [#uses=0] -@check_extensions_done = external global i32 ; <i32*> [#uses=0] -@recapture_extensions_done = external global i32 ; <i32*> [#uses=0] -@passed_pawn_extensions_done = external global i32 ; <i32*> [#uses=0] -@one_reply_extensions_done = external global i32 ; <i32*> [#uses=0] -@program_end_time = external global i32 ; <i32*> [#uses=0] -@root_value = external global i32 ; <i32*> [#uses=0] -@last_search_value = external global i32 ; <i32*> [#uses=0] -@.str_1.upgrd.33 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_2.upgrd.34 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@booking = external global i8 ; <i8*> [#uses=0] -@annotate_mode = external global i32 ; <i32*> [#uses=0] -@.str_4.upgrd.35 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_5.upgrd.36 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@last_pv = external global %typedef.CHESS_PATH ; <%typedef.CHESS_PATH*> [#uses=0] -@.str_8.upgrd.37 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@root_alpha = external global i32 ; <i32*> [#uses=0] -@last_value = external global i32 ; <i32*> [#uses=0] -@root_beta = external global i32 ; <i32*> [#uses=0] -@root_nodes = external global [256 x i32] ; <[256 x i32]*> [#uses=0] -@trace_level = external global i32 ; <i32*> [#uses=0] -@.str_9.upgrd.38 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_10.upgrd.39 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@search_failed_high = external global i32 ; <i32*> [#uses=0] -@search_failed_low = external global i32 ; <i32*> [#uses=0] -@nodes_per_second = external global i32 ; <i32*> [#uses=0] -@time_limit = external global i32 ; <i32*> [#uses=0] -@easy_move = external global i32 ; <i32*> [#uses=0] -@noise_level = external global i32 ; <i32*> [#uses=0] -@.str_12.upgrd.40 = external global [34 x i8] ; <[34 x i8]*> [#uses=0] -@.str_136 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@solution_type = external global i32 ; <i32*> [#uses=0] -@number_of_solutions = external global i32 ; <i32*> [#uses=0] -@solutions = external global [10 x i32] ; <[10 x i32]*> [#uses=0] -@early_exit = external global i32 ; <i32*> [#uses=0] -@.str_14.upgrd.41 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_15.upgrd.42 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_16.upgrd.43 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@whisper_value = external global i32 ; <i32*> [#uses=0] -@.str_17.upgrd.44 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] -@.str_19.upgrd.45 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@last_mate_score = external global i32 ; <i32*> [#uses=0] -@search_depth = external global i32 ; <i32*> [#uses=0] -@elapsed_end = external global i32 ; <i32*> [#uses=0] -@.str_20.upgrd.46 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_21.upgrd.47 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_22 = external global [13 x i8] ; <[13 x i8]*> [#uses=0] -@.str_23.upgrd.48 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_24.upgrd.49 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_25.upgrd.50 = external global [67 x i8] ; <[67 x i8]*> [#uses=0] -@.str_26.upgrd.51 = external global [69 x i8] ; <[69 x i8]*> [#uses=0] -@hash_move = external global [65 x i32] ; <[65 x i32]*> [#uses=0] -@version = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@mode = external global i32 ; <i32*> [#uses=0] -@batch_mode = external global i32 ; <i32*> [#uses=0] -@crafty_rating = external global i32 ; <i32*> [#uses=0] -@opponent_rating = external global i32 ; <i32*> [#uses=0] -@pgn_event = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_site = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_date = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_round = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_white = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@pgn_white_elo = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_black = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@pgn_black_elo = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@pgn_result = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@number_auto_kibitzers = external global i32 ; <i32*> [#uses=0] -@auto_kibitz_list = external global [100 x [20 x i8]] ; <[100 x [20 x i8]]*> [#uses=0] -@number_of_computers = external global i32 ; <i32*> [#uses=0] -@computer_list = external global [100 x [20 x i8]] ; <[100 x [20 x i8]]*> [#uses=0] -@number_of_GMs = external global i32 ; <i32*> [#uses=0] -@GM_list = external global [100 x [20 x i8]] ; <[100 x [20 x i8]]*> [#uses=0] -@number_of_IMs = external global i32 ; <i32*> [#uses=0] -@IM_list = external global [100 x [20 x i8]] ; <[100 x [20 x i8]]*> [#uses=0] -@ics = external global i32 ; <i32*> [#uses=0] -@output_format = external global i32 ; <i32*> [#uses=0] -@EGTBlimit = external global i32 ; <i32*> [#uses=0] -@whisper = external global i32 ; <i32*> [#uses=0] -@channel = external global i32 ; <i32*> [#uses=0] -@new_game = external global i32 ; <i32*> [#uses=0] -@channel_title = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@initialized = external global i32 ; <i32*> [#uses=0] -@kibitz = external global i32 ; <i32*> [#uses=0] -@post = external global i32 ; <i32*> [#uses=0] -@log_id = external global i32 ; <i32*> [#uses=0] -@crafty_is_white = external global i32 ; <i32*> [#uses=0] -@last_opponent_move = external global i32 ; <i32*> [#uses=0] -@search_move = external global i32 ; <i32*> [#uses=0] -@time_used = external global i32 ; <i32*> [#uses=0] -@time_used_opponent = external global i32 ; <i32*> [#uses=0] -@auto_kibitzing = external global i32 ; <i32*> [#uses=0] -@test_mode = external global i32 ; <i32*> [#uses=0] -@resign = external global i8 ; <i8*> [#uses=0] -@resign_counter = external global i8 ; <i8*> [#uses=0] -@resign_count = external global i8 ; <i8*> [#uses=0] -@draw_counter = external global i8 ; <i8*> [#uses=0] -@draw_count = external global i8 ; <i8*> [#uses=0] -@tc_moves = external global i32 ; <i32*> [#uses=0] -@tc_time = external global i32 ; <i32*> [#uses=0] -@tc_time_remaining = external global i32 ; <i32*> [#uses=0] -@tc_moves_remaining = external global i32 ; <i32*> [#uses=0] -@tc_secondary_moves = external global i32 ; <i32*> [#uses=0] -@tc_secondary_time = external global i32 ; <i32*> [#uses=0] -@tc_sudden_death = external global i32 ; <i32*> [#uses=0] -@tc_operator_time = external global i32 ; <i32*> [#uses=0] -@tc_safety_margin = external global i32 ; <i32*> [#uses=0] -@force = external global i32 ; <i32*> [#uses=0] -@over = external global i32 ; <i32*> [#uses=0] -@usage_level = external global i32 ; <i32*> [#uses=0] -@audible_alarm = external global i8 ; <i8*> [#uses=0] -@ansi = external global i32 ; <i32*> [#uses=0] -@book_accept_mask = external global i32 ; <i32*> [#uses=0] -@book_reject_mask = external global i32 ; <i32*> [#uses=0] -@book_random = external global i32 ; <i32*> [#uses=0] -@book_search_trigger = external global i32 ; <i32*> [#uses=0] -@learning = external global i32 ; <i32*> [#uses=0] -@show_book = external global i32 ; <i32*> [#uses=0] -@book_selection_width = external global i32 ; <i32*> [#uses=0] -@ponder = external global i32 ; <i32*> [#uses=0] -@verbosity_level = external global i32 ; <i32*> [#uses=0] -@push_extensions = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_28.upgrd.52 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_3.upgrd.53 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@display = external global %typedef.CHESS_POSITION ; <%typedef.CHESS_POSITION*> [#uses=0] -@.str_4.upgrd.54 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@opponent_start_time = external global i32 ; <i32*> [#uses=0] -@.str_8.upgrd.55 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_9.upgrd.56 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_18 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_19.upgrd.57 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_2013 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_21.upgrd.58 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_22.upgrd.59 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] -@.str_23.upgrd.60 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@whisper_text = external global [500 x i8] ; <[500 x i8]*> [#uses=0] -@.str_24.upgrd.61 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_25.upgrd.62 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_26.upgrd.63 = external global [11 x i8] ; <[11 x i8]*> [#uses=0] -@.str_28.upgrd.64 = external global [13 x i8] ; <[13 x i8]*> [#uses=0] -@.str_29 = external global [13 x i8] ; <[13 x i8]*> [#uses=0] -@.str_30 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_31 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_32.upgrd.65 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_36 = external global [3 x i8] ; <[3 x i8]*> [#uses=1] -@.str_37 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_44 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_45 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_49 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_52 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@previous_search_value = external global i32 ; <i32*> [#uses=0] -@.str_64 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@whisper_depth = external global i32 ; <i32*> [#uses=0] -@.str_65 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_66 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@total_moves = external global i32 ; <i32*> [#uses=0] -@book_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@books_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@book_lrn_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@position_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@position_lrn_file = external global %struct.__sFILE* ; <%struct.__sFILE**> [#uses=0] -@log_filename = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@history_filename = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@book_path = external global [128 x i8] ; <[128 x i8]*> [#uses=0] -@log_path = external global [128 x i8] ; <[128 x i8]*> [#uses=0] -@tb_path = external global [128 x i8] ; <[128 x i8]*> [#uses=0] -@cmd_buffer = external global [512 x i8] ; <[512 x i8]*> [#uses=0] -@root_move = external global i32 ; <i32*> [#uses=0] -@hint = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@absolute_time_limit = external global i32 ; <i32*> [#uses=0] -@search_time_limit = external global i32 ; <i32*> [#uses=0] -@in_check = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@extended_reason = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@current_phase = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@sort_value = external global [256 x i32] ; <[256 x i32]*> [#uses=0] -@next_status = external global [65 x %typedef.NEXT_MOVE] ; <[65 x %typedef.NEXT_MOVE]*> [#uses=0] -@save_hash_key = external global [67 x i64] ; <[67 x i64]*> [#uses=0] -@save_pawn_hash_key = external global [67 x i32] ; <[67 x i32]*> [#uses=0] -@pawn_advance = external global [8 x i32] ; <[8 x i32]*> [#uses=0] -@bit_move = external global i64 ; <i64*> [#uses=0] -@.str_1.upgrd.66 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_2.upgrd.67 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_3.upgrd.68 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_1.upgrd.69 = external global [34 x i8] ; <[34 x i8]*> [#uses=0] -@.str_2.upgrd.70 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_2.upgrd.71 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_1.upgrd.72 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_2.upgrd.73 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_3.upgrd.74 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_4.upgrd.75 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_5.upgrd.76 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_615 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_7.upgrd.77 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_10.upgrd.78 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_11.upgrd.79 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_12.upgrd.80 = external global [18 x i8] ; <[18 x i8]*> [#uses=0] -@.str_1318 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_1419 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_15.upgrd.81 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_16.upgrd.82 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_19.upgrd.83 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_20.upgrd.84 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_2222 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_2323 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_25.upgrd.85 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] -@.str_27 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_28.upgrd.86 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_29.upgrd.87 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_30.upgrd.88 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_31.upgrd.89 = external global [18 x i8] ; <[18 x i8]*> [#uses=0] -@.str_32.upgrd.90 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_33 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_34 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_35 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_36.upgrd.91 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_37.upgrd.92 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_38 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_41 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_42 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_43 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_44.upgrd.93 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_4525 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_46 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_47 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_48 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_49.upgrd.94 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_50 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_51 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_52.upgrd.95 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_53 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_54 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_55 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_56 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_57 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_58 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_59 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_60 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_61 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_62 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_63 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_64.upgrd.96 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_66.upgrd.97 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_67 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_68 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_69 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_71 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_72 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_73 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_74 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_75 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_81 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_83 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_84 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_86 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_87 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_89 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_90 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_91 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_92 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_94 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_95 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_96 = external global [34 x i8] ; <[34 x i8]*> [#uses=0] -@.str_97 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_98 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_100 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_101 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_102 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_103 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_104 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_105 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_106 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_107 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_108 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_109 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_110 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_111 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_112 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_113 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_114 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_115 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_116 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_117 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_118 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_119 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_120 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_121 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_122 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_123 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_124 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_125 = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@.str_126 = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@.str_127 = external global [69 x i8] ; <[69 x i8]*> [#uses=0] -@.str_128 = external global [66 x i8] ; <[66 x i8]*> [#uses=0] -@.str_129 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_130 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_131 = external global [67 x i8] ; <[67 x i8]*> [#uses=0] -@.str_132 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_133 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_134 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_135 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_136.upgrd.98 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_137 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_138 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_139 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_140 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_141 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_142 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_143 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_144 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_145 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_146 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_147 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_148 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_149 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_150 = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@.str_151 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_152 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_153 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_154 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_156 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_157 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_158 = external global [71 x i8] ; <[71 x i8]*> [#uses=0] -@.str_159 = external global [72 x i8] ; <[72 x i8]*> [#uses=0] -@.str_160 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_161 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_162 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_163 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_164 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_165 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_166 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_167 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_168 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_169 = external global [65 x i8] ; <[65 x i8]*> [#uses=0] -@.str_170 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_171 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_172 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_173 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_174 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_175 = external global [70 x i8] ; <[70 x i8]*> [#uses=0] -@.str_176 = external global [67 x i8] ; <[67 x i8]*> [#uses=0] -@.str_177 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_178 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_180 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_181 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_182 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_183 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_184 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_185 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_186 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_187 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_188 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_189 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_190 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_191 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_192 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_193 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_194 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_195 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_196 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_197 = external global [11 x i8] ; <[11 x i8]*> [#uses=0] -@.str_198 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_201 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_202 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_203 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_204 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_206 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_207 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_208 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_209 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_210 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_211 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_213 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_214 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_215 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_216 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_218 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_219 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_220 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_221 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_222 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_223 = external global [66 x i8] ; <[66 x i8]*> [#uses=0] -@.str_224 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_225 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_226 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_227 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_228 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_229 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_230 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_231 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_232 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_233 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_234 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_235 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_236 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_237 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_238 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_239 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_240 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_241 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_242 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_243 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_245 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_246 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_247 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_248 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_249 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_250 = external global [45 x i8] ; <[45 x i8]*> [#uses=0] -@.str_253 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_254 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_256 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_258 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_259 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_261 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_262 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_263 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_266 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_267 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_268 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_270 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_271 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_272 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_273 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_274 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_275 = external global [44 x i8] ; <[44 x i8]*> [#uses=0] -@.str_276 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_277 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_278 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_279 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_280 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_281 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_282 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_283 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_284 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_285 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_286 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_287 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_288 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_289 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_290 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_291 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_292 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_293 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_294 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_295 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_296 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_297 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_298 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_299 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_300 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_301 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_302 = external global [18 x i8] ; <[18 x i8]*> [#uses=0] -@.str_304 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_305 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_306 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_308 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_310 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_311 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_312 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_313 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_314 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_315 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_316 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_317 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_319 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_320 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_321 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_322 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_323 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_325 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_327 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_328 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_329 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_330 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_331 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_332 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_333 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_334 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_335 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_336 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_337 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_338 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_339 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_340 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_341 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_342 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_343 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_344 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_345 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_346 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_347 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_348 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_349 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_350 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_351 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_352 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_353 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_354 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_355 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_356 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_357 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_358 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_359 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_360 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_362 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_363 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_364 = external global [56 x i8] ; <[56 x i8]*> [#uses=0] -@.str_365 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_366 = external global [64 x i8] ; <[64 x i8]*> [#uses=0] -@.str_367 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_368 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_369 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_370 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_371 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_372 = external global [58 x i8] ; <[58 x i8]*> [#uses=0] -@.str_373 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_374 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_375 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_376 = external global [63 x i8] ; <[63 x i8]*> [#uses=0] -@.str_377 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_378 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_379 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_380 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_381 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_382 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_383 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_384 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_385 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_387 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_388 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_389 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_390 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_391 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_392 = external global [71 x i8] ; <[71 x i8]*> [#uses=0] -@.str_393 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_394 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_395 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_396 = external global [60 x i8] ; <[60 x i8]*> [#uses=0] -@.str_397 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_398 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_399 = external global [67 x i8] ; <[67 x i8]*> [#uses=0] -@.str_400 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_401 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_402 = external global [62 x i8] ; <[62 x i8]*> [#uses=0] -@.str_403 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_404 = external global [59 x i8] ; <[59 x i8]*> [#uses=0] -@.str_405 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_406 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_407 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_408 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_409 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_410 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_411 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_412 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_413 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_414 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_421 = external global [53 x i8] ; <[53 x i8]*> [#uses=0] -@.str_422 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_423 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_424 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_426 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_427 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_429 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_430 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_431 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_432 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_433 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_434 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_435 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_436 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_437 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_438 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_440 = external global [44 x i8] ; <[44 x i8]*> [#uses=0] -@.str_445 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_446 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_447 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_448 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_449 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_450 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_451 = external global [44 x i8] ; <[44 x i8]*> [#uses=0] -@.str_452 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_453 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_454 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_455 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_456 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_459 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_460 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_461 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_462 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_463 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_466 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_467 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_468 = external global [45 x i8] ; <[45 x i8]*> [#uses=0] -@.str_469 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_470 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_474 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_477 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_480 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_483 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_485 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_487 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_490 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_494 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_495 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_497 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_498 = external global [13 x i8] ; <[13 x i8]*> [#uses=0] -@.str_507 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_508 = external global [11 x i8] ; <[11 x i8]*> [#uses=0] -@.str_509 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_510 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_511 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_512 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_513 = external global [18 x i8] ; <[18 x i8]*> [#uses=0] -@.str_514 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_515 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_516 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_517 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_519 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_520 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_521 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_522 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_523 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_524 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_525 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_526 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_527 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_528 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_529 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_530 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_531 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_532 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_533 = external global [32 x i8] ; <[32 x i8]*> [#uses=0] -@.str_534 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_535 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_536 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_537 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_539 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_540 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_541 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_542 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_543 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_544 = external global [49 x i8] ; <[49 x i8]*> [#uses=0] -@.str_546 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_550 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_551 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_552 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_553 = external global [52 x i8] ; <[52 x i8]*> [#uses=0] -@.str_554 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_555 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_556 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_557 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_559 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_560 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_562 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_564 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_565 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_567 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_568 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_570 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_571 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_572 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_574 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_576 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_577 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_578 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_579 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_580 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_581 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_582 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_583 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_584 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_586 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_587 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_589 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_590 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_591 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_592 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_596 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_597 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_598 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_599 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_605 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_610 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_613 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_616 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_621 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_622 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_623 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_624 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_625 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_626 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_628 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_629 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_630 = external global [13 x i8] ; <[13 x i8]*> [#uses=0] -@.str_631 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_632 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_633 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_634 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_635 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_636 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.str_637 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_639 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_643 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_644 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_645 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_646 = external global [1 x i8] ; <[1 x i8]*> [#uses=0] -@.str_649 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_654 = external global [2 x i8] ; <[2 x i8]*> [#uses=1] -@.str_656 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_658 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_660 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_662 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_664 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -@.str_666 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_667 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_669 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_670 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_671 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_672 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_674 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_675 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_676 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_680 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_682 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_683 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_684 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_685 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_686 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_687 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_688 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_689 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_690 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_691 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_692 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_694 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_695 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_697 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_698 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_700 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_701 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_702 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_703 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_704 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_707 = external global [4 x i8] ; <[4 x i8]*> [#uses=0] -@.str_708 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_709 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_710 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_711 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_722 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_723 = external global [34 x i8] ; <[34 x i8]*> [#uses=0] -@.str_726 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_727 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_728 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_729 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_730 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_732 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_734 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_735 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_736 = external global [61 x i8] ; <[61 x i8]*> [#uses=0] -@.str_738 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_739 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_740 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_741 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_742 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_743 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_744 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_745 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_747 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_748 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_750 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@"\01text_move.0__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@"\01new_text.1__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_1.upgrd.99 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@"\01text_move.2__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_1.upgrd.100 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_2.upgrd.101 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_3.upgrd.102 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_130.upgrd.103 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_231.upgrd.104 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_3.upgrd.105 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_4.upgrd.106 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_7.upgrd.107 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@"\01hashing_pawns.0__" = external global i32 ; <i32*> [#uses=0] -@"\01hashing_opening.1__" = external global i32 ; <i32*> [#uses=0] -@"\01hashing_middle_game.2__" = external global i32 ; <i32*> [#uses=0] -@"\01hashing_end_game.3__" = external global i32 ; <i32*> [#uses=0] -@"\01last_wtm.4__" = external global i32 ; <i32*> [#uses=0] -@.str_1.upgrd.108 = external global [37 x i8] ; <[37 x i8]*> [#uses=0] -@.str_1.upgrd.109 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_1.upgrd.110 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_2.upgrd.111 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_3.upgrd.112 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_4.upgrd.113 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_5.upgrd.114 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_6.upgrd.115 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_7.upgrd.116 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_934 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_1.upgrd.117 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_3.upgrd.118 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_1.upgrd.119 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_2.upgrd.120 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_4.upgrd.121 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_5.upgrd.122 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_1.upgrd.123 = external global [11 x i8] ; <[11 x i8]*> [#uses=0] -@.str_2.upgrd.124 = external global [27 x i8] ; <[27 x i8]*> [#uses=0] -@.str_7.upgrd.125 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] -@.str_10.upgrd.126 = external global [34 x i8] ; <[34 x i8]*> [#uses=0] -@.str_1141 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_12.upgrd.127 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_14.upgrd.128 = external global [20 x i8] ; <[20 x i8]*> [#uses=0] -@.str_1542 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] -@.ctor_1.upgrd.129 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_1.upgrd.130 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_3.upgrd.131 = external global [21 x i8] ; <[21 x i8]*> [#uses=0] -@.str_4.upgrd.132 = external global [25 x i8] ; <[25 x i8]*> [#uses=0] -@.str_5.upgrd.133 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_6.upgrd.134 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@.str_143.upgrd.135 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_2.upgrd.136 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_1.upgrd.137 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_2.upgrd.138 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@bit_move44 = external global i64 ; <i64*> [#uses=0] -@.str_1.upgrd.139 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_248.upgrd.140 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_349.upgrd.141 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.ctor_1.upgrd.142 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_5.upgrd.143 = external global [43 x i8] ; <[43 x i8]*> [#uses=0] -@.str_6.upgrd.144 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_751 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_852 = external global [3 x i8] ; <[3 x i8]*> [#uses=0] -@.str_9.upgrd.145 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] -@.str_10.upgrd.146 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@"\01out.0__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_1153 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_12.upgrd.147 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_13.upgrd.148 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_14.upgrd.149 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_15.upgrd.150 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_16.upgrd.151 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_17.upgrd.152 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@"\01out.1__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_18.upgrd.153 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_19.upgrd.154 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_20.upgrd.155 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_21.upgrd.156 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_2254 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_2355 = external global [8 x i8] ; <[8 x i8]*> [#uses=0] -@.str_24.upgrd.157 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] -@.str_25.upgrd.158 = external global [45 x i8] ; <[45 x i8]*> [#uses=0] -@.str_26.upgrd.159 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@"\01out.2__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_31.upgrd.160 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@"\01out.3__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@"\01out.4__" = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_3457 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_35.upgrd.161 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_36.upgrd.162 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_37.upgrd.163 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_41.upgrd.164 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_45.upgrd.165 = external global [55 x i8] ; <[55 x i8]*> [#uses=0] -@"\01save_book_selection_width.5__" = external global i32 ; <i32*> [#uses=0] -@"\01save_book_random.6__" = external global i32 ; <i32*> [#uses=0] -@"\01save_whisper.7__" = external global i32 ; <i32*> [#uses=0] -@"\01save_kibitz.8__" = external global i32 ; <i32*> [#uses=0] -@"\01save_channel.9__" = external global i32 ; <i32*> [#uses=0] -@"\01save_resign.10" = external global i32 ; <i32*> [#uses=0] -@"\01save_resign_count.11" = external global i32 ; <i32*> [#uses=0] -@"\01save_draw_count.12" = external global i32 ; <i32*> [#uses=0] -@"\01save_learning.13" = external global i32 ; <i32*> [#uses=0] -@.str_49.upgrd.166 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_51.upgrd.167 = external global [44 x i8] ; <[44 x i8]*> [#uses=0] -@"\01x.14" = external global [55 x i32] ; <[55 x i32]*> [#uses=0] -@"\01init.15.b" = external global i1 ; <i1*> [#uses=0] -@"\01y.16" = external global [55 x i32] ; <[55 x i32]*> [#uses=0] -@"\01j.17" = external global i32 ; <i32*> [#uses=0] -@"\01k.18" = external global i32 ; <i32*> [#uses=0] -@.str_52.upgrd.168 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@"\01text.19" = external global [128 x i8] ; <[128 x i8]*> [#uses=0] -@.str_5659 = external global [12 x i8] ; <[12 x i8]*> [#uses=0] -@.str_62.upgrd.169 = external global [14 x i8] ; <[14 x i8]*> [#uses=0] -@.str_6662 = external global [5 x i8] ; <[5 x i8]*> [#uses=0] -@.str_68.upgrd.170 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_69.upgrd.171 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_70 = external global [16 x i8] ; <[16 x i8]*> [#uses=0] -@.str_72.upgrd.172 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_74.upgrd.173 = external global [23 x i8] ; <[23 x i8]*> [#uses=0] -@.str_76 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_78 = external global [57 x i8] ; <[57 x i8]*> [#uses=0] -@.str_80 = external global [45 x i8] ; <[45 x i8]*> [#uses=0] -@.str_82 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_84.upgrd.174 = external global [10 x i8] ; <[10 x i8]*> [#uses=0] -@.str_86.upgrd.175 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_88 = external global [7 x i8] ; <[7 x i8]*> [#uses=0] -@.str_90.upgrd.176 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_92.upgrd.177 = external global [19 x i8] ; <[19 x i8]*> [#uses=0] -@.str_94.upgrd.178 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_95.upgrd.179 = external global [48 x i8] ; <[48 x i8]*> [#uses=0] -@.str_97.upgrd.180 = external global [18 x i8] ; <[18 x i8]*> [#uses=0] -@.str_98.upgrd.181 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_100.upgrd.182 = external global [22 x i8] ; <[22 x i8]*> [#uses=0] -@.str_163.upgrd.183 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_2.upgrd.184 = external global [38 x i8] ; <[38 x i8]*> [#uses=0] -@.str_3.upgrd.185 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_4.upgrd.186 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_5.upgrd.187 = external global [51 x i8] ; <[51 x i8]*> [#uses=0] -@.str_6.upgrd.188 = external global [30 x i8] ; <[30 x i8]*> [#uses=0] -@.str_7.upgrd.189 = external global [28 x i8] ; <[28 x i8]*> [#uses=0] -@.str_8.upgrd.190 = external global [33 x i8] ; <[33 x i8]*> [#uses=0] -@.str_9.upgrd.191 = external global [54 x i8] ; <[54 x i8]*> [#uses=0] -@.str_10.upgrd.192 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_11.upgrd.193 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_12.upgrd.194 = external global [47 x i8] ; <[47 x i8]*> [#uses=0] -@.str_13.upgrd.195 = external global [46 x i8] ; <[46 x i8]*> [#uses=0] -@.str_14.upgrd.196 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_15.upgrd.197 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_16.upgrd.198 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_17.upgrd.199 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_18.upgrd.200 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_19.upgrd.201 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_20.upgrd.202 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_22.upgrd.203 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_23.upgrd.204 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_24.upgrd.205 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_26.upgrd.206 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_27.upgrd.207 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_28.upgrd.208 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_30.upgrd.209 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_31.upgrd.210 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_32.upgrd.211 = external global [36 x i8] ; <[36 x i8]*> [#uses=0] -@.str_33.upgrd.212 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_34.upgrd.213 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_3565 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_36.upgrd.214 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_37.upgrd.215 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_38.upgrd.216 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_39 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_40 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_41.upgrd.217 = external global [40 x i8] ; <[40 x i8]*> [#uses=0] -@.str_42.upgrd.218 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_43.upgrd.219 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_44.upgrd.220 = external global [41 x i8] ; <[41 x i8]*> [#uses=0] -@.str_45.upgrd.221 = external global [39 x i8] ; <[39 x i8]*> [#uses=0] -@.str_46.upgrd.222 = external global [35 x i8] ; <[35 x i8]*> [#uses=0] -@.str_47.upgrd.223 = external global [50 x i8] ; <[50 x i8]*> [#uses=0] -@.str_48.upgrd.224 = external global [26 x i8] ; <[26 x i8]*> [#uses=0] -@.str_49.upgrd.225 = external global [31 x i8] ; <[31 x i8]*> [#uses=0] -@.str_50.upgrd.226 = external global [15 x i8] ; <[15 x i8]*> [#uses=0] -@.str_51.upgrd.227 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] -@.str_52.upgrd.228 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] -@.str_53.upgrd.229 = external global [9 x i8] ; <[9 x i8]*> [#uses=0] - -declare i64 @AttacksFrom(i32, i32) - -declare i64 @AttacksTo(i32) - -declare i32 @Attacked(i32, i32) - -declare i64 @Mask(i32) - -declare i32 @PopCnt(i64) - -declare i32 @FirstOne(i64) - -declare i32 @LastOne(i64) - -declare i32 @DrawScore() - -declare i32 @Drawn(i32) - -declare i8* @strchr(i8*, i32) - -declare i32 @strcmp(i8*, i8*) - -declare i32 @strlen(i8*) - -declare i32 @printf(i8*, ...) - -declare void @Edit() - -declare void @llvm.memcpy(i8*, i8*, i32, i32) - -declare i32 @fflush(%struct.__sFILE*) - -declare i32 @Read(i32, i8*) - -declare i32 @ReadParse(i8*, i8**, i8*) - -declare void @DisplayChessBoard(%struct.__sFILE*, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8) - -declare void @SetChessBitBoards(%typedef.SEARCH_POSITION*) - -declare i32 @EnPrise(i32, i32) - -declare i64 @SwapXray(i64, i32, i32) - -declare i32 @Evaluate(i32, i32, i32, i32) - -declare i32 @EvaluateMate() - -declare i32 @EvaluatePawns() - -declare i32 @EvaluatePassedPawns() - -declare i32 @EvaluatePassedPawnRaces(i32) - -declare i32 @Swap(i32, i32, i32) - -declare i32 @EvaluateDevelopment(i32) - -declare i32 @EvaluateDraws() - -declare i32 @HasOpposition(i32, i32, i32) - -declare void @HistoryBest(i32, i32, i32) - -declare void @HistoryRefutation(i32, i32, i32) - -declare i32 @sprintf(i8*, i8*, ...) - -declare void @Initialize(i32) - -declare void @InitializeZeroMasks() - -declare void @InitializeMasks() - -declare void @InitializeRandomHash() - -declare void @InitializeAttackBoards() - -declare void @InitializePawnMasks() - -declare void @InitializePieceMasks() - -declare void @InitializeChessBoard(%typedef.SEARCH_POSITION*) - -declare %struct.__sFILE* @fopen(i8*, i8*) - -define i32 @Option() { -no_exit.53.outer: - %tmp.4747 = shl i32 7, 3 ; <i32> [#uses=1] - %tmp.4779 = icmp eq %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1), null ; <i1> [#uses=2] - br label %no_exit.53 -no_exit.53: ; preds = %else.166, %else.168, %then.360, %no_exit.53.outer - %file.2.3.3.ph = phi i32 [ 0, %no_exit.53.outer ], [ %inc.551688, %then.360 ], [ %inc.551701, %else.168 ], [ %file.2.3.3.ph, %else.166 ] ; <i32> [#uses=2] - %nempty.5.3.ph = phi i32 [ 0, %no_exit.53.outer ], [ %nempty.5.3, %then.360 ], [ %nempty.5.3, %else.168 ], [ %nempty.5.3.ph, %else.166 ] ; <i32> [#uses=2] - %indvar2053.ui = phi i32 [ 0, %no_exit.53.outer ], [ 0, %then.360 ], [ 0, %else.168 ], [ %indvar.next2054, %else.166 ] ; <i32> [#uses=2] - %indvar2053 = bitcast i32 %indvar2053.ui to i32 ; <i32> [#uses=2] - %file.2.3.3 = add i32 %indvar2053, %file.2.3.3.ph ; <i32> [#uses=4] - %nempty.5.3 = add i32 %indvar2053, %nempty.5.3.ph ; <i32> [#uses=3] - %tmp.4749 = add i32 %file.2.3.3, %tmp.4747 ; <i32> [#uses=1] - %tmp.4750 = getelementptr %typedef.CHESS_POSITION* @search, i32 0, i32 22, i32 %tmp.4749 ; <i8*> [#uses=3] - %tmp.4751 = load i8* %tmp.4750 ; <i8> [#uses=1] - %tmp.4752 = icmp eq i8 %tmp.4751, 0 ; <i1> [#uses=1] - br i1 %tmp.4752, label %else.166, label %then.357 -then.357: ; preds = %no_exit.53 - %tmp.4755 = icmp eq i32 %nempty.5.3, 0 ; <i1> [#uses=1] - br i1 %tmp.4755, label %endif.358, label %then.358 -then.358: ; preds = %then.357 - ret i32 0 -endif.358: ; preds = %then.357 - br i1 %tmp.4779, label %else.168, label %then.360 -then.360: ; preds = %endif.358 - %tmp.4791 = load i8* %tmp.4750 ; <i8> [#uses=1] - %tmp.4792 = sext i8 %tmp.4791 to i32 ; <i32> [#uses=1] - %tmp.4793 = add i32 %tmp.4792, 7 ; <i32> [#uses=1] - %tmp.4794 = getelementptr [15 x i8]* null, i32 0, i32 %tmp.4793 ; <i8*> [#uses=1] - %tmp.4795 = load i8* %tmp.4794 ; <i8> [#uses=1] - %tmp.4796 = sext i8 %tmp.4795 to i32 ; <i32> [#uses=1] - %tmp.4781 = call i32 (%struct.__sFILE*, i8*, ...)* @fprintf( %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1), i8* getelementptr ([3 x i8]* @.str_36, i32 0, i32 0), i32 %tmp.4796 ) ; <i32> [#uses=0] - %inc.551688 = add i32 %file.2.3.3, 1 ; <i32> [#uses=2] - %tmp.47421699 = icmp slt i32 %inc.551688, 8 ; <i1> [#uses=1] - br i1 %tmp.47421699, label %no_exit.53, label %loopexit.56 -else.168: ; preds = %endif.358 - %tmp.4799 = call i32 @strlen( i8* getelementptr ([80 x i8]* @initial_position, i32 0, i32 0) ) ; <i32> [#uses=2] - %gep.upgrd.230 = zext i32 %tmp.4799 to i64 ; <i64> [#uses=1] - %tmp.4802 = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.230 ; <i8*> [#uses=1] - %tmp.4811 = load i8* %tmp.4750 ; <i8> [#uses=1] - %tmp.4812 = sext i8 %tmp.4811 to i32 ; <i32> [#uses=1] - %tmp.4813 = add i32 %tmp.4812, 7 ; <i32> [#uses=1] - %tmp.4814 = getelementptr [15 x i8]* null, i32 0, i32 %tmp.4813 ; <i8*> [#uses=1] - %tmp.4815 = load i8* %tmp.4814 ; <i8> [#uses=1] - store i8 %tmp.4815, i8* %tmp.4802 - %tmp.4802.sum = add i32 %tmp.4799, 1 ; <i32> [#uses=1] - %gep.upgrd.231 = zext i32 %tmp.4802.sum to i64 ; <i64> [#uses=1] - %tmp.4802.end = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.231 ; <i8*> [#uses=1] - store i8 0, i8* %tmp.4802.end - %inc.551701 = add i32 %file.2.3.3, 1 ; <i32> [#uses=2] - %tmp.47421703 = icmp slt i32 %inc.551701, 8 ; <i1> [#uses=1] - br i1 %tmp.47421703, label %no_exit.53, label %loopexit.56 -else.166: ; preds = %no_exit.53 - %inc.55 = add i32 %file.2.3.3, 1 ; <i32> [#uses=1] - %tmp.47421705 = icmp slt i32 %inc.55, 8 ; <i1> [#uses=1] - %indvar.next2054 = add i32 %indvar2053.ui, 1 ; <i32> [#uses=1] - br i1 %tmp.47421705, label %no_exit.53, label %loopexit.56 -loopexit.56: ; preds = %else.166, %else.168, %then.360 - br i1 %tmp.4779, label %else.169, label %then.361 -then.361: ; preds = %loopexit.56 - %tmp.4822 = call i32 @fwrite( i8* getelementptr ([2 x i8]* @.str_654, i32 0, i32 0), i32 1, i32 1, %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1) ) ; <i32> [#uses=0] - %dec.101707 = add i32 7, -1 ; <i32> [#uses=1] - %tmp.47391709 = icmp sgt i32 %dec.101707, -1 ; <i1> [#uses=0] - ret i32 0 -else.169: ; preds = %loopexit.56 - %tmp.4827 = call i32 @strlen( i8* getelementptr ([80 x i8]* @initial_position, i32 0, i32 0) ) ; <i32> [#uses=2] - %gep.upgrd.232 = zext i32 %tmp.4827 to i64 ; <i64> [#uses=1] - %tmp.4830 = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.232 ; <i8*> [#uses=1] - store i8 47, i8* %tmp.4830 - %tmp.4830.sum = add i32 %tmp.4827, 1 ; <i32> [#uses=1] - %gep.upgrd.233 = zext i32 %tmp.4830.sum to i64 ; <i64> [#uses=1] - %tmp.4830.end = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.233 ; <i8*> [#uses=1] - store i8 0, i8* %tmp.4830.end - %dec.10 = add i32 7, -1 ; <i32> [#uses=1] - %tmp.47391711 = icmp sgt i32 %dec.10, -1 ; <i1> [#uses=0] - ret i32 0 -} - -declare void @InitializeHashTables() - -declare i32 @InitializeFindAttacks(i32, i32, i32) - -declare void @SetBoard(i32, i8**, i32) - -declare i32 @KingPawnSquare(i32, i32, i32, i32) - -declare i64 @Random64() - -declare i32 @Random32() - -declare i8* @strcpy(i8*, i8*) - -declare i32 @InputMove(i8*, i32, i32, i32, i32) - -declare i32 @InputMoveICS(i8*, i32, i32, i32, i32) - -declare i32* @GenerateCaptures(i32, i32, i32*) - -declare i32* @GenerateNonCaptures(i32, i32, i32*) - -declare void @MakeMove(i32, i32, i32) - -declare void @UnMakeMove(i32, i32, i32) - -declare void @Interrupt(i32) - -declare i32 @GetTime(i32) - -declare i8* @DisplayTime(i32) - -declare i8* @OutputMoveICS(i32*) - -declare void @Delay(i32) - -declare i32 @fprintf(%struct.__sFILE*, i8*, ...) - -declare void @SignalInterrupt(i32) - -declare void (i32)* @signal(i32, void (i32)*) - -declare i32 @Iterate(i32, i32, i32) - -declare void @PreEvaluate(i32) - -declare void @RootMoveList(i32) - -declare i8* @OutputMove(i32*, i32, i32) - -declare void @TimeSet(i32) - -declare void @StorePV(i32, i32) - -declare i32 @SearchRoot(i32, i32, i32, i32) - -declare void @Whisper(i32, i32, i32, i32, i32, i32, i8*) - -declare i8* @DisplayEvaluation(i32) - -declare i32 @LookUp(i32, i32, i32, i32*, i32*) - -declare i8* @strstr(i8*, i8*) - -declare i32 @main(i32, i8**) - -declare void @__main() - -declare i32 @atoi(i8*) - -declare void @NewGame(i32) - -declare i32 @Ponder(i32) - -declare i32 @fseek(%struct.__sFILE*, i32, i32) - -declare void @MakeMoveRoot(i32, i32) - -declare i32 @RepetitionDraw(i32) - -declare i8* @Reverse() - -declare i8* @Normal() - -declare void @TimeAdjust(i32, i32) - -declare void @ValidatePosition(i32, i32, i8*) - -declare i32 @ValidMove(i32, i32, i32) - -declare i32* @GenerateCheckEvasions(i32, i32, i32*) - -declare i64 @InterposeSquares(i32, i32, i32) - -declare i32 @PinnedOnKing(i32, i32) - -declare i32 @NextMove(i32, i32) - -declare i32 @NextEvasion(i32, i32) - -declare i32 @NextRootMove(i32) - -declare i32 @TimeCheck(i32) - -declare i32 @strncmp(i8*, i8*, i32) - -declare void @exit(i32) - -declare i32 @OptionMatch(i8*, i8*) - -declare i32 @fclose(%struct.__sFILE*) - -declare i32 @ParseTime(i8*) - -declare i8* @DisplayHHMM(i32) - -declare void @DisplayPieceBoards(i32*, i32*) - -declare i32 @fscanf(%struct.__sFILE*, i8*, ...) - -declare i32 @feof(%struct.__sFILE*) - -declare i8* @fgets(i8*, i32, %struct.__sFILE*) - -declare i32 @remove(i8*) - -declare i32 @__tolower(i32) - -declare i32 @clock() - -declare void @OptionPerft(i32, i32, i32) - -declare void @Phase() - -declare i32 @ReadNextMove(i8*, i32, i32) - -declare i32 @time(i32*) - -declare %struct.tm* @localtime(i32*) - -declare i8* @gets(i8*) - -declare i32 @OutputGood(i8*, i32, i32) - -declare i32 @CheckInput() - -declare void @ClearHashTables() - -declare i32 @Quiesce(i32, i32, i32, i32) - -declare void @SearchTrace(i32, i32, i32, i32, i32, i8*, i32) - -declare i32 @RepetitionCheck(i32, i32) - -declare void @ResignOrDraw(i32, i32) - -declare i32 @Search(i32, i32, i32, i32, i32, i32) - -declare void @StoreRefutation(i32, i32, i32, i32) - -declare void @StoreBest(i32, i32, i32, i32, i32) - -declare void @SearchOutput(i32, i32) - -declare i32 @strspn(i8*, i8*) - -declare i32 @isatty(i32) - -declare i32 @fileno(%struct.__sFILE*) - -declare void @llvm.memset(i8*, i8, i32, i32) - -declare i32 @select(i32, %struct.fd_set*, %struct.fd_set*, %struct.fd_set*, %struct.timeval*) - -declare void @DisplayBitBoard(i64) - -declare i8* @DisplayEvaluationWhisper(i32) - -declare i8* @DisplayTimeWhisper(i32) - -declare void @Display64bitWord(i64) - -declare void @Display2BitBoards(i64, i64) - -declare void @DisplayChessMove(i8*, i32) - -declare void @llvm.memmove(i8*, i8*, i32, i32) - -declare void @ReadClear() - -declare i8* @strtok(i8*, i8*) - -declare i32 @SpecReadRaw() - -declare i32 @read(i32, i8*, i32) - -declare i32* @__error() - -declare i32 @ReadChessMove(%struct.__sFILE*, i32, i32) - -declare i64 @ValidateComputeBishopAttacks(i32) - -declare i64 @ValidateComputeRookAttacks(i32) - -declare i8* @memchr(i8*, i32, i32) - -declare i32 @fwrite(i8*, i32, i32, %struct.__sFILE*) diff --git a/test/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll b/test/Transforms/LoopUnswitch/crash.ll index a50bd54..fac55a6 100644 --- a/test/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll +++ b/test/Transforms/LoopUnswitch/crash.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -loop-unswitch -disable-output -define void @sort_Eq(i32* %S2) { +define void @test1(i32* %S2) { entry: br i1 false, label %list_Length.exit, label %cond_true.i cond_true.i: ; preds = %entry @@ -30,3 +30,18 @@ return: ; preds = %return.loopexit, %list_Length.exit9 ret void } +define void @test2(i32 %x1, i32 %y1, i32 %z1, i32 %r1) nounwind { +entry: + br label %bb.nph + +bb.nph: ; preds = %entry + %and.i13521 = and <4 x i1> undef, undef ; <<4 x i1>> [#uses=1] + br label %for.body + +for.body: ; preds = %for.body, %bb.nph + %or.i = select <4 x i1> %and.i13521, <4 x i32> undef, <4 x i32> undef ; <<4 x i32>> [#uses=0] + br i1 false, label %for.body, label %for.end + +for.end: ; preds = %for.body, %entry + ret void +} diff --git a/test/Transforms/Mem2Reg/ConvertDebugInfo.ll b/test/Transforms/Mem2Reg/ConvertDebugInfo.ll index 8e309c0..a013a1d 100644 --- a/test/Transforms/Mem2Reg/ConvertDebugInfo.ll +++ b/test/Transforms/Mem2Reg/ConvertDebugInfo.ll @@ -9,8 +9,8 @@ define double @testfunc(i32 %i, double %j) { call void @llvm.dbg.declare(metadata !{double* %J}, metadata !1) ; CHECK: call void @llvm.dbg.value(metadata !{i32 %i}, i64 0, metadata !0) store i32 %i, i32* %I -; CHECK: call void @llvm.dbg.value(metadata !{double %j}, i64 0, metadata !1) - store double %j, double* %J +; CHECK: call void @llvm.dbg.value(metadata !{double %j}, i64 0, metadata !1), !dbg !3 + store double %j, double* %J, !dbg !3 %t1 = load i32* %I ; <i32> [#uses=1] %t2 = add i32 %t1, 1 ; <i32> [#uses=1] store i32 %t2, i32* %I @@ -29,3 +29,4 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone !0 = metadata !{i32 459008, metadata !1, metadata !"foo", metadata !2, i32 5, metadata !"foo"} ; [ DW_TAG_auto_variable ] !1 = metadata !{i32 459008, metadata !1, metadata !"foo", metadata !0, i32 5, metadata !1} ; [ DW_TAG_auto_variable ] !2 = metadata !{i32 458804, i32 0, metadata !2, metadata !"foo", metadata !"bar", metadata !"bar", metadata !2, i32 3, metadata !0, i1 false, i1 true} ; [ DW_TAG_variable ] +!3 = metadata !{i32 4, i32 0, metadata !0, null} diff --git a/test/Transforms/Reassociate/basictest.ll b/test/Transforms/Reassociate/basictest.ll index e77d83d..0864740 100644 --- a/test/Transforms/Reassociate/basictest.ll +++ b/test/Transforms/Reassociate/basictest.ll @@ -203,4 +203,14 @@ define i32 @test14(i32 %X1, i32 %X2) { ; CHECK-NEXT: ret i32 } +; Do not reassociate expressions of type i1 +define i32 @test15(i32 %X1, i32 %X2, i32 %X3) { + %A = icmp ne i32 %X1, 0 + %B = icmp slt i32 %X2, %X3 + %C = and i1 %A, %B + %D = select i1 %C, i32 %X1, i32 0 + ret i32 %D +; CHECK: @test15 +; CHECK: and i1 %A, %B +} diff --git a/test/Transforms/SimplifyCFG/MagicPointer.ll b/test/Transforms/SimplifyCFG/MagicPointer.ll new file mode 100644 index 0000000..54e5b14 --- /dev/null +++ b/test/Transforms/SimplifyCFG/MagicPointer.ll @@ -0,0 +1,76 @@ +; Test that simplifycfg can create switch instructions from constant pointers. +; +; RUN: opt < %s -simplifycfg -S | FileCheck %s + +; CHECK: switch i64 %magicptr +; CHECK: i64 0, label +; CHECK: i64 1, label +; CHECK: i64 2, label +; CHECK: i64 3, label +; CHECK: i64 4, label +; CHECK-NOT: br +; CHECK: } + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" +target triple = "x86_64-apple-darwin10.0.0" + +@.str = private constant [5 x i8] c"null\00" ; <[5 x i8]*> [#uses=2] +@.str1 = private constant [4 x i8] c"one\00" ; <[4 x i8]*> [#uses=2] +@.str2 = private constant [4 x i8] c"two\00" ; <[4 x i8]*> [#uses=2] +@.str3 = private constant [5 x i8] c"four\00" ; <[5 x i8]*> [#uses=2] + +define void @f(i8* %x) nounwind ssp { +entry: + %tobool = icmp eq i8* %x, null ; <i1> [#uses=1] + br i1 %tobool, label %if.then, label %if.else + +if.then: ; preds = %entry + %call = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.str, i64 0, i64 0)) nounwind ; <i32> [#uses=0] + br label %if.end21 + +if.else: ; preds = %entry + %cmp = icmp eq i8* %x, inttoptr (i64 1 to i8*) ; <i1> [#uses=1] + br i1 %cmp, label %if.then2, label %if.else4 + +if.then2: ; preds = %if.else + %call3 = call i32 @puts(i8* getelementptr inbounds ([4 x i8]* @.str1, i64 0, i64 0)) nounwind ; <i32> [#uses=0] + br label %if.end20 + +if.else4: ; preds = %if.else + %cmp6 = icmp eq i8* %x, inttoptr (i64 2 to i8*) ; <i1> [#uses=1] + br i1 %cmp6, label %if.then9, label %lor.lhs.false + +lor.lhs.false: ; preds = %if.else4 + %cmp8 = icmp eq i8* %x, inttoptr (i64 3 to i8*) ; <i1> [#uses=1] + br i1 %cmp8, label %if.then9, label %if.else11 + +if.then9: ; preds = %lor.lhs.false, %if.else4 + %call10 = call i32 @puts(i8* getelementptr inbounds ([4 x i8]* @.str2, i64 0, i64 0)) nounwind ; <i32> [#uses=0] + br label %if.end19 + +if.else11: ; preds = %lor.lhs.false + %cmp13 = icmp eq i8* %x, inttoptr (i64 4 to i8*) ; <i1> [#uses=1] + br i1 %cmp13, label %if.then14, label %if.else16 + +if.then14: ; preds = %if.else11 + %call15 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.str3, i64 0, i64 0)) nounwind ; <i32> [#uses=0] + br label %if.end + +if.else16: ; preds = %if.else11 + %call18 = call i32 @puts(i8* %x) nounwind ; <i32> [#uses=0] + br label %if.end + +if.end: ; preds = %if.else16, %if.then14 + br label %if.end19 + +if.end19: ; preds = %if.end, %if.then9 + br label %if.end20 + +if.end20: ; preds = %if.end19, %if.then2 + br label %if.end21 + +if.end21: ; preds = %if.end20, %if.then + ret void +} + +declare i32 @puts(i8*) diff --git a/test/Transforms/SimplifyLibCalls/strcpy_chk.ll b/test/Transforms/SimplifyLibCalls/strcpy_chk.ll new file mode 100644 index 0000000..422cbd9 --- /dev/null +++ b/test/Transforms/SimplifyLibCalls/strcpy_chk.ll @@ -0,0 +1,12 @@ +; RUN: opt < %s -simplify-libcalls -S | FileCheck %s +@a = common global [60 x i8] zeroinitializer, align 1 ; <[60 x i8]*> [#uses=1] +@.str = private constant [8 x i8] c"abcdefg\00" ; <[8 x i8]*> [#uses=1] + +define i8* @foo() nounwind { +; CHECK: @foo +; CHECK-NEXT: call i8* @strcpy + %call = call i8* @__strcpy_chk(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str, i32 0, i32 0), i32 60) ; <i8*> [#uses=1] + ret i8* %call +} + +declare i8* @__strcpy_chk(i8*, i8*, i32) nounwind diff --git a/test/lib/llvm.exp b/test/lib/llvm.exp index 2c1bef9..319cc11 100644 --- a/test/lib/llvm.exp +++ b/test/lib/llvm.exp @@ -301,6 +301,16 @@ proc llvm_supports_target { tgtName } { return 0 } +proc llvm_supports_darwin_and_target { tgtName } { + global target_triplet + if { [ llvm_supports_target $tgtName ] } { + if { [regexp darwin $target_triplet match] } { + return 1 + } + } + return 0 +} + # This procedure provides an interface to check the BINDINGS_TO_BUILD makefile # variable to see if a particular binding has been configured to build. proc llvm_supports_binding { name } { diff --git a/test/lit.cfg b/test/lit.cfg index 8e85168..0894d9b 100644 --- a/test/lit.cfg +++ b/test/lit.cfg @@ -114,6 +114,11 @@ for sub in ['llvmgcc', 'llvmgxx', 'compile_cxx', 'compile_c', if sub in ('llvmgcc', 'llvmgxx'): config.substitutions.append(('%' + sub, site_exp[sub] + ' -emit-llvm -w')) + # FIXME: This is a hack to avoid LLVMC tests failing due to a clang driver + # warning when passing in "-fexceptions -fno-exceptions". + elif sub == 'compile_cxx': + config.substitutions.append(('%' + sub, + site_exp[sub].replace('-fno-exceptions', ''))) else: config.substitutions.append(('%' + sub, site_exp[sub])) @@ -127,6 +132,9 @@ targets = set(site_exp["TARGETS_TO_BUILD"].split()) def llvm_supports_target(name): return name in targets +def llvm_supports_darwin_and_target(name): + return 'darwin' in config.target_triple and llvm_supports_target(name) + langs = set(site_exp['llvmgcc_langs'].split(',')) def llvm_gcc_supports(name): return name in langs |