| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 |
| ; RUN: llc -mtriple=amdgpu12.50 -show-mc-encoding -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX1250,FAKE16 %s |
| ; RUN: llc -mtriple=amdgpu12.50 -show-mc-encoding -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX1250,REAL16 %s |
| |
| define i16 @cvt_pk_bf8_f16_v(ptr addrspace(1) %out) { |
| ; FAKE16-LABEL: cvt_pk_bf8_f16_v: |
| ; FAKE16: ; %bb.0: |
| ; FAKE16-NEXT: s_wait_loadcnt_dscnt 0x0 ; encoding: [0x00,0x00,0xc8,0xbf] |
| ; FAKE16-NEXT: s_wait_kmcnt 0x0 ; encoding: [0x00,0x00,0xc7,0xbf] |
| ; FAKE16-NEXT: v_cvt_pk_bf8_f16 v0, 0x38003800 ; encoding: [0x00,0x00,0x73,0xd7,0xff,0x00,0x01,0x02,0x00,0x38,0x00,0x38] |
| ; FAKE16-NEXT: s_set_pc_i64 s[30:31] ; encoding: [0x1e,0x48,0x80,0xbe] |
| ; |
| ; REAL16-LABEL: cvt_pk_bf8_f16_v: |
| ; REAL16: ; %bb.0: |
| ; REAL16-NEXT: s_wait_loadcnt_dscnt 0x0 ; encoding: [0x00,0x00,0xc8,0xbf] |
| ; REAL16-NEXT: s_wait_kmcnt 0x0 ; encoding: [0x00,0x00,0xc7,0xbf] |
| ; REAL16-NEXT: v_cvt_pk_bf8_f16 v0.l, 0x38003800 ; encoding: [0x00,0x00,0x73,0xd7,0xff,0x00,0x01,0x02,0x00,0x38,0x00,0x38] |
| ; REAL16-NEXT: s_set_pc_i64 s[30:31] ; encoding: [0x1e,0x48,0x80,0xbe] |
| %cvt = tail call i16 @llvm.amdgcn.cvt.pk.bf8.f16(<2 x half> <half 0xH3800, half 0xH3800>) |
| ret i16 %cvt |
| } |
| |
| ; GFX1250: codeLenInByte = 24 |
| |
| define i16 @cvt_pk_fp8_f16_v(ptr addrspace(1) %out) { |
| ; FAKE16-LABEL: cvt_pk_fp8_f16_v: |
| ; FAKE16: ; %bb.0: |
| ; FAKE16-NEXT: s_wait_loadcnt_dscnt 0x0 ; encoding: [0x00,0x00,0xc8,0xbf] |
| ; FAKE16-NEXT: s_wait_kmcnt 0x0 ; encoding: [0x00,0x00,0xc7,0xbf] |
| ; FAKE16-NEXT: v_cvt_pk_fp8_f16 v0, 0x3800 ; encoding: [0x00,0x00,0x72,0xd7,0xff,0x00,0x01,0x02,0x00,0x38,0x00,0x00] |
| ; FAKE16-NEXT: s_set_pc_i64 s[30:31] ; encoding: [0x1e,0x48,0x80,0xbe] |
| ; |
| ; REAL16-LABEL: cvt_pk_fp8_f16_v: |
| ; REAL16: ; %bb.0: |
| ; REAL16-NEXT: s_wait_loadcnt_dscnt 0x0 ; encoding: [0x00,0x00,0xc8,0xbf] |
| ; REAL16-NEXT: s_wait_kmcnt 0x0 ; encoding: [0x00,0x00,0xc7,0xbf] |
| ; REAL16-NEXT: v_cvt_pk_fp8_f16 v0.l, 0x3800 ; encoding: [0x00,0x00,0x72,0xd7,0xff,0x00,0x01,0x02,0x00,0x38,0x00,0x00] |
| ; REAL16-NEXT: s_set_pc_i64 s[30:31] ; encoding: [0x1e,0x48,0x80,0xbe] |
| %cvt = tail call i16 @llvm.amdgcn.cvt.pk.fp8.f16(<2 x half> <half 0xH3800, half 0xH0>) |
| ret i16 %cvt |
| } |
| |
| ; GFX1250: codeLenInByte = 24 |
| ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: |
| ; GFX1250: {{.*}} |