|
1 | 1 | ; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda -mcpu=sm_90 -mattr=+ptx80 -asm-verbose=false \ |
2 | 2 | ; RUN: -O0 -disable-post-ra -frame-pointer=all -verify-machineinstrs \ |
3 | | -; RUN: | FileCheck -allow-deprecated-dag-overlap -check-prefixes COMMON,I16x2 %s |
| 3 | +; RUN: | FileCheck %s |
4 | 4 | ; RUN: %if ptxas %{ \ |
5 | 5 | ; RUN: llc < %s -mtriple=nvptx64-nvidia-cuda -mcpu=sm_90 -asm-verbose=false \ |
6 | 6 | ; RUN: -O0 -disable-post-ra -frame-pointer=all -verify-machineinstrs \ |
|
9 | 9 |
|
10 | 10 | target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" |
11 | 11 |
|
12 | | -; COMMON-LABEL: test_trunc_2xi8( |
13 | | -; COMMON: ld.param.u32 [[R1:%r[0-9]+]], [test_trunc_2xi8_param_0]; |
14 | | -; COMMON: mov.b32 {[[RS1:%rs[0-9]+]], [[RS2:%rs[0-9]+]]}, [[R1]]; |
15 | | -; COMMON: shl.b16 [[RS3:%rs[0-9]+]], [[RS2]], 8; |
16 | | -; COMMON: and.b16 [[RS4:%rs[0-9]+]], [[RS1]], 255; |
17 | | -; COMMON: or.b16 [[RS5:%rs[0-9]+]], [[RS4]], [[RS3]] |
18 | | -; COMMON: cvt.u32.u16 [[R2:%r[0-9]]], [[RS5]] |
19 | | -; COMMON: st.param.b32 [func_retval0+0], [[R2]]; |
| 12 | +; CHECK-LABEL: test_trunc_2xi8( |
| 13 | +; CHECK: ld.param.u32 [[R1:%r[0-9]+]], [test_trunc_2xi8_param_0]; |
| 14 | +; CHECK: mov.b32 {[[RS1:%rs[0-9]+]], [[RS2:%rs[0-9]+]]}, [[R1]]; |
| 15 | +; CHECK: shl.b16 [[RS3:%rs[0-9]+]], [[RS2]], 8; |
| 16 | +; CHECK: and.b16 [[RS4:%rs[0-9]+]], [[RS1]], 255; |
| 17 | +; CHECK: or.b16 [[RS5:%rs[0-9]+]], [[RS4]], [[RS3]] |
| 18 | +; CHECK: cvt.u32.u16 [[R2:%r[0-9]]], [[RS5]] |
| 19 | +; CHECK: st.param.b32 [func_retval0], [[R2]]; |
20 | 20 | define i16 @test_trunc_2xi8(<2 x i16> %a) #0 { |
21 | 21 | %trunc = trunc <2 x i16> %a to <2 x i8> |
22 | 22 | %res = bitcast <2 x i8> %trunc to i16 |
23 | 23 | ret i16 %res |
24 | 24 | } |
25 | 25 |
|
26 | | -; COMMON-LABEL: test_zext_2xi8( |
27 | | -; COMMON: ld.param.u16 [[RS1:%rs[0-9]+]], [test_zext_2xi8_param_0]; |
28 | | -; COMMON: shr.u16 [[RS2:%rs[0-9]+]], [[RS1]], 8; |
29 | | -; COMMON: mov.b32 [[R1:%r[0-9]+]], {[[RS1]], [[RS2]]} |
30 | | -; COMMON: and.b32 [[R2:%r[0-9]+]], [[R1]], 16711935; |
31 | | -; COMMON: st.param.b32 [func_retval0+0], [[R2]]; |
| 26 | +; CHECK-LABEL: test_zext_2xi8( |
| 27 | +; CHECK: ld.param.u16 [[RS1:%rs[0-9]+]], [test_zext_2xi8_param_0]; |
| 28 | +; CHECK: shr.u16 [[RS2:%rs[0-9]+]], [[RS1]], 8; |
| 29 | +; CHECK: mov.b32 [[R1:%r[0-9]+]], {[[RS1]], [[RS2]]} |
| 30 | +; CHECK: and.b32 [[R2:%r[0-9]+]], [[R1]], 16711935; |
| 31 | +; CHECK: st.param.b32 [func_retval0], [[R2]]; |
32 | 32 | define <2 x i16> @test_zext_2xi8(i16 %a) #0 { |
33 | 33 | %vec = bitcast i16 %a to <2 x i8> |
34 | 34 | %ext = zext <2 x i8> %vec to <2 x i16> |
|
0 commit comments