Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1148)

Unified Diff: tests_lit/llvm2ice_tests/fp.pnacl.ll

Issue 509233002: Convert lit tests to check disassembled assembly. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: add comment Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests_lit/llvm2ice_tests/fp.pnacl.ll
diff --git a/tests_lit/llvm2ice_tests/fp.pnacl.ll b/tests_lit/llvm2ice_tests/fp.pnacl.ll
index bd4db77aefa55b1d4254376bd0e6f72844b5ca36..d04a77a6c9c939ed31c42bfde6c48cc015bf66d4 100644
--- a/tests_lit/llvm2ice_tests/fp.pnacl.ll
+++ b/tests_lit/llvm2ice_tests/fp.pnacl.ll
@@ -3,12 +3,18 @@
; that should be present regardless of the optimization level, so
; there are no special OPTM1 match lines.
-; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s
-; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s
+; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer
+; doesn't know how to symbolize non-section-local functions.
+; The newer LLVM 3.6 one does work, but watch out for other bugs.
+
+; RUN: %llvm2ice -O2 --verbose none %s \
+; RUN: | FileCheck --check-prefix=CALLTARGETS %s
; RUN: %llvm2ice -O2 --verbose none %s \
-; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj
+; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
+; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
; RUN: %llvm2ice -Om1 --verbose none %s \
-; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj
+; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
+; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s
; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s
; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \
@@ -24,16 +30,14 @@ entry:
ret i32 %b
}
; CHECK-LABEL: doubleArgs
-; CHECK: mov eax, dword ptr [esp+12]
-; CHECK-NEXT: ret
Jim Stichnoth 2014/08/28 20:19:23 Why was this line removed?
jvoung (off chromium) 2014/08/29 00:51:20 I think to avoid adding -ffunction-section args, b
+; CHECK: mov eax, dword ptr [esp + 12]
define internal i32 @floatArgs(float %a, i32 %b, float %c) {
entry:
ret i32 %b
}
; CHECK-LABEL: floatArgs
-; CHECK: mov eax, dword ptr [esp+8]
-; CHECK-NEXT: ret
+; CHECK: mov eax, dword ptr [esp + 8]
define internal i32 @passFpArgs(float %a, double %b, float %c, double %d, float %e, double %f) {
entry:
@@ -45,14 +49,17 @@ entry:
ret i32 %add3
}
; CHECK-LABEL: passFpArgs
-; CHECK: mov dword ptr [esp+4], 123
+; CHECK: mov dword ptr [esp + 4], 123
; CHECK: call ignoreFpArgsNoInline
-; CHECK: mov dword ptr [esp+4], 123
+; CHECK: mov dword ptr [esp + 4], 123
; CHECK: call ignoreFpArgsNoInline
-; CHECK: mov dword ptr [esp+4], 123
+; CHECK: mov dword ptr [esp + 4], 123
; CHECK: call ignoreFpArgsNoInline
-declare i32 @ignoreFpArgsNoInline(float, i32, double)
+define i32 @ignoreFpArgsNoInline(float %x, i32 %y, double %z) {
+entry:
+ ret i32 %y
+}
define internal i32 @passFpConstArg(float %a, double %b) {
entry:
@@ -60,7 +67,7 @@ entry:
ret i32 %call
}
; CHECK-LABEL: passFpConstArg
-; CHECK: mov dword ptr [esp+4], 123
+; CHECK: mov dword ptr [esp + 4], 123
; CHECK: call ignoreFpArgsNoInline
define internal i32 @passFp32ConstArg(float %a) {
@@ -69,11 +76,14 @@ entry:
ret i32 %call
}
; CHECK-LABEL: passFp32ConstArg
-; CHECK: mov dword ptr [esp+4], 123
-; CHECK: movss dword ptr [esp+8]
+; CHECK: mov dword ptr [esp + 4], 123
+; CHECK: movss dword ptr [esp + 8]
; CHECK: call ignoreFp32ArgsNoInline
-declare i32 @ignoreFp32ArgsNoInline(float, i32, float)
+define i32 @ignoreFp32ArgsNoInline(float %x, i32 %y, float %z) {
+entry:
+ ret i32 %y
+}
define internal float @returnFloatArg(float %a) {
entry:
@@ -181,7 +191,9 @@ entry:
ret float %div
}
; CHECK-LABEL: remFloat
-; CHECK: call fmodf
+; CHECK: call -4
+; CALLTARGETS-LABEL: remFloat
+; CALLTARGETS: call fmodf
define internal double @remDouble(double %a, double %b) {
entry:
@@ -189,7 +201,9 @@ entry:
ret double %div
}
; CHECK-LABEL: remDouble
-; CHECK: call fmod
+; CHECK: call -4
+; CALLTARGETS-LABEL: remDouble
+; CALLTARGETS: call fmod
define internal float @fptrunc(double %a) {
entry:
@@ -215,7 +229,9 @@ entry:
ret i64 %conv
}
; CHECK-LABEL: doubleToSigned64
-; CHECK: call cvtdtosi64
+; CHECK: call -4
+; CALLTARGETS-LABEL: doubleToSigned64
+; CALLTARGETS: call cvtdtosi64
define internal i64 @floatToSigned64(float %a) {
entry:
@@ -223,7 +239,9 @@ entry:
ret i64 %conv
}
; CHECK-LABEL: floatToSigned64
-; CHECK: call cvtftosi64
+; CHECK: call -4
+; CALLTARGETS-LABEL: floatToSigned64
+; CALLTARGETS: call cvtftosi64
define internal i64 @doubleToUnsigned64(double %a) {
entry:
@@ -231,7 +249,9 @@ entry:
ret i64 %conv
}
; CHECK-LABEL: doubleToUnsigned64
-; CHECK: call cvtdtoui64
+; CHECK: call -4
+; CALLTARGETS-LABEL: doubleToUnsigned64
+; CALLTARGETS: call cvtdtoui64
define internal i64 @floatToUnsigned64(float %a) {
entry:
@@ -239,7 +259,9 @@ entry:
ret i64 %conv
}
; CHECK-LABEL: floatToUnsigned64
-; CHECK: call cvtftoui64
+; CHECK: call -4
+; CALLTARGETS-LABEL: floatToUnsigned64
+; CALLTARGETS: call cvtftoui64
define internal i32 @doubleToSigned32(double %a) {
entry:
@@ -263,7 +285,9 @@ entry:
ret i32 %conv
}
; CHECK-LABEL: doubleToUnsigned32
-; CHECK: call cvtdtoui32
+; CHECK: call -4
+; CALLTARGETS-LABEL: doubleToUnsigned32
+; CALLTARGETS: call cvtdtoui32
define internal i32 @floatToUnsigned32(float %a) {
entry:
@@ -271,7 +295,10 @@ entry:
ret i32 %conv
}
; CHECK-LABEL: floatToUnsigned32
-; CHECK: call cvtftoui32
+; CHECK: call -4
+; CALLTARGETS-LABEL: floatToUnsigned32
+; CALLTARGETS: call cvtftoui32
+
define internal i32 @doubleToSigned16(double %a) {
entry:
@@ -379,8 +406,10 @@ entry:
ret double %conv
}
; CHECK-LABEL: signed64ToDouble
-; CHECK: call cvtsi64tod
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: signed64ToDouble
+; CALLTARGETS: call cvtsi64tod
define internal float @signed64ToFloat(i64 %a) {
entry:
@@ -388,8 +417,10 @@ entry:
ret float %conv
}
; CHECK-LABEL: signed64ToFloat
-; CHECK: call cvtsi64tof
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: signed64ToFloat
+; CALLTARGETS: call cvtsi64tof
define internal double @unsigned64ToDouble(i64 %a) {
entry:
@@ -397,8 +428,10 @@ entry:
ret double %conv
}
; CHECK-LABEL: unsigned64ToDouble
-; CHECK: call cvtui64tod
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: unsigned64ToDouble
+; CALLTARGETS: call cvtui64tod
define internal float @unsigned64ToFloat(i64 %a) {
entry:
@@ -406,8 +439,10 @@ entry:
ret float %conv
}
; CHECK-LABEL: unsigned64ToFloat
-; CHECK: call cvtui64tof
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: unsigned64ToFloat
+; CALLTARGETS: call cvtui64tof
define internal double @unsigned64ToDoubleConst() {
entry:
@@ -415,10 +450,12 @@ entry:
ret double %conv
}
; CHECK-LABEL: unsigned64ToDouble
-; CHECK: mov dword ptr [esp+4], 2874
+; CHECK: mov dword ptr [esp + 4], 2874
; CHECK: mov dword ptr [esp], 1942892530
-; CHECK: call cvtui64tod
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: unsigned64ToDouble
+; CALLTARGETS: call cvtui64tod
define internal double @signed32ToDouble(i32 %a) {
entry:
@@ -444,8 +481,10 @@ entry:
ret double %conv
}
; CHECK-LABEL: unsigned32ToDouble
-; CHECK: call cvtui32tod
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: unsigned32ToDouble
+; CALLTARGETS: call cvtui32tod
define internal float @unsigned32ToFloat(i32 %a) {
entry:
@@ -453,8 +492,10 @@ entry:
ret float %conv
}
; CHECK-LABEL: unsigned32ToFloat
-; CHECK: call cvtui32tof
+; CHECK: call -4
; CHECK: fstp
+; CALLTARGETS-LABEL: unsigned32ToFloat
+; CALLTARGETS: call cvtui32tof
define internal double @signed16ToDouble(i32 %a) {
entry:
@@ -578,15 +619,18 @@ if.end3: ; preds = %if.then2, %if.end
}
; CHECK-LABEL: fcmpEq
; CHECK: ucomiss
-; CHECK: jne .
-; CHECK-NEXT: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK-NEXT: jp {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: jne .
-; CHECK-NEXT: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK-NEXT: jp {{[0-9]}}
; CHECK: call func
-declare void @func()
+define void @func() {
+entry:
+ ret void
+}
define internal void @fcmpNe(float %a, float %b, double %c, double %d) {
entry:
@@ -610,12 +654,12 @@ if.end3: ; preds = %if.then2, %if.end
}
; CHECK-LABEL: fcmpNe
; CHECK: ucomiss
-; CHECK: jne .
-; CHECK-NEXT: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK-NEXT: jp {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: jne .
-; CHECK-NEXT: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK-NEXT: jp {{[0-9]}}
; CHECK: call func
define internal void @fcmpGt(float %a, float %b, double %c, double %d) {
@@ -640,10 +684,10 @@ if.end3: ; preds = %if.then2, %if.end
}
; CHECK-LABEL: fcmpGt
; CHECK: ucomiss
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: call func
define internal void @fcmpGe(float %a, float %b, double %c, double %d) {
@@ -668,10 +712,10 @@ if.end3: ; preds = %if.end, %if.then2
}
; CHECK-LABEL: fcmpGe
; CHECK: ucomiss
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
; CHECK: call func
define internal void @fcmpLt(float %a, float %b, double %c, double %d) {
@@ -696,10 +740,10 @@ if.end3: ; preds = %if.then2, %if.end
}
; CHECK-LABEL: fcmpLt
; CHECK: ucomiss
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: call func
define internal void @fcmpLe(float %a, float %b, double %c, double %d) {
@@ -724,10 +768,10 @@ if.end3: ; preds = %if.end, %if.then2
}
; CHECK-LABEL: fcmpLe
; CHECK: ucomiss
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
; CHECK: call func
; CHECK: ucomisd
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
; CHECK: call func
define internal i32 @fcmpFalseFloat(float %a, float %b) {
@@ -756,8 +800,8 @@ entry:
}
; CHECK-LABEL: fcmpOeqFloat
; CHECK: ucomiss
-; CHECK: jne .
-; CHECK: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpOeqDouble(double %a, double %b) {
entry:
@@ -767,8 +811,8 @@ entry:
}
; CHECK-LABEL: fcmpOeqDouble
; CHECK: ucomisd
-; CHECK: jne .
-; CHECK: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpOgtFloat(float %a, float %b) {
entry:
@@ -778,7 +822,7 @@ entry:
}
; CHECK-LABEL: fcmpOgtFloat
; CHECK: ucomiss
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
define internal i32 @fcmpOgtDouble(double %a, double %b) {
entry:
@@ -788,7 +832,7 @@ entry:
}
; CHECK-LABEL: fcmpOgtDouble
; CHECK: ucomisd
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
define internal i32 @fcmpOgeFloat(float %a, float %b) {
entry:
@@ -798,7 +842,7 @@ entry:
}
; CHECK-LABEL: fcmpOgeFloat
; CHECK: ucomiss
-; CHECK: jae .
+; CHECK: jae {{[0-9]}}
define internal i32 @fcmpOgeDouble(double %a, double %b) {
entry:
@@ -808,7 +852,7 @@ entry:
}
; CHECK-LABEL: fcmpOgeDouble
; CHECK: ucomisd
-; CHECK: jae .
+; CHECK: jae {{[0-9]}}
define internal i32 @fcmpOltFloat(float %a, float %b) {
entry:
@@ -818,7 +862,7 @@ entry:
}
; CHECK-LABEL: fcmpOltFloat
; CHECK: ucomiss
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
define internal i32 @fcmpOltDouble(double %a, double %b) {
entry:
@@ -828,7 +872,7 @@ entry:
}
; CHECK-LABEL: fcmpOltDouble
; CHECK: ucomisd
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
define internal i32 @fcmpOleFloat(float %a, float %b) {
entry:
@@ -838,7 +882,7 @@ entry:
}
; CHECK-LABEL: fcmpOleFloat
; CHECK: ucomiss
-; CHECK: jae .
+; CHECK: jae {{[0-9]}}
define internal i32 @fcmpOleDouble(double %a, double %b) {
entry:
@@ -848,7 +892,7 @@ entry:
}
; CHECK-LABEL: fcmpOleDouble
; CHECK: ucomisd
-; CHECK: jae .
+; CHECK: jae {{[0-9]}}
define internal i32 @fcmpOneFloat(float %a, float %b) {
entry:
@@ -858,7 +902,7 @@ entry:
}
; CHECK-LABEL: fcmpOneFloat
; CHECK: ucomiss
-; CHECK: jne .
+; CHECK: jne {{[0-9]}}
define internal i32 @fcmpOneDouble(double %a, double %b) {
entry:
@@ -868,7 +912,7 @@ entry:
}
; CHECK-LABEL: fcmpOneDouble
; CHECK: ucomisd
-; CHECK: jne .
+; CHECK: jne {{[0-9]}}
define internal i32 @fcmpOrdFloat(float %a, float %b) {
entry:
@@ -878,7 +922,7 @@ entry:
}
; CHECK-LABEL: fcmpOrdFloat
; CHECK: ucomiss
-; CHECK: jnp .
+; CHECK: jnp {{[0-9]}}
define internal i32 @fcmpOrdDouble(double %a, double %b) {
entry:
@@ -888,7 +932,7 @@ entry:
}
; CHECK-LABEL: fcmpOrdDouble
; CHECK: ucomisd
-; CHECK: jnp .
+; CHECK: jnp {{[0-9]}}
define internal i32 @fcmpUeqFloat(float %a, float %b) {
entry:
@@ -898,7 +942,7 @@ entry:
}
; CHECK-LABEL: fcmpUeqFloat
; CHECK: ucomiss
-; CHECK: je .
+; CHECK: je {{[0-9]}}
define internal i32 @fcmpUeqDouble(double %a, double %b) {
entry:
@@ -908,7 +952,7 @@ entry:
}
; CHECK-LABEL: fcmpUeqDouble
; CHECK: ucomisd
-; CHECK: je .
+; CHECK: je {{[0-9]}}
define internal i32 @fcmpUgtFloat(float %a, float %b) {
entry:
@@ -918,7 +962,7 @@ entry:
}
; CHECK-LABEL: fcmpUgtFloat
; CHECK: ucomiss
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
define internal i32 @fcmpUgtDouble(double %a, double %b) {
entry:
@@ -928,7 +972,7 @@ entry:
}
; CHECK-LABEL: fcmpUgtDouble
; CHECK: ucomisd
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
define internal i32 @fcmpUgeFloat(float %a, float %b) {
entry:
@@ -938,7 +982,7 @@ entry:
}
; CHECK-LABEL: fcmpUgeFloat
; CHECK: ucomiss
-; CHECK: jbe .
+; CHECK: jbe {{[0-9]}}
define internal i32 @fcmpUgeDouble(double %a, double %b) {
entry:
@@ -948,7 +992,7 @@ entry:
}
; CHECK-LABEL: fcmpUgeDouble
; CHECK: ucomisd
-; CHECK: jbe .
+; CHECK: jbe {{[0-9]}}
define internal i32 @fcmpUltFloat(float %a, float %b) {
entry:
@@ -958,7 +1002,7 @@ entry:
}
; CHECK-LABEL: fcmpUltFloat
; CHECK: ucomiss
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
define internal i32 @fcmpUltDouble(double %a, double %b) {
entry:
@@ -968,7 +1012,7 @@ entry:
}
; CHECK-LABEL: fcmpUltDouble
; CHECK: ucomisd
-; CHECK: jb .
+; CHECK: jb {{[0-9]}}
define internal i32 @fcmpUleFloat(float %a, float %b) {
entry:
@@ -978,7 +1022,7 @@ entry:
}
; CHECK-LABEL: fcmpUleFloat
; CHECK: ucomiss
-; CHECK: jbe .
+; CHECK: jbe {{[0-9]}}
define internal i32 @fcmpUleDouble(double %a, double %b) {
entry:
@@ -988,7 +1032,7 @@ entry:
}
; CHECK-LABEL: fcmpUleDouble
; CHECK: ucomisd
-; CHECK: jbe .
+; CHECK: jbe {{[0-9]}}
define internal i32 @fcmpUneFloat(float %a, float %b) {
entry:
@@ -998,8 +1042,8 @@ entry:
}
; CHECK-LABEL: fcmpUneFloat
; CHECK: ucomiss
-; CHECK: jne .
-; CHECK: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpUneDouble(double %a, double %b) {
entry:
@@ -1009,8 +1053,8 @@ entry:
}
; CHECK-LABEL: fcmpUneDouble
; CHECK: ucomisd
-; CHECK: jne .
-; CHECK: jp .
+; CHECK: jne {{[0-9]}}
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpUnoFloat(float %a, float %b) {
entry:
@@ -1020,7 +1064,7 @@ entry:
}
; CHECK-LABEL: fcmpUnoFloat
; CHECK: ucomiss
-; CHECK: jp .
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpUnoDouble(double %a, double %b) {
entry:
@@ -1030,7 +1074,7 @@ entry:
}
; CHECK-LABEL: fcmpUnoDouble
; CHECK: ucomisd
-; CHECK: jp .
+; CHECK: jp {{[0-9]}}
define internal i32 @fcmpTrueFloat(float %a, float %b) {
entry:
@@ -1118,7 +1162,7 @@ entry:
}
; CHECK-LABEL: selectFloatVarVar
; CHECK: ucomiss
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: fld
define internal double @selectDoubleVarVar(double %a, double %b) {
@@ -1129,7 +1173,7 @@ entry:
}
; CHECK-LABEL: selectDoubleVarVar
; CHECK: ucomisd
-; CHECK: ja .
+; CHECK: ja {{[0-9]}}
; CHECK: fld
; ERRORS-NOT: ICE translation error

Powered by Google App Engine
This is Rietveld 408576698