Update to more CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change.

All changes were made by the following bash script:

  find test/CodeGen -name "*.ll" | \
  while read NAME; do
    echo "$NAME"
    grep -q "^; *RUN: *llc.*debug" $NAME && continue
    grep -q "^; *RUN:.*llvm-objdump" $NAME && continue
    grep -q "^; *RUN: *opt.*" $NAME && continue
    TEMP=`mktemp -t temp`
    cp $NAME $TEMP
    sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \
    while read FUNC; do
      sed -i '' "s/;\([A-Za-z0-9_-]*\)\([A-Za-z0-9_-]*\):\( *\)$FUNC[:]* *\$/;\1\2-LABEL:\3$FUNC:/g" $TEMP
    done
    sed -i '' "s/;\(.*\)-LABEL-LABEL:/;\1-LABEL:/" $TEMP
    sed -i '' "s/;\(.*\)-NEXT-LABEL:/;\1-NEXT:/" $TEMP
    sed -i '' "s/;\(.*\)-NOT-LABEL:/;\1-NOT:/" $TEMP
    sed -i '' "s/;\(.*\)-DAG-LABEL:/;\1-DAG:/" $TEMP
    mv $TEMP $NAME
  done

This script catches a superset of the cases caught by the script associated with commit r186280. It initially found some false positives due to unusual constructs in a minority of tests; all such cases were disambiguated first in commit r186621.

llvm-svn: 186624
This commit is contained in:
Stephen Lin 2013-07-18 22:47:09 +00:00
parent a20b9f52d4
commit 6f36b45076
41 changed files with 118 additions and 118 deletions

View File

@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s
; rdar://12201387
;CHECK: select_s_v_v
;CHECK-LABEL: select_s_v_v:
;CHECK: it ne
;CHECK-NEXT: vmovne.i32
;CHECK: bx

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s
;CHECK: foo
;CHECK-LABEL: foo:
;CHECK: adds
;CHECK-NEXT: adc
;CHECK-NEXT: bx

View File

@ -60,7 +60,7 @@ ret void
define i64 @f4(i64* %val) nounwind {
entry:
;CHECK: f4
;CHECK-LABEL: f4:
;CHECK: ldrexd [[REG1:(r[0-9]?[02468])]], {{r[0-9]?[13579]}}, [r{{[0-9]+}}]
%0 = tail call i64 asm sideeffect "ldrexd $0, ${0:H}, [$1]", "=&r,r,*Qo"(i64* %val, i64* %val) nounwind
ret i64 %0

View File

@ -187,7 +187,7 @@ define <8 x i8> @vclei8Z(<8 x i8>* %A) nounwind {
; Floating-point comparisons against zero produce results with integer
; elements, not floating-point elements.
define void @test_vclez_fp() nounwind optsize {
;CHECK: test_vclez_fp
;CHECK-LABEL: test_vclez_fp:
;CHECK: vcle.f32
entry:
%0 = fcmp ole <4 x float> undef, zeroinitializer

View File

@ -263,7 +263,7 @@ define void @redundantVdup(<8 x i8>* %ptr) nounwind {
}
define <4 x i32> @tdupi(i32 %x, i32 %y) {
;CHECK: tdupi
;CHECK-LABEL: tdupi:
;CHECK: vdup.32
%1 = insertelement <4 x i32> undef, i32 %x, i32 0
%2 = insertelement <4 x i32> %1, i32 %x, i32 1
@ -273,7 +273,7 @@ define <4 x i32> @tdupi(i32 %x, i32 %y) {
}
define <4 x float> @tdupf(float %x, float %y) {
;CHECK: tdupf
;CHECK-LABEL: tdupf:
;CHECK: vdup.32
%1 = insertelement <4 x float> undef, float %x, i32 0
%2 = insertelement <4 x float> %1, float %x, i32 1
@ -285,7 +285,7 @@ define <4 x float> @tdupf(float %x, float %y) {
; This test checks that when splatting an element from a vector into another,
; the value isn't moved out to GPRs first.
define <4 x i32> @tduplane(<4 x i32> %invec) {
;CHECK: tduplane
;CHECK-LABEL: tduplane:
;CHECK-NOT: vmov {{.*}}, d16[1]
;CHECK: vdup.32 {{.*}}, d16[1]
%in = extractelement <4 x i32> %invec, i32 1

View File

@ -502,7 +502,7 @@ declare %struct.__neon_float32x4x4_t @llvm.arm.neon.vld4lane.v4f32(i8*, <4 x flo
; we don't currently have a QQQQ_VFP2 super-regclass. (The "0" for the low
; part of %ins67 is supposed to be loaded by a VLDRS instruction in this test.)
define <8 x i16> @test_qqqq_regsequence_subreg([6 x i64] %b) nounwind {
;CHECK: test_qqqq_regsequence_subreg
;CHECK-LABEL: test_qqqq_regsequence_subreg:
;CHECK: vld3.16
%tmp63 = extractvalue [6 x i64] %b, 5
%tmp64 = zext i64 %tmp63 to i128

View File

@ -386,7 +386,7 @@ entry:
; rdar://10723651
define void @any_extend(<4 x i1> %x, <4 x i32> %y) nounwind ssp {
entry:
;CHECK: any_extend
;CHECK-LABEL: any_extend:
;CHECK: vmovl
%and.i186 = zext <4 x i1> %x to <4 x i32>
%add.i185 = sub <4 x i32> %and.i186, %y

View File

@ -111,7 +111,7 @@ define void @vst2Qf(float* %A, <4 x float>* %B) nounwind {
}
define i8* @vst2update(i8* %out, <4 x i16>* %B) nounwind {
;CHECK: vst2update
;CHECK-LABEL: vst2update:
;CHECK: vst2.16 {d16, d17}, [r0]!
%tmp1 = load <4 x i16>* %B
tail call void @llvm.arm.neon.vst2.v4i16(i8* %out, <4 x i16> %tmp1, <4 x i16> %tmp1, i32 2)
@ -120,7 +120,7 @@ define i8* @vst2update(i8* %out, <4 x i16>* %B) nounwind {
}
define i8* @vst2update2(i8 * %out, <4 x float> * %this) nounwind optsize ssp align 2 {
;CHECK: vst2update2
;CHECK-LABEL: vst2update2:
;CHECK: vst2.32 {d16, d17, d18, d19}, [r0]!
%tmp1 = load <4 x float>* %this
call void @llvm.arm.neon.vst2.v4f32(i8* %out, <4 x float> %tmp1, <4 x float> %tmp1, i32 4) nounwind

View File

@ -63,10 +63,10 @@ entry:
define i32 @test_select_int_fcc(float %f, i32 %a, i32 %b) nounwind readnone noinline {
entry:
;V8: test_select_int_fcc
;V8-LABEL: test_select_int_fcc:
;V8: fcmps
;V8: {{fbe|fbne}}
;V9: test_select_int_fcc
;V9-LABEL: test_select_int_fcc:
;V9: fcmps
;V9-NOT: {{fbe|fbne}}
;V9: mov{{e|ne}} %fcc0
@ -78,10 +78,10 @@ entry:
define float @test_select_fp_fcc(float %f, float %f1, float %f2) nounwind readnone noinline {
entry:
;V8: test_select_fp_fcc
;V8-LABEL: test_select_fp_fcc:
;V8: fcmps
;V8: {{fbe|fbne}}
;V9: test_select_fp_fcc
;V9-LABEL: test_select_fp_fcc:
;V9: fcmps
;V9-NOT: {{fbe|fbne}}
;V9: fmovs{{e|ne}} %fcc0
@ -92,10 +92,10 @@ entry:
define double @test_select_dfp_fcc(double %f, double %f1, double %f2) nounwind readnone noinline {
entry:
;V8: test_select_dfp_fcc
;V8-LABEL: test_select_dfp_fcc:
;V8: fcmpd
;V8: {{fbne|fbe}}
;V9: test_select_dfp_fcc
;V9-LABEL: test_select_dfp_fcc:
;V9: fcmpd
;V9-NOT: {{fbne|fbe}}
;V9: fmovd{{e|ne}} %fcc0

View File

@ -6,12 +6,12 @@
define i8* @frameaddr() nounwind readnone {
entry:
;V8: frameaddr
;V8-LABEL: frameaddr:
;V8: save %sp, -96, %sp
;V8: jmp %i7+8
;V8: restore %g0, %fp, %o0
;V9: frameaddr
;V9-LABEL: frameaddr:
;V9: save %sp, -96, %sp
;V9: jmp %i7+8
;V9: restore %g0, %fp, %o0
@ -21,13 +21,13 @@ entry:
define i8* @frameaddr2() nounwind readnone {
entry:
;V8: frameaddr2
;V8-LABEL: frameaddr2:
;V8: ta 3
;V8: ld [%fp+56], {{.+}}
;V8: ld [{{.+}}+56], {{.+}}
;V8: ld [{{.+}}+56], {{.+}}
;V9: frameaddr2
;V9-LABEL: frameaddr2:
;V9: flushw
;V9: ld [%fp+56], {{.+}}
;V9: ld [{{.+}}+56], {{.+}}
@ -42,10 +42,10 @@ declare i8* @llvm.frameaddress(i32) nounwind readnone
define i8* @retaddr() nounwind readnone {
entry:
;V8: retaddr
;V8-LABEL: retaddr:
;V8: or %g0, %o7, {{.+}}
;V9: retaddr
;V9-LABEL: retaddr:
;V9: or %g0, %o7, {{.+}}
%0 = tail call i8* @llvm.returnaddress(i32 0)
@ -54,25 +54,25 @@ entry:
define i8* @retaddr2() nounwind readnone {
entry:
;V8: retaddr2
;V8-LABEL: retaddr2:
;V8: ta 3
;V8: ld [%fp+56], {{.+}}
;V8: ld [{{.+}}+56], {{.+}}
;V8: ld [{{.+}}+60], {{.+}}
;V9: retaddr2
;V9-LABEL: retaddr2:
;V9: flushw
;V9: ld [%fp+56], {{.+}}
;V9: ld [{{.+}}+56], {{.+}}
;V9: ld [{{.+}}+60], {{.+}}
;V8LEAF: retaddr2
;V8LEAF-LABEL: retaddr2:
;V8LEAF: ta 3
;V8LEAF: ld [%fp+56], %[[R:[goli][0-7]]]
;V8LEAF: ld [%[[R]]+56], %[[R1:[goli][0-7]]]
;V8LEAF: ld [%[[R1]]+60], {{.+}}
;V9LEAF: retaddr2
;V9LEAF-LABEL: retaddr2:
;V9LEAF: flushw
;V9LEAF: ld [%fp+56], %[[R:[goli][0-7]]]
;V9LEAF: ld [%[[R]]+56], %[[R1:[goli][0-7]]]

View File

@ -54,7 +54,7 @@ bb5: ; preds = %bb, %entry
define i32 @test_inlineasm(i32 %a) nounwind {
entry:
;CHECK: test_inlineasm
;CHECK-LABEL: test_inlineasm:
;CHECK: sethi
;CHECK: !NO_APP
;CHECK-NEXT: cmp
@ -80,7 +80,7 @@ declare i32 @bar(i32)
define i32 @test_implicit_def() nounwind {
entry:
;UNOPT: test_implicit_def
;UNOPT-LABEL: test_implicit_def:
;UNOPT: call func
;UNOPT-NEXT: nop
%0 = tail call i32 @func(i32* undef) nounwind
@ -89,7 +89,7 @@ entry:
define i32 @prevent_o7_in_call_delay_slot(i32 %i0) {
entry:
;CHECK: prevent_o7_in_call_delay_slot
;CHECK-LABEL: prevent_o7_in_call_delay_slot:
;CHECK: add %i0, 2, %o5
;CHECK: add %i0, 3, %o7
;CHECK: add %o5, %o7, %o0
@ -150,7 +150,7 @@ entry:
define i32 @restore_sethi(i32 %a) {
entry:
;CHECK: restore_sethi
;CHECK-LABEL: restore_sethi:
;CHECK-NOT: sethi 3
;CHECK: restore %g0, 3072, %o0
%0 = tail call i32 @bar(i32 %a) nounwind
@ -161,7 +161,7 @@ entry:
define i32 @restore_sethi_3bit(i32 %a) {
entry:
;CHECK: restore_sethi_3bit
;CHECK-LABEL: restore_sethi_3bit:
;CHECK: sethi 6
;CHECK-NOT: restore %g0, 6144, %o0
%0 = tail call i32 @bar(i32 %a) nounwind
@ -172,7 +172,7 @@ entry:
define i32 @restore_sethi_large(i32 %a) {
entry:
;CHECK: restore_sethi_large
;CHECK-LABEL: restore_sethi_large:
;CHECK: sethi 4000, %i0
;CHECK: restore %g0, %g0, %g0
%0 = tail call i32 @bar(i32 %a) nounwind

View File

@ -6,7 +6,7 @@
define i32 @test() nounwind {
entry:
;CHECK: test
;CHECK-LABEL: test:
;CHECK: st
;CHECK: st
;CHECK: st

View File

@ -4,7 +4,7 @@
define weak void @make_foo(%struct.foo_t* noalias sret %agg.result, i32 %a, i32 %b, i32 %c) nounwind {
entry:
;CHECK: make_foo
;CHECK-LABEL: make_foo:
;CHECK: ld [%sp+64], {{.+}}
;CHECK: jmp %o7+12
%0 = getelementptr inbounds %struct.foo_t* %agg.result, i32 0, i32 0
@ -18,7 +18,7 @@ entry:
define i32 @test() nounwind {
entry:
;CHECK: test
;CHECK-LABEL: test:
;CHECK: st {{.+}}, [%sp+64]
;CHECK: call make_foo
;CHECK: unimp 12

View File

@ -259,7 +259,7 @@ define i32 @f5(i32 %a) {
}
define i32 @f6(i32 %a) {
;CHECK: f6
;CHECK-LABEL: f6:
;CHECK: movw r0, #65535
%tmp = add i32 0, 65535
ret i32 %tmp

View File

@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 | FileCheck %s
; Make sure that values of illegal types are not scalarized between basic blocks.
;CHECK: test
;CHECK-LABEL: test:
;CHECK-NOT: pinsrw
;CHECK-NOT: pextrb
;CHECK: ret

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
;CHECK: test
;CHECK-LABEL: test:
;CHECK-not: pshufd
;CHECK: ret
define float @test(<4 x float>* %A) nounwind {

View File

@ -2,7 +2,7 @@
target triple = "x86_64-unknown-linux-gnu"
;CHECK: ltstore
;CHECK-LABEL: ltstore:
;CHECK: movq
;CHECK: movq
;CHECK: ret

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
;CHECK: addXX_test
;CHECK-LABEL: addXX_test:
;CHECK: padd
;CHECK: ret
@ -10,7 +10,7 @@ define <16 x i8> @addXX_test(<16 x i8> %a) {
ret <16 x i8> %b
}
;CHECK: instcombine_test
;CHECK-LABEL: instcombine_test:
;CHECK: padd
;CHECK: ret
define <16 x i8> @instcombine_test(<16 x i8> %a) {

View File

@ -5,7 +5,7 @@ target triple = "x86_64-unknown-linux-gnu"
; 0x1 means that we only look at the first bit.
;CHECK: 0x1
;CHECK: ui_to_fp_conv
;CHECK-LABEL: ui_to_fp_conv:
;CHECK: ret
define void @ui_to_fp_conv(<8 x float> * nocapture %aFOO, <8 x float>* nocapture %RET) nounwind {
allocas:

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86 -mcpu=corei7-avx -mattr=+avx -mtriple=i686-pc-win32 | FileCheck %s
;CHECK: add18i16
;CHECK-LABEL: add18i16:
define void @add18i16(<18 x i16>* nocapture sret %ret, <18 x i16>* %bp) nounwind {
;CHECK: vmovaps
%b = load <18 x i16>* %bp, align 16

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mtriple=x86_64-pc-win32 | FileCheck %s
;CHECK: vcast
;CHECK-LABEL: vcast:
define <2 x i32> @vcast(<2 x float> %a, <2 x float> %b) {
;CHECK: pmovzxdq
;CHECK: pmovzxdq

View File

@ -13,7 +13,7 @@ entry:
}
; Make sure that we store a 64bit value, even on 32bit systems.
;CHECK: store_64
;CHECK-LABEL: store_64:
define void @store_64(<2 x i32>* %ptr) {
BB:
store <2 x i32> zeroinitializer, <2 x i32>* %ptr
@ -22,7 +22,7 @@ BB:
;CHECK: ret
}
;CHECK: load_64
;CHECK-LABEL: load_64:
define <2 x i32> @load_64(<2 x i32>* %ptr) {
BB:
%t = load <2 x i32>* %ptr

View File

@ -2,7 +2,7 @@
declare x86_fastcallcc i64 @barrier()
;CHECK: bcast_fold
;CHECK-LABEL: bcast_fold:
;CHECK: vmov{{[au]}}ps %xmm{{[0-9]+}}, [[SPILLED:[^\)]+\)]]
;CHECK: barrier
;CHECK: vbroadcastss [[SPILLED]], %ymm0

View File

@ -3,7 +3,7 @@
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-S32"
target triple = "i686-pc-win32"
;CHECK: bad_cast
;CHECK-LABEL: bad_cast:
define void @bad_cast() {
entry:
%vext.i = shufflevector <2 x i64> undef, <2 x i64> undef, <3 x i32> <i32 0, i32 1, i32 undef>
@ -14,7 +14,7 @@ entry:
}
;CHECK: bad_insert
;CHECK-LABEL: bad_insert:
define void @bad_insert(i32 %t) {
entry:
;CHECK: vpinsrd

View File

@ -147,7 +147,7 @@ define void @merge_nonconst_store(i32 %count, i8 %zz, %struct.A* nocapture %p) n
}
;CHECK: merge_loads_i16
;CHECK-LABEL: merge_loads_i16:
; load:
;CHECK: movw
; store:
@ -181,7 +181,7 @@ define void @merge_loads_i16(i32 %count, %struct.A* noalias nocapture %q, %struc
}
; The loads and the stores are interleved. Can't merge them.
;CHECK: no_merge_loads
;CHECK-LABEL: no_merge_loads:
;CHECK: movb
;CHECK: movb
;CHECK: movb
@ -215,7 +215,7 @@ a4: ; preds = %4, %.lr.ph
}
;CHECK: merge_loads_integer
;CHECK-LABEL: merge_loads_integer:
; load:
;CHECK: movq
; store:
@ -249,7 +249,7 @@ define void @merge_loads_integer(i32 %count, %struct.B* noalias nocapture %q, %s
}
;CHECK: merge_loads_vector
;CHECK-LABEL: merge_loads_vector:
; load:
;CHECK: movups
; store:
@ -290,7 +290,7 @@ block4: ; preds = %4, %.lr.ph
ret void
}
;CHECK: merge_loads_no_align
;CHECK-LABEL: merge_loads_no_align:
; load:
;CHECK: movl
;CHECK: movl

View File

@ -297,8 +297,8 @@ bb3:
}
;YESCOLOR: multi_region_bb
;NOCOLOR: multi_region_bb
;YESCOLOR-LABEL: multi_region_bb:
;NOCOLOR-LABEL: multi_region_bb:
define void @multi_region_bb() nounwind ssp {
entry:
%A.i1 = alloca [100 x i32], align 4
@ -353,9 +353,9 @@ bb3:
; Regression test for PR15707. %buf1 and %buf2 should not be merged
; in this test case.
;YESCOLOR: myCall_pr15707
;YESCOLOR-LABEL: myCall_pr15707:
;YESCOLOR: subq $200008, %rsp
;NOCOLOR: myCall_pr15707
;NOCOLOR-LABEL: myCall_pr15707:
;NOCOLOR: subq $200008, %rsp
define void @myCall_pr15707() {
%buf1 = alloca i8, i32 100000, align 16
@ -374,8 +374,8 @@ define void @myCall_pr15707() {
; Check that we don't assert and crash even when there are allocas
; outside the declared lifetime regions.
;YESCOLOR: bad_range
;NOCOLOR: bad_range
;YESCOLOR-LABEL: bad_range:
;NOCOLOR-LABEL: bad_range:
define void @bad_range() nounwind ssp {
entry:
%A.i1 = alloca [100 x i32], align 4
@ -400,8 +400,8 @@ block2:
; Check that we don't assert and crash even when there are usages
; of allocas which do not read or write outside the declared lifetime regions.
;YESCOLOR: shady_range
;NOCOLOR: shady_range
;YESCOLOR-LABEL: shady_range:
;NOCOLOR-LABEL: shady_range:
%struct.Klass = type { i32, i32 }

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx | FileCheck %s
;CHECK: test
;CHECK-LABEL: test:
;CHECK: vaddps
;CHECK: vmulps
;CHECK: vsubps

View File

@ -8,7 +8,7 @@
%class.A = type { i32 (...)** }
define i32 @test1() #0 {
;ATOM: test1
;ATOM-LABEL: test1:
entry:
%call = tail call %class.A* @_Z3facv()
%0 = bitcast %class.A* %call to void (%class.A*)***
@ -30,7 +30,7 @@ declare %class.A* @_Z3facv() #1
@p = external global void (i32)**
define i32 @test2() #0 {
;ATOM: test2
;ATOM-LABEL: test2:
entry:
%0 = load void (i32)*** @p, align 8
%1 = load void (i32)** %0, align 8

View File

@ -2,7 +2,7 @@
; AVX128 tests:
;CHECK: vsel_float
;CHECK-LABEL: vsel_float:
;CHECK: vblendvps
;CHECK: ret
define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
@ -11,7 +11,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
}
;CHECK: vsel_i32
;CHECK-LABEL: vsel_i32:
;CHECK: vblendvps
;CHECK: ret
define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
@ -20,7 +20,7 @@ define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
}
;CHECK: vsel_double
;CHECK-LABEL: vsel_double:
;CHECK: vblendvpd
;CHECK: ret
define <2 x double> @vsel_double(<2 x double> %v1, <2 x double> %v2) {
@ -29,7 +29,7 @@ define <2 x double> @vsel_double(<2 x double> %v1, <2 x double> %v2) {
}
;CHECK: vsel_i64
;CHECK-LABEL: vsel_i64:
;CHECK: vblendvpd
;CHECK: ret
define <2 x i64> @vsel_i64(<2 x i64> %v1, <2 x i64> %v2) {
@ -38,7 +38,7 @@ define <2 x i64> @vsel_i64(<2 x i64> %v1, <2 x i64> %v2) {
}
;CHECK: vsel_i8
;CHECK-LABEL: vsel_i8:
;CHECK: vpblendvb
;CHECK: ret
define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {
@ -50,7 +50,7 @@ define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {
; AVX256 tests:
;CHECK: vsel_float8
;CHECK-LABEL: vsel_float8:
;CHECK: vblendvps
;CHECK: ret
define <8 x float> @vsel_float8(<8 x float> %v1, <8 x float> %v2) {
@ -58,7 +58,7 @@ define <8 x float> @vsel_float8(<8 x float> %v1, <8 x float> %v2) {
ret <8 x float> %vsel
}
;CHECK: vsel_i328
;CHECK-LABEL: vsel_i328:
;CHECK: vblendvps
;CHECK: ret
define <8 x i32> @vsel_i328(<8 x i32> %v1, <8 x i32> %v2) {
@ -66,7 +66,7 @@ define <8 x i32> @vsel_i328(<8 x i32> %v1, <8 x i32> %v2) {
ret <8 x i32> %vsel
}
;CHECK: vsel_double8
;CHECK-LABEL: vsel_double8:
;CHECK: vblendvpd
;CHECK: ret
define <8 x double> @vsel_double8(<8 x double> %v1, <8 x double> %v2) {
@ -74,7 +74,7 @@ define <8 x double> @vsel_double8(<8 x double> %v1, <8 x double> %v2) {
ret <8 x double> %vsel
}
;CHECK: vsel_i648
;CHECK-LABEL: vsel_i648:
;CHECK: vblendvpd
;CHECK: ret
define <8 x i64> @vsel_i648(<8 x i64> %v1, <8 x i64> %v2) {

View File

@ -220,7 +220,7 @@ define <16 x i16> @narrow(<16 x i16> %a) nounwind alwaysinline {
ret <16 x i16> %t
}
;CHECK: test17
;CHECK-LABEL: test17:
;CHECK-NOT: vinsertf128
;CHECK: ret
define <8 x float> @test17(<4 x float> %y) {

View File

@ -1,7 +1,7 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp {
;CHECK: zext_8i16_to_8i32
;CHECK-LABEL: zext_8i16_to_8i32:
;CHECK: vpunpckhwd
;CHECK: ret
@ -10,7 +10,7 @@ define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp
}
define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp {
;CHECK: zext_4i32_to_4i64
;CHECK-LABEL: zext_4i32_to_4i64:
;CHECK: vpunpckhdq
;CHECK: ret
@ -19,7 +19,7 @@ define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp
}
define <8 x i32> @zext_8i8_to_8i32(<8 x i8> %z) {
;CHECK: zext_8i8_to_8i32
;CHECK-LABEL: zext_8i8_to_8i32:
;CHECK: vpunpckhwd
;CHECK: vpmovzxwd
;CHECK: vinsertf128

View File

@ -259,7 +259,7 @@ define <4 x double> @_inreg3(double %scalar) nounwind uwtable readnone ssp {
ret <4 x double> %wide
}
;CHECK: _inreg8xfloat
;CHECK-LABEL: _inreg8xfloat:
;CHECK: vbroadcastss
;CHECK: ret
define <8 x float> @_inreg8xfloat(<8 x float> %a) {
@ -267,7 +267,7 @@ define <8 x float> @_inreg8xfloat(<8 x float> %a) {
ret <8 x float> %b
}
;CHECK: _inreg4xfloat
;CHECK-LABEL: _inreg4xfloat:
;CHECK: vbroadcastss
;CHECK: ret
define <4 x float> @_inreg4xfloat(<4 x float> %a) {
@ -275,7 +275,7 @@ define <4 x float> @_inreg4xfloat(<4 x float> %a) {
ret <4 x float> %b
}
;CHECK: _inreg16xi16
;CHECK-LABEL: _inreg16xi16:
;CHECK: vpbroadcastw
;CHECK: ret
define <16 x i16> @_inreg16xi16(<16 x i16> %a) {
@ -283,7 +283,7 @@ define <16 x i16> @_inreg16xi16(<16 x i16> %a) {
ret <16 x i16> %b
}
;CHECK: _inreg8xi16
;CHECK-LABEL: _inreg8xi16:
;CHECK: vpbroadcastw
;CHECK: ret
define <8 x i16> @_inreg8xi16(<8 x i16> %a) {
@ -292,7 +292,7 @@ define <8 x i16> @_inreg8xi16(<8 x i16> %a) {
}
;CHECK: _inreg4xi64
;CHECK-LABEL: _inreg4xi64:
;CHECK: vpbroadcastq
;CHECK: ret
define <4 x i64> @_inreg4xi64(<4 x i64> %a) {
@ -300,7 +300,7 @@ define <4 x i64> @_inreg4xi64(<4 x i64> %a) {
ret <4 x i64> %b
}
;CHECK: _inreg2xi64
;CHECK-LABEL: _inreg2xi64:
;CHECK: vpbroadcastq
;CHECK: ret
define <2 x i64> @_inreg2xi64(<2 x i64> %a) {
@ -308,7 +308,7 @@ define <2 x i64> @_inreg2xi64(<2 x i64> %a) {
ret <2 x i64> %b
}
;CHECK: _inreg4xdouble
;CHECK-LABEL: _inreg4xdouble:
;CHECK: vbroadcastsd
;CHECK: ret
define <4 x double> @_inreg4xdouble(<4 x double> %a) {
@ -316,7 +316,7 @@ define <4 x double> @_inreg4xdouble(<4 x double> %a) {
ret <4 x double> %b
}
;CHECK: _inreg2xdouble
;CHECK-LABEL: _inreg2xdouble:
;CHECK: vpbroadcastq
;CHECK: ret
define <2 x double> @_inreg2xdouble(<2 x double> %a) {
@ -324,7 +324,7 @@ define <2 x double> @_inreg2xdouble(<2 x double> %a) {
ret <2 x double> %b
}
;CHECK: _inreg8xi32
;CHECK-LABEL: _inreg8xi32:
;CHECK: vpbroadcastd
;CHECK: ret
define <8 x i32> @_inreg8xi32(<8 x i32> %a) {
@ -332,7 +332,7 @@ define <8 x i32> @_inreg8xi32(<8 x i32> %a) {
ret <8 x i32> %b
}
;CHECK: _inreg4xi32
;CHECK-LABEL: _inreg4xi32:
;CHECK: vpbroadcastd
;CHECK: ret
define <4 x i32> @_inreg4xi32(<4 x i32> %a) {
@ -340,7 +340,7 @@ define <4 x i32> @_inreg4xi32(<4 x i32> %a) {
ret <4 x i32> %b
}
;CHECK: _inreg32xi8
;CHECK-LABEL: _inreg32xi8:
;CHECK: vpbroadcastb
;CHECK: ret
define <32 x i8> @_inreg32xi8(<32 x i8> %a) {
@ -348,7 +348,7 @@ define <32 x i8> @_inreg32xi8(<32 x i8> %a) {
ret <32 x i8> %b
}
;CHECK: _inreg16xi8
;CHECK-LABEL: _inreg16xi8:
;CHECK: vpbroadcastb
;CHECK: ret
define <16 x i8> @_inreg16xi8(<16 x i8> %a) {

View File

@ -4,7 +4,7 @@
; In this test we check that sign-extend of the mask bit is performed by
; shifting the needed bit to the MSB, and not using shl+sra.
;CHECK: vsel_float
;CHECK-LABEL: vsel_float:
;CHECK: movl $-2147483648
;CHECK-NEXT: movd
;CHECK-NEXT: blendvps
@ -14,7 +14,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
ret <4 x float> %vsel
}
;CHECK: vsel_4xi8
;CHECK-LABEL: vsel_4xi8:
;CHECK: movl $-2147483648
;CHECK-NEXT: movd
;CHECK-NEXT: blendvps
@ -28,7 +28,7 @@ define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
; We do not have native support for v8i16 blends and we have to use the
; blendvb instruction or a sequence of NAND/OR/AND. Make sure that we do not r
; reduce the mask in this case.
;CHECK: vsel_8xi16
;CHECK-LABEL: vsel_8xi16:
;CHECK: psllw
;CHECK: psraw
;CHECK: pblendvb

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mcpu=corei7-avx -mtriple=x86_64-linux | FileCheck %s
;CHECK: cftx020
;CHECK-LABEL: cftx020:
;CHECK: vmovsd (%rdi), %xmm{{.*}}
;CHECK: vmovsd 16(%rdi), %xmm{{.*}}
;CHECK: vmovhpd 8(%rdi), %xmm{{.*}}

View File

@ -1,6 +1,6 @@
; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux -align-all-blocks=16 < %s | FileCheck %s
;CHECK: foo
;CHECK-LABEL: foo:
;CHECK: .align 65536, 0x90
;CHECK: .align 65536, 0x90
;CHECK: .align 65536, 0x90

View File

@ -2,7 +2,7 @@
; rdar://11897677
;CHECK: intrin_pmov
;CHECK-LABEL: intrin_pmov:
;CHECK: pmovzxbw (%{{.*}}), %xmm0
;CHECK-NEXT: movdqu
;CHECK-NEXT: ret

View File

@ -1,6 +1,6 @@
; RUN: llc -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -o - < %s | FileCheck %s
;CHECK: wideloads
;CHECK-LABEL: wideloads:
;CHECK: vmovaps
;CHECK: vinsertf128
;CHECK: vmovaps

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -mattr=+sse41 | FileCheck %s
;CHECK: vsel_float
;CHECK-LABEL: vsel_float:
;CHECK: blendvps
;CHECK: ret
define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
@ -9,7 +9,7 @@ define <4 x float> @vsel_float(<4 x float> %v1, <4 x float> %v2) {
}
;CHECK: vsel_4xi8
;CHECK-LABEL: vsel_4xi8:
;CHECK: blendvps
;CHECK: ret
define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
@ -17,7 +17,7 @@ define <4 x i8> @vsel_4xi8(<4 x i8> %v1, <4 x i8> %v2) {
ret <4 x i8> %vsel
}
;CHECK: vsel_4xi16
;CHECK-LABEL: vsel_4xi16:
;CHECK: blendvps
;CHECK: ret
define <4 x i16> @vsel_4xi16(<4 x i16> %v1, <4 x i16> %v2) {
@ -26,7 +26,7 @@ define <4 x i16> @vsel_4xi16(<4 x i16> %v1, <4 x i16> %v2) {
}
;CHECK: vsel_i32
;CHECK-LABEL: vsel_i32:
;CHECK: blendvps
;CHECK: ret
define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
@ -35,7 +35,7 @@ define <4 x i32> @vsel_i32(<4 x i32> %v1, <4 x i32> %v2) {
}
;CHECK: vsel_double
;CHECK-LABEL: vsel_double:
;CHECK: blendvpd
;CHECK: ret
define <4 x double> @vsel_double(<4 x double> %v1, <4 x double> %v2) {
@ -44,7 +44,7 @@ define <4 x double> @vsel_double(<4 x double> %v1, <4 x double> %v2) {
}
;CHECK: vsel_i64
;CHECK-LABEL: vsel_i64:
;CHECK: blendvpd
;CHECK: ret
define <4 x i64> @vsel_i64(<4 x i64> %v1, <4 x i64> %v2) {
@ -53,7 +53,7 @@ define <4 x i64> @vsel_i64(<4 x i64> %v1, <4 x i64> %v2) {
}
;CHECK: vsel_i8
;CHECK-LABEL: vsel_i8:
;CHECK: pblendvb
;CHECK: ret
define <16 x i8> @vsel_i8(<16 x i8> %v1, <16 x i8> %v2) {

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -march=x86-64 -mcpu=corei7 -mattr=+sse41 | FileCheck %s
;CHECK: load_2_i8
;CHECK-LABEL: load_2_i8:
; A single 16-bit load
;CHECK: pmovzxbq
;CHECK: paddq
@ -16,7 +16,7 @@ define void @load_2_i8(<2 x i8>* %A) {
ret void
}
;CHECK: load_2_i16
;CHECK-LABEL: load_2_i16:
; Read 32-bits
;CHECK: pmovzxwq
;CHECK: paddq
@ -30,7 +30,7 @@ define void @load_2_i16(<2 x i16>* %A) {
ret void
}
;CHECK: load_2_i32
;CHECK-LABEL: load_2_i32:
;CHECK: pmovzxdq
;CHECK: paddq
;CHECK: pshufd
@ -42,7 +42,7 @@ define void @load_2_i32(<2 x i32>* %A) {
ret void
}
;CHECK: load_4_i8
;CHECK-LABEL: load_4_i8:
;CHECK: pmovzxbd
;CHECK: paddd
;CHECK: pshufb
@ -54,7 +54,7 @@ define void @load_4_i8(<4 x i8>* %A) {
ret void
}
;CHECK: load_4_i16
;CHECK-LABEL: load_4_i16:
;CHECK: pmovzxwd
;CHECK: paddd
;CHECK: pshufb
@ -66,7 +66,7 @@ define void @load_4_i16(<4 x i16>* %A) {
ret void
}
;CHECK: load_8_i8
;CHECK-LABEL: load_8_i8:
;CHECK: pmovzxbw
;CHECK: paddw
;CHECK: pshufb

View File

@ -1,6 +1,6 @@
; RUN: llc -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -o - < %s | FileCheck %s
;CHECK: and_masks
;CHECK-LABEL: and_masks:
;CHECK: vmovaps
;CHECK: vcmpltp
;CHECK: vcmpltp

View File

@ -1,6 +1,6 @@
; RUN: llc < %s -mtriple=i386-apple-darwin10 -mcpu=corei7-avx -mattr=+avx | FileCheck %s
;CHECK: foo1_8
;CHECK-LABEL: foo1_8:
;CHECK: vcvtdq2ps
;CHECK: ret
define <8 x float> @foo1_8(<8 x i8> %src) {
@ -8,7 +8,7 @@ define <8 x float> @foo1_8(<8 x i8> %src) {
ret <8 x float> %res
}
;CHECK: foo1_4
;CHECK-LABEL: foo1_4:
;CHECK: vcvtdq2ps
;CHECK: ret
define <4 x float> @foo1_4(<4 x i8> %src) {
@ -16,7 +16,7 @@ define <4 x float> @foo1_4(<4 x i8> %src) {
ret <4 x float> %res
}
;CHECK: foo2_8
;CHECK-LABEL: foo2_8:
;CHECK: vcvtdq2ps
;CHECK: ret
define <8 x float> @foo2_8(<8 x i8> %src) {
@ -24,7 +24,7 @@ define <8 x float> @foo2_8(<8 x i8> %src) {
ret <8 x float> %res
}
;CHECK: foo2_4
;CHECK-LABEL: foo2_4:
;CHECK: vcvtdq2ps
;CHECK: ret
define <4 x float> @foo2_4(<4 x i8> %src) {
@ -32,14 +32,14 @@ define <4 x float> @foo2_4(<4 x i8> %src) {
ret <4 x float> %res
}
;CHECK: foo3_8
;CHECK-LABEL: foo3_8:
;CHECK: vcvttps2dq
;CHECK: ret
define <8 x i8> @foo3_8(<8 x float> %src) {
%res = fptosi <8 x float> %src to <8 x i8>
ret <8 x i8> %res
}
;CHECK: foo3_4
;CHECK-LABEL: foo3_4:
;CHECK: vcvttps2dq
;CHECK: ret
define <4 x i8> @foo3_4(<4 x float> %src) {