1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -O0 -verify-machineinstrs -mtriple=x86_64-unknown-unknown --show-mc-encoding -mattr=+amx-tile,+amx-avx512,+avx10.2-512 | FileCheck %s 3 4define <16 x float> @test_tcvtrowd2ps(i32 %A) { 5; CHECK-LABEL: test_tcvtrowd2ps: 6; CHECK: # %bb.0: 7; CHECK-NEXT: tcvtrowd2ps %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x46,0x48,0x4a,0xc1] 8; CHECK-NEXT: retq # encoding: [0xc3] 9 %ret = call <16 x float> @llvm.x86.tcvtrowd2ps(i8 1, i32 %A) 10 ret <16 x float> %ret 11} 12 13define <16 x float> @test_tcvtrowd2psi() { 14; CHECK-LABEL: test_tcvtrowd2psi: 15; CHECK: # %bb.0: 16; CHECK-NEXT: tcvtrowd2ps $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7e,0x48,0x07,0xc1,0x7f] 17; CHECK-NEXT: retq # encoding: [0xc3] 18 %ret = call <16 x float> @llvm.x86.tcvtrowd2ps(i8 1, i32 127) 19 ret <16 x float> %ret 20} 21declare <16 x float> @llvm.x86.tcvtrowd2ps(i8 %A, i32 %B) 22 23define <32 x bfloat> @test_tcvtrowps2bf16h(i32 %A) { 24; CHECK-LABEL: test_tcvtrowps2bf16h: 25; CHECK: # %bb.0: 26; CHECK-NEXT: tcvtrowps2bf16h %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x47,0x48,0x6d,0xc1] 27; CHECK-NEXT: retq # encoding: [0xc3] 28 %ret = call <32 x bfloat> @llvm.x86.tcvtrowps2bf16h(i8 1, i32 %A) 29 ret <32 x bfloat> %ret 30} 31 32define <32 x bfloat> @test_tcvtrowps2bf16hi() { 33; CHECK-LABEL: test_tcvtrowps2bf16hi: 34; CHECK: # %bb.0: 35; CHECK-NEXT: tcvtrowps2bf16h $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7f,0x48,0x07,0xc1,0x7f] 36; CHECK-NEXT: retq # encoding: [0xc3] 37 %ret = call <32 x bfloat> @llvm.x86.tcvtrowps2bf16h(i8 1, i32 127) 38 ret <32 x bfloat> %ret 39} 40declare <32 x bfloat> @llvm.x86.tcvtrowps2bf16h(i8 %A, i32 %B) 41 42define <32 x bfloat> @test_tcvtrowps2bf16l(i32 %A) { 43; CHECK-LABEL: test_tcvtrowps2bf16l: 44; CHECK: # %bb.0: 45; CHECK-NEXT: tcvtrowps2bf16l %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x46,0x48,0x6d,0xc1] 46; CHECK-NEXT: retq # encoding: [0xc3] 47 %ret = call <32 x bfloat> @llvm.x86.tcvtrowps2bf16l(i8 1, i32 %A) 48 ret <32 x bfloat> %ret 49} 50 51define <32 x bfloat> @test_tcvtrowps2bf16li() { 52; CHECK-LABEL: test_tcvtrowps2bf16li: 53; CHECK: # %bb.0: 54; CHECK-NEXT: tcvtrowps2bf16l $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7e,0x48,0x77,0xc1,0x7f] 55; CHECK-NEXT: retq # encoding: [0xc3] 56 %ret = call <32 x bfloat> @llvm.x86.tcvtrowps2bf16l(i8 1, i32 127) 57 ret <32 x bfloat> %ret 58} 59declare <32 x bfloat> @llvm.x86.tcvtrowps2bf16l(i8 %A, i32 %B) 60 61define <32 x half> @test_tcvtrowps2phh(i32 %A) { 62; CHECK-LABEL: test_tcvtrowps2phh: 63; CHECK: # %bb.0: 64; CHECK-NEXT: tcvtrowps2phh %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x44,0x48,0x6d,0xc1] 65; CHECK-NEXT: retq # encoding: [0xc3] 66 %ret = call <32 x half> @llvm.x86.tcvtrowps2phh(i8 1, i32 %A) 67 ret <32 x half> %ret 68} 69 70define <32 x half> @test_tcvtrowps2phhi() { 71; CHECK-LABEL: test_tcvtrowps2phhi: 72; CHECK: # %bb.0: 73; CHECK-NEXT: tcvtrowps2phh $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7c,0x48,0x07,0xc1,0x7f] 74; CHECK-NEXT: retq # encoding: [0xc3] 75 %ret = call <32 x half> @llvm.x86.tcvtrowps2phh(i8 1, i32 127) 76 ret <32 x half> %ret 77} 78declare <32 x half> @llvm.x86.tcvtrowps2phh(i8 %A, i32 %B) 79 80define <32 x half> @test_tcvtrowps2phl(i32 %A) { 81; CHECK-LABEL: test_tcvtrowps2phl: 82; CHECK: # %bb.0: 83; CHECK-NEXT: tcvtrowps2phl %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x45,0x48,0x6d,0xc1] 84; CHECK-NEXT: retq # encoding: [0xc3] 85 %ret = call <32 x half> @llvm.x86.tcvtrowps2phl(i8 1, i32 %A) 86 ret <32 x half> %ret 87} 88 89define <32 x half> @test_tcvtrowps2phli() { 90; CHECK-LABEL: test_tcvtrowps2phli: 91; CHECK: # %bb.0: 92; CHECK-NEXT: tcvtrowps2phl $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7f,0x48,0x77,0xc1,0x7f] 93; CHECK-NEXT: retq # encoding: [0xc3] 94 %ret = call <32 x half> @llvm.x86.tcvtrowps2phl(i8 1, i32 127) 95 ret <32 x half> %ret 96} 97declare <32 x half> @llvm.x86.tcvtrowps2phl(i8 %A, i32 %B) 98 99define <16 x i32> @test_tilemovrow(i32 %A) { 100; CHECK-LABEL: test_tilemovrow: 101; CHECK: # %bb.0: 102; CHECK-NEXT: tilemovrow %edi, %tmm1, %zmm0 # encoding: [0x62,0xf2,0x45,0x48,0x4a,0xc1] 103; CHECK-NEXT: retq # encoding: [0xc3] 104 %ret = call <16 x i32> @llvm.x86.tilemovrow(i8 1, i32 %A) 105 ret <16 x i32> %ret 106} 107 108define <16 x i32> @test_tilemovrowi() { 109; CHECK-LABEL: test_tilemovrowi: 110; CHECK: # %bb.0: 111; CHECK-NEXT: tilemovrow $127, %tmm1, %zmm0 # encoding: [0x62,0xf3,0x7d,0x48,0x07,0xc1,0x7f] 112; CHECK-NEXT: retq # encoding: [0xc3] 113 %ret = call <16 x i32> @llvm.x86.tilemovrow(i8 1, i32 127) 114 ret <16 x i32> %ret 115} 116declare <16 x i32> @llvm.x86.tilemovrow(i8 %A, i32 %B) 117