blob: c6df54143391bdecc89a3ebc6dcc76a6a64b65f1 [file]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_100 -mattr=+ptx86 -combiner-disabled -O0 | FileCheck %s
; RUN: %if ptxas-sm_100 && ptxas-isa-8.6 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_100 -mattr=+ptx86 -combiner-disabled -O0 | %ptxas-verify -arch=sm_100 %}
define void @test_insertelement_int32x2() {
; CHECK-LABEL: test_insertelement_int32x2(
; CHECK: {
; CHECK-NEXT: .reg .b32 %r<3>;
; CHECK-NEXT: .reg .b64 %rd<3>;
; CHECK-EMPTY:
; CHECK-NEXT: // %bb.0:
; CHECK-NEXT: mov.b32 %r1, 0;
; CHECK-NEXT: cvt.u64.u32 %rd2, %r1;
; CHECK-NEXT: mov.b64 {%r2, _}, %rd2;
; CHECK-NEXT: mov.b64 %rd1, {%r2, %r1};
; CHECK-NEXT: bra.uni $L__BB0_1;
; CHECK-NEXT: $L__BB0_1:
; CHECK-NEXT: ret;
%1 = insertelement <2 x i32> zeroinitializer, i32 0, i32 0
br label %2
2: ; preds = %0
%3 = extractelement <2 x i32> %1, i32 0
%4 = bitcast <2 x i32> %1 to i64
ret void
}
define void @test_insertelement_float32x2() {
; CHECK-LABEL: test_insertelement_float32x2(
; CHECK: {
; CHECK-NEXT: .reg .b32 %r<3>;
; CHECK-NEXT: .reg .b64 %rd<3>;
; CHECK-EMPTY:
; CHECK-NEXT: // %bb.0:
; CHECK-NEXT: mov.b32 %r1, 0f00000000;
; CHECK-NEXT: mov.b64 %rd2, {%r1, 0};
; CHECK-NEXT: mov.b64 {%r2, _}, %rd2;
; CHECK-NEXT: mov.b64 %rd1, {%r2, %r1};
; CHECK-NEXT: bra.uni $L__BB1_1;
; CHECK-NEXT: $L__BB1_1:
; CHECK-NEXT: ret;
%1 = insertelement <2 x float> zeroinitializer, float 0.0, i32 0
br label %2
2: ; preds = %0
%3 = extractelement <2 x float> %1, i32 0
%4 = bitcast <2 x float> %1 to i64
ret void
}
define void @test_insertelement_float16x2() {
; CHECK-LABEL: test_insertelement_float16x2(
; CHECK: {
; CHECK-NEXT: .reg .b16 %rs<4>;
; CHECK-NEXT: .reg .b32 %r<4>;
; CHECK-EMPTY:
; CHECK-NEXT: // %bb.0:
; CHECK-NEXT: mov.b32 %r2, 0;
; CHECK-NEXT: mov.b32 {_, %rs1}, %r2;
; CHECK-NEXT: mov.b16 %rs2, 0x0000;
; CHECK-NEXT: mov.b32 %r3, {%rs2, 0};
; CHECK-NEXT: mov.b32 {%rs3, _}, %r3;
; CHECK-NEXT: mov.b32 %r1, {%rs3, %rs1};
; CHECK-NEXT: bra.uni $L__BB2_1;
; CHECK-NEXT: $L__BB2_1:
; CHECK-NEXT: ret;
%1 = insertelement <2 x half> zeroinitializer, half 0.0, i32 0
br label %2
2: ; preds = %0
%3 = extractelement <2 x half> %1, i32 0
%4 = bitcast <2 x half> %1 to i32
ret void
}