89 lines · plain
1# RUN: not --crash llc -o - %s -mtriple=x86_64-- -verify-machineinstrs -run-pass=none 2>&1 | FileCheck %s2# REQUIRES: x86-registered-target3 4# CHECK: Bad machine code: Generic extend/truncate can not operate on pointers5# CHECK-NEXT: - function: bad_generic_extends_and_truncates6# CHECK-NEXT: - basic block: %bb.17# CHECK-NEXT: - instruction: %t_p:_(s32) = G_TRUNC %p:_(p0)8 9# CHECK: Bad machine code: operand types must be all-vector or all-scalar10# CHECK-NEXT: - function: bad_generic_extends_and_truncates11# CHECK-NEXT: - basic block: %bb.212# CHECK-NEXT: - instruction: %se_i32:_(<2 x s64>) = G_SEXT %i32:_(s32)13 14# CHECK: Bad machine code: operand types must preserve number of vector elements15# CHECK-NEXT: - function: bad_generic_extends_and_truncates16# CHECK-NEXT: - basic block: %bb.317# CHECK-NEXT: - instruction: %ze_v2i32:_(<4 x s64>) = G_ZEXT %v2i32:_(<2 x s32>)18 19# CHECK: Bad machine code: Generic extend has destination type no larger than source20# CHECK-NEXT: - function: bad_generic_extends_and_truncates21# CHECK-NEXT: - basic block: %bb.422# CHECK-NEXT: - instruction: %ae_i32:_(s32) = G_ANYEXT %i32:_(s32)23 24# CHECK: Bad machine code: Generic truncate has destination type no smaller than source ***25# CHECK-NEXT: - function: bad_generic_extends_and_truncates26# CHECK-NEXT: - basic block: %bb.527# CHECK-NEXT: - instruction: %ft_f32:_(s64) = G_FPTRUNC %f32:_(s32)28 29 30# CHECK: Bad machine code: Generic extend/truncate can not operate on pointers31# CHECK-NEXT: - function: bad_generic_extends_and_truncates32# CHECK-NEXT: - basic block: %bb.633# CHECK-NEXT: - instruction: %ze_v2i128:_(<4 x p0>) = G_ZEXT %v2i128:_(<2 x s128>)34 35# CHECK: Bad machine code: operand types must preserve number of vector elements36# CHECK-NEXT: - function: bad_generic_extends_and_truncates37# CHECK-NEXT: - basic block: %bb.638# CHECK-NEXT: - instruction: %ze_v2i128:_(<4 x p0>) = G_ZEXT %v2i128:_(<2 x s128>)39 40# CHECK: Bad machine code: Generic extend has destination type no larger than source41# CHECK-NEXT: - function: bad_generic_extends_and_truncates42# CHECK-NEXT: - basic block: %bb.643# CHECK-NEXT: - instruction: %ze_v2i128:_(<4 x p0>) = G_ZEXT %v2i128:_(<2 x s128>)44 45 46# CHECK: Bad machine code: Generic extend/truncate can not operate on pointers47# CHECK-NEXT: - function: bad_generic_extends_and_truncates48# CHECK-NEXT: - basic block: %bb.649# CHECK-NEXT: - instruction: %fe_v2f128:_(p0) = G_FPEXT %v2f128:_(<2 x s128>)50 51# CHECK: Bad machine code: operand types must be all-vector or all-scalar52# CHECK-NEXT: - function: bad_generic_extends_and_truncates53# CHECK-NEXT: - basic block: %bb.654# CHECK-NEXT: - instruction: %fe_v2f128:_(p0) = G_FPEXT %v2f128:_(<2 x s128>)55 56---57name: bad_generic_extends_and_truncates58tracksRegLiveness: true59body: |60 bb.0:61 liveins: $rdi, $esi, $rdx, $xmm0, $ymm1, $ymm262 63 %p:_(p0) = COPY $rdi64 %i32:_(s32) = COPY $esi65 %v2i32:_(<2 x s32>) = COPY $rdx66 %f32:_(s32) = COPY $xmm067 %v2i128:_(<2 x s128>) = COPY $ymm168 %v2f128:_(<2 x s128>) = COPY $ymm269 70 bb.1:71 %t_p:_(s32) = G_TRUNC %p72 73 bb.2:74 %se_i32:_(<2 x s64>) = G_SEXT %i3275 76 bb.3:77 %ze_v2i32:_(<4 x s64>) = G_ZEXT %v2i3278 79 bb.4:80 %ae_i32:_(s32) = G_ANYEXT %i3281 82 bb.5:83 %ft_f32:_(s64) = G_FPTRUNC %f3284 85 bb.6:86 %ze_v2i128:_(<4 x p0>) = G_ZEXT %v2i12887 %fe_v2f128:_(p0) = G_FPEXT %v2f12888...89